🔂
シンプルなgithubのブランチ保護ルールの設定
普段、開発を1~3人の少人数ですることが多いので、簡素なブランチ保護ルールの設定を
自分用にまとめる。
適宜、各々の環境に合わせて変更してください。
前提
-
feature/issue-xxxブランチで開発を行う -
developブランチはデプロイすると開発サーバーに反映される -
mainブランチはデプロイされると本番サーバーに反映される -
feature/issue-xxx→developにPRを行う -
develop→mainにPRを行う -
developをデフォルトブランチにする(誤ってmainにマージされるのを防ぐため)
手順1 (defaultブランチを設定)
-
settingsで、defaultブランチをdevelopに設定する - 事前に
developブランチは作成する必要あり

これで、PRを作成するとdevelopと紐づくことになる
手順2 (ruleset作成画面へ移動)
-
settingsのBranch protection rulesで、「Add Branch ruleset」を押す

手順3 (developブランチのルール)
-
Ruleset Nameは、「Develop Branch Protection」に設定(何でもいい) -
Enforcement statusは「Active」 -
Target branchesは「develop」 -
Branch rules1つめは「Restrict deletions(削除制限)」にチェック -
Branch rules2つめは「Block force pushes(フォースプッシュ禁止)」にチェック -
Branch rules3つめは「Require a pull request before merging」にチェック。「Required approvalsは0人」「Allowed merge methodsは全部」
で、「Save Changes」を押す。
削除とフォースプッシュさせない。PRを必須にする。
レビュー人数0人でデプロイしたい時もあるので、approvalsは0人。
直プッシュ出来なくなるので安心です。(たまに間違ってやっちゃうので)

手順4 (mainブランチのルール)
-
Ruleset Nameは、「Main Branch Protection」に設定(何でもいい) - その他は、
developをmainに置き換えて設定してください - あとは手順3と同じ
1つのルール内で、「develop」「main」の設定をしてもいいですが、
ルールが異なる場合もあるので、分けて運用した方がいいです。
(mainは厳しめ、developは緩め)など。
手順5 (PR)
例えば、GitHub CLIを使っている時、
developへのPRは、
gh pr createですが、
mainへのPRは、
gh pr create --base mainとなります(default branchを変えているため)。
余談
mainにマージ後のこのバナーは消せないらしいです。
issue上でも議論になってました。
宣伝
Next.jsを使ったフロントエンド開発などやってます。
お仕事のご依頼など、はこちらから!
Discussion