📘

GitHubにPUSHできるブランチ名を制限する

に公開

GitHubにPUSHできるブランチ名を制限する

背景事情

個人的な理由で、4桁年のブランチ名を使用していて、メインブランチ名を本年の4桁年にしている。(2024 → 2025 → 2026)
4桁年以外のブランチ名はトピックブランチ名なので、間違ってトピックブランチ名をpublicなリモートブランチ(GitHub)にアップしたくない。
そこで、4桁年のブランチ名(2024, 2025, 2026)以外(develop, feature)をPUSHするとGitHub側でブロックするように設定する。

設定方法

  1. リポジトリ毎の設定になるので、該当のリポジトリに移動する
  2. Settings タブをクリック
  3. 左ペインから、RulesRulesets をクリック
  4. New rulesetNew branch ruleset をクリック
  5. Ruleset Name に任意のルール名を入力する
  6. Enforcement statusActive にする
  7. Target branches セクションで Add targetExclude by patten をクリックする
  8. Branch naming pattern[0-9][0-9][0-9][0-9]パターンを入力する(^[0-9]{4}$のような正規表現は使えない)
  9. Add Exclusion poatten ボタンを押して登録する
  10. Restrict creations にチェックを入れて、他のチェックは外す(単機能にした方が細かな設定がしやすく、不具合が発生した際に悩まなくて済む)
  11. Create ボタンを押してルールを作成する(Enterprise の項目に Restrict branch names という項目があるが、これが正に、この作業である)
  12. Ruleset created と表示されていれば成功である

JSONでルールを持ち運べる

Export

...Export ruleset をクリック

Import

New rulesetImport a ruleset をクリック

Ruleset

Ruleset のJSONファイルを覗いてみると、pattern が正規表現になっている。謎である。

Discussion