Skip to content
Latchkey

branch protection とは何か?

branch protection とは、review の要求や merge 前のチェック合格のように、変更が重要な branch にどう到達できるかを制限するルールの集合です。

main branch は誰もが依存するものなので、ほとんどのチームはそれをロックダウンします。branch protection ルールはチームの基準を自動的に強制し、誰が push していようと、基準を満たさない限り何も main に到達しないようにします。

何であるか

branch protection は、通常 main の branch 上の構成であり、特定の条件が満たされない限り変更をブロックします。全員がルールを覚えていることに頼る代わりに、プラットフォームがそれを強制します。準拠していない変更の merge を単に拒否するのです。

一般的な保護

  • pull request を要求する; branch への直接 push は不可。
  • 1 つ以上の承認 review を要求する。
  • merge 前に status check (CI) の合格を要求する。
  • branch が main と最新であることを要求する。
  • push できる人を制限し、force-push を禁止する。

あるリポジトリは main を保護し、すべての変更が CI 合格済みのレビュー済み pull request を通らねばならないようにします。急いでいる開発者が main へ直接 push しようとしてブロックされます。彼らは pull request を開き、review を得て、チェックを合格させねばなりません。まさにチームが望む安全性です。

なぜ main を健全に保つか

継続的インテグレーションの要点は、常に既知の良好な状態にある main branch です。branch protection はそれを譲れないものにします。レビューされていない、あるいはテストされていないコードは物理的に着地できません。これは main の上に構築するすべての開発者を守り、継続的デリバリを支えます。

status check との連携

branch protection は status check に力を与えるものです。必須の status check は、merge ボタンが機能する前に CI が成功を報告せねばならないことを意味します。必須の review と組み合わせると、機械(テストが合格する)と人間(誰かが承認した)の両方が了承したことを保証します。

重要なポイント

  • branch protection は変更が branch に到達する前にルールを強制する。
  • 一般的なルールは review と CI チェックの合格を要求する。
  • main branch を常に健全で信頼できる状態に保つ。

関連ガイド