GitHubのmainブランチを保護するとはなにか
GitHubのブランチ保護は、重要なブランチへ変更を取り込む方法にルールを設定する機能だ。
今回GitHubから表示された「Your main branch isn’t protected」は、公開リポジトリのmainブランチに、まだ保護ルールが設定されていないという通知だった。サイトが壊れているという意味ではない。
保護すると何が変わるか
mainブランチに次のような制限をかけられる。
- ブランチの削除を禁止する
- 強制pushを禁止する
- Pull Requestを経由しない直接変更を禁止する
- GitHub Actionsなどのチェックが成功してからマージする
- 必要に応じてレビューを必須にする
これにより、誤操作や未検証の変更で公開サイトを壊す可能性を下げられる。
デジタルガーデンでの設定方針
このリポジトリでは、まず次の設定から始めるのがよさそうだ。
- 対象ブランチは
main mainの削除を禁止する- 強制pushを禁止する
- Pull Request経由での変更を基本にする
- GitHub Actionsのビルドとデプロイが成功したことを確認する
レビュー必須や複数人の承認は、個人で運用する場合には手間が増える。まずはブランチの削除・強制pushを防ぎ、変更を確認してからマージする運用から始める。
Dependabotとの関係
Dependabotが作成した更新もPull Requestとして確認できる。mainを保護しておけば、依存パッケージの更新がいきなり本番ブランチへ入ることを防げる。
ただし、保護ルールを厳しくしすぎると、自分一人のリポジトリでは更新作業が止まりやすい。必要なチェックだけを必須にし、運用しながら調整するのがよい。
関連キーワード
- GitHub Dependabotとはなにか
- Pull Request
- GitHub Actions