動作イメージ
保護設定したブランチに、条件(レビューの承認や、CI)を満たしていない状態で直pushすると以下のメッセージが表示され、pushをキャンセルできる
remote: error: GH006: Protected branch update failed for refs/heads/main.
remote: error: 2 of 2 required status checks are expected.
また、CIが通る前はマージプルリクボタンが押せなくなる。
設定方法
対象リポジトリブランチも Settings > Branches > Branch protection rules > Add Rule に設定項目がいろいろ並んでいます。
保護したいブランチ名を入力します。
直pushを禁止したい
ブランチ名を強制pushや削除されないように保護する方法やいくつかあるようなのですが、今回はよく使いそうな以下2点を紹介します。(上から2つ)
- Require a pull request before merging
保護ブランチへのマージ前に、レビューを必須とする - Require status checks to pass before merging
保護ブランチへのマージ前に、特定のステータスチェックを必須とする
保護ブランチへのマージ前に、レビューを必須とする
- Require a pull request before mergingにチェックを付ける
- Require approvalsにチェックを付け、必要なレビュー数(デフォルト1)を設定する
その他の設定項目
- 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を検索して登録する
管理者もブランチ保護を適用する
デフォルトでは、管理者権限のユーザーはブランチ保護のルールが適用されません。適用するには、Include administratorsにチェックを入れます
以上です。
コメント