Skip to content
Latchkey

保護されたブランチとは?

保護されたブランチには、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 が必須になります。

関連ガイド