保護されたブランチとは?
保護されたブランチには、pull request やレビュー、合格した check を merge の前に必須とするなど、コードがそのブランチに到達する方法を制限するルールがあります。
保護されたブランチは、重要なブランチ、通常は main を守るための仕組みです。保護がなければ、誰でも直接 push してレビューやテストを回避できてしまいます。保護ルールはブランチの周囲にガードレールを設け、レビューされ検証されたコードだけが入るようにします。これは信頼できる main ラインの土台です。
保護ルールが行うこと
ブランチ保護は、ブランチへの変更に条件を強制します。一般的なルールでは、変更が pull request 経由で届くこと、一定人数のレビュアーが承認すること、特定の status check が合格すること、そして merge の前にブランチが最新であることを求めます。直接の push や force push は完全にブロックできます。
典型的な保護
- 直接 push の代わりに pull request を必須にする。
- 承認レビューの最小人数を必須にする。
- 特定の CI status check の合格を必須にする。
- force push とブランチの削除をブロックする。
なぜ重要か
保護されたブランチは、良い慣行を任意ではなく必須にします。本番コードへの誤った直接 push を防ぎ、すべての変更がレビューされることを保証し、テストされていないものが merge されないことを保証します。ルールがそれを許さないため、main ブランチは既知の良好な状態に保たれます。
保護されたブランチと CI/CD
ブランチ保護は、CI のゲートが強制されるポリシーになる場所です。テストの workflow を必須の status check としてマークすることで、保護されたブランチはグリーンな pipeline を merge の絶対的な前提条件にします。これが「テストを回している」を「テストに合格しなければコードは出荷できない」に変える仕組みです。
保護の設定
- main と本番へ deploy するあらゆるブランチを保護する。
- 重要な CI workflow を必須の status check としてマークする。
- 変更に対してもう一組の目を保つためレビューを必須にする。
- CI が merge されるものをテストするよう、ブランチを最新に保つことを必須にする。
重要なポイント
- 保護されたブランチは、コードがそこに到達する方法を制限します。
- ルールはレビューや合格した check を必須にでき、force push をブロックできます。
- CI の check を必須としてマークすると、merge にはグリーンな pipeline が必須になります。
関連ガイド
What Is a Required Status Check?What is a required status check? Learn how marking a CI check as required blocks merges until it passes, maki…
What Is a Pull Request?What is a pull request? An explainer on how PRs propose changes, gather review, run CI checks, and serve as t…
What Is a CODEOWNERS File?What is a CODEOWNERS file? An explainer on mapping paths to owners who must review changes, how it automates…