このプロジェクトについて

Commitizenは、コミット作成時にコミットメッセージの規約を強制し、共有することを支援します。無効なメッセージをフックが拒否するのを待つのではなく、貢献者が必要な項目のプロンプトに回答すると、選択したアダプターが整形されたコミットメッセージを生成します。 このツールはnpmで配布されており、npm install -g commitizenでグローバルにインストールするか、npx czで直接実行するか、プロジェクトのdevDependencyとしてインストールして全貢献者が同じバージョンを使用するようにできます。設定済みのリポジトリでは、ユーザーはgit commitの代わりにgit cz、cz、またはgit-czを実行できます。npmスクリプトから呼び出すことも可能です。 リポジトリをCommitizen対応にするには、アダプターを選択します。ドキュメントに記載されたセットアップでは、npm、Yarn、またはpnpmでcommitizen init cz-conventional-changelogを使用します。これによりアダプターがインストールされ、package.jsonに保存され、config.commitizen.path設定が追加されます。設定は代わりに.czrcファイルに配置することもできます。アダプターのパスは、npmパッケージ、ローカルのJavaScriptファイル、index.jsを含むディレクトリ、相対パス、または絶対パスを解決できます。 Commitizenはアダプターベースであるため、プロジェクトはcz-conventional-changelog、cz-customizable、cz-emoji、cz-commitlint、cz-git、Jira向けアダプターなどの公開済みオプションを使用するか、独自のアダプターを構築できます。カスタムアダプターはInquirer.jsインスタンスを受け取り、commitコールバックを通じて最終的なコミット文字列を返します。 通常のgit commit中にプロンプトを表示させたいメンテナ向けに、Commitizenは--hookオプションを使用してprepare-commit-msg Gitフックから呼び出すことができます。READMEには、従来のGitフックとHuskyの両方の例が記載されており、フックを対話型にするために/dev/ttyから入力をリダイレクトする方法も含まれています。Commitizenは、コミットフックや関連ツールを置き換えるのではなく、それらと連携して動作することを意図しています。 その他の機能には、複数のリポジトリで使用するための~/.czrcによるグローバル設定、git cz -aなどの標準的なgit commitオプションのサポート、チームが固定アダプターでCommitizenをブートストラップする小さなカスタムNode.js CLIを公開できるマルチリポジトリパターンが含まれます。git cz --retryコマンドは、フックやテストの実行が失敗した後に、前回試行したコミットを再利用できます。リトライデータはリポジトリのパスに関連付けられており、アップグレードやキャッシュファイルの削除によって消去される可能性があります。 READMEには、テスト済みのNode.jsバージョン12、14、16が記載されており、npm 6以上が必要です。ただし、より古いNode.jsバージョンでも動作する可能性があると注記されています。関連プロジェクトとして、変更履歴を生成するconventional-changelogと、コミットメッセージをリントするcommitlintが挙げられています。