概要
ブランチの運用周りの整理をすることになって,
今まであんまり意識してなかったので,メモを残しておく
手順
ブランチ保護の設定画面を開く
設定画面
Branch name parttern
赤枠の部分 Branch name pattern
...あれ?
参考にした記事を見るとブランチ選択してぽちぽちって感じだったのに
最近変わったっぽい
パターンマッチ使えそう....!!(期待大)
公式ドキュメント
やっぱり使えるみたい🤪
※ここで feature/*
みたいに指定すると作業ブランチすらpushできなくなるので注意
Rule settings
Protect matching branches
パターンに当てはまるブランチ名を強制pushや,削除されないように保護してくれる
※この設定は必ず入ります
Require pull request reviews before merging
パターンにマッチするブランチに対してマージする前に,プルリクエストでレビューを受けることを必須にする設定。
この設定を入れるとプルリクが承認(Approve)されるまではマージできなくなる
またチェックを入れると以下のように項目が展開される
- Required approving reviews
- approveの最低限の数を設定する(例:2に設定したら最低2人に承認を得る必要がある)
- Dismiss stale pull request approvals when new commits are pushed
- 承認後に新たなcommitがpushされた場合は承認が自動的に取り消される
- Require review from Code Owners
- コードオーナーのレビューを必須にする設定=>参考資料
- Restrict who can dismiss pull request reviews
- プルリクのレビューを却下できる人,チームを指定できる
Require status checks to pass before merging
CIなどのサービスを連携している場合の設定。
CIなどの実行が成功しないとマージできないようにできる
チェックを入れると以下のように展開する
- Require branches to be up to date before merging
- リポジトリに何かしらのサービスを連携させているとここに表示され,サービスごとに保護の条件に含めるか選べる
Require signed commits
署名済みコミットを必須にする設定
署名がないとマージすることができなくなる
Include administrators
管理者もこのブランチ保護の制限の対象に含めるか
チェックを入れると管理者も同様にマージできなくなります
Restrict who can push to matching branches
パターンにマッチしたブランチにプッシュできる人を制限できる。
チェックを入れると以下のように展開する
展開されたフォームから許可する人,またはチーム名を入力して選択する
設定値
結果↓のような感じにまとまりました
ブランチのパターン指定についてはブランチの運用次第で変わってくるのでどれがベストプラクティスとかなさそうですが↓を設定しました
-
master
もしくはmain
- まぁこれは絶対
-
release/*
- リリースブランチ系も当然
-
develop/*
- developブランチも同じ設定で運用上保護しました
参考資料
[GitHub] ブランチの保護設定を活用しよう 【レビューが通るまでマージさせんぞ】