🔂

シンプルなgithubのブランチ保護ルールの設定

に公開

普段、開発を1~3人の少人数ですることが多いので、簡素なブランチ保護ルールの設定を
自分用にまとめる。

適宜、各々の環境に合わせて変更してください。

前提

  • feature/issue-xxx ブランチで開発を行う
  • developブランチはデプロイすると開発サーバーに反映される
  • mainブランチはデプロイされると本番サーバーに反映される
  • feature/issue-xxxdevelop にPRを行う
  • developmainにPRを行う
  • developをデフォルトブランチにする(誤ってmainにマージされるのを防ぐため)

手順1 (defaultブランチを設定)

  • settings で、defaultブランチをdevelopに設定する
  • 事前にdevelopブランチは作成する必要あり

これで、PRを作成するとdevelopと紐づくことになる

手順2 (ruleset作成画面へ移動)

  • settingsBranch protection rules で、「Add Branch ruleset」を押す

手順3 (developブランチのルール)

  • Ruleset Name は、「Develop Branch Protection」に設定(何でもいい)
  • Enforcement status は「Active」
  • Target branches は「develop」
  • Branch rules 1つめは「Restrict deletions(削除制限)」にチェック
  • Branch rules 2つめは「Block force pushes(フォースプッシュ禁止)」にチェック
  • Branch rules 3つめは「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」に設定(何でもいい)
  • その他は、developmainに置き換えて設定してください
  • あとは手順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上でも議論になってました。

https://x.com/resistance_gowy/status/1947332853152334224

宣伝

Next.jsを使ったフロントエンド開発などやってます。
お仕事のご依頼など、はこちらから!

https://www.htmlgo.site/

Discussion