📘
GitHubにPUSHできるブランチ名を制限する
GitHubにPUSHできるブランチ名を制限する
背景事情
個人的な理由で、4桁年のブランチ名を使用していて、メインブランチ名を本年の4桁年にしている。(2024 → 2025 → 2026)
4桁年以外のブランチ名はトピックブランチ名なので、間違ってトピックブランチ名をpublicなリモートブランチ(GitHub)にアップしたくない。
そこで、4桁年のブランチ名(2024, 2025, 2026)以外(develop, feature)をPUSHするとGitHub側でブロックするように設定する。
設定方法
- リポジトリ毎の設定になるので、該当のリポジトリに移動する
-
Settingsタブをクリック - 左ペインから、
Rules→Rulesetsをクリック -
New ruleset→New branch rulesetをクリック -
Ruleset Nameに任意のルール名を入力する -
Enforcement statusをActiveにする -
Target branchesセクションでAdd target→Exclude by pattenをクリックする -
Branch naming patternに[0-9][0-9][0-9][0-9]とパターンを入力する(^[0-9]{4}$のような正規表現は使えない) -
Add Exclusion poattenボタンを押して登録する -
Restrict creationsにチェックを入れて、他のチェックは外す(単機能にした方が細かな設定がしやすく、不具合が発生した際に悩まなくて済む) -
Createボタンを押してルールを作成する(Enterpriseの項目にRestrict branch namesという項目があるが、これが正に、この作業である) -
Ruleset createdと表示されていれば成功である
JSONでルールを持ち運べる
Export
... → Export ruleset をクリック
Import
New ruleset → Import a ruleset をクリック
Ruleset
Ruleset のJSONファイルを覗いてみると、pattern が正規表現になっている。謎である。
Discussion