【Github】勝手にマージされないようにブランチを保護した

たまご

ブランチを保護しておかないと、masterなどの本番リポジトリに勝手にマージされたり、CI落ちてるのにマージしてしまったりというリスクがある

Github上でブランチ保護を設定する画面に移動する

  • Githubの対象リポジトリの「Settings」> 「Branches」 > 「Add rule」をクリック
  • Add rule」を押すと下記設定画面が表示されるのでここで設定する

設定項目の内容 (日本語版)

  • Branch name pattern
    保護するブランチ名をパターン指定できる
    例えば、masterブランチとrelease/のブランチ全てを保護したい場合はこんな感じ
    *master*, release/*

    ここで指定したブランチは強制pushや削除ができなくなる
  • Protect matching branches
    上記で指定したパターンにマッチするブランチの保護設定を選択する

 ・Require pull request reviews before merging
  プルリクエストによるレビューを必須とする
  つまり、プルリクエスト承認されるまではマージができなくなる

  - Required approving reviews
   マージするために必要な承認数を設定する
   例えば3にした場合、3人がプルリクエストを承認して初めてマージ可能になる
  - Dismiss stale pull request approvals when new commits are pushed
   新しいコミットがpushされた場合、過去の承認はリセットされる
   つまり、プルリクエストが承認されたあとであっても、
   新しいコミットがpushされたら再度承認されるまでマージができないようになる
  - Require review from Code Owners
   コードオーナーのレビュー必須にする
   コードオーナーの設定方法

 ・Require status checks to pass before merging
  ステータスチェックを必須にする
  CIなどのサービスを使用している場合、その処理が成功するまでマージができなくなる

  Require branches to be up to date before merging
   ベースブランチが最新であることを必須にする
  - Status checks found in the last week for this repository
   連携しているサービス一覧が表示されて選択可能になる

 ・Require signed commits
  署名済みコミットを必須にする

 ・Require linear history
  直線状のコミット履歴を適用する
  公式ドキュメント

 ・Include administrators
  上記で設定した保護設定をリポジトリ管理者 (Owner/Admin権限) にも適用する
  ここにチェックを入れると、管理者であってもルールの元でマージが制限される


こんな設定にした

今回は個人のサービスでCIなども使用していなかったのでこんな設定にしておいた