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なども使用していなかったのでこんな設定にしておいた
ブランチを保護しておかないと、masterなどの本番リポジトリに勝手にマージされたり、CI落ちてるのにマージしてしまったりというリスクがある