動機🧐
release-drafter を使ってリリース作業を自動化しようとしたとき、プルリクエストのタイトルが Conventional Commits 規約に従っている必要がある。
よってプルリクエストを作成したら書式を自動チェックさせたい。
GitHub Apps で自動チェックする🔬
Semantic Pull Requests という GitHub Apps を使えば、自分のリポジトリ全体(もしくは特定の一部)でプルリクエストの書式を検証できる。
これはプルリクエストのタイトルまたはコミットが Conventional Commits の規約に則っていることを検証する。
デフォルトではプルリクエストのタイトルもしくは最低1つのコミットが Conventional Commits 規約に則っていればOKとする。
Semantic Pull Requests インストール🚀
-
GitHub Apps ページからインストール開始
画像
-
適用するリポジトリ対象を選択してインストール
画像
-
設定変更は
Settings
→Applications
から行う画像
以上、とりあえずインストールボタンをクリックするだけで動くようになる。
Semantic Pull Requests の設定⚙️
ブランチの保護設定
GitHub の設定になるが、リポジトリでブランチの保護設定を有効化して Semantic Pull Requests のチェックを必須にしておくのがおすすめ。
必須にしておくことでプルリクエストが Conventional Commits 規約に従っていることを保証できる。
設定ファイル
デフォルト設定のまま動かすのであれば必要ない。
動作を変更したい場合は、リポジトリ内で .github/semantic.yml
ファイルを作成して設定・管理する。
プロパティ | 値 | 説明 |
---|---|---|
|
boolean |
コミットは無視してプルリクエストのタイトルを検証する |
|
boolean |
プルリクエストのタイトルは無視してコミットを検証する |
|
boolean |
プルリクエストのタイトルと全てのコミットを検証する |
|
boolean |
少なくとも1つのコミットが合格する必要がある |
|
array |
適正とする scope の値を配列で指定する |
|
array |
適正とする type の値を配列で指定する |
|
boolean |
マージコミット( Merge branch 'main' into … )を許容する |
|
boolean |
Revertコミット( Revert "feat: nanika" )を許容する |
titleOnly: true
commitsOnly: false
titleAndCommits: false
おわりに😎
Semantic Pull Requests を使うことで、プルリクエストのタイトルが Conventional Commits 規約に従っているかどうかを自動チェックさせることができた。