GitHubでチーム開発をしていると、ブランチ名がバラバラで管理が大変になることがありますよね?そんなときに役立つのが、ブランチの命名規則を制限する機能です!今回は、この設定方法やメリットについて、具体例を交えながら紹介します。
ブランチ命名規則を制限するには?
GitHubでは、リポジトリの「ブランチルールセット」を設定することで、特定のパターンに従わないブランチ名の作成を防ぐことができます。
以下の手順で設定を行います:
リポジトリの Settings > Branches を選択し、Add branch protection rule から以下のように設定します。
Branch targeting criteriaには「作成させたくないブランチ名を対象」に指定する必要があるので、上記画像のように「全部のブランチが対象!でもdevelop-*とかfeature/**/*みたいにいつも作ってるブランチ名は制限しないでね!」とする必要があります。
また画像の最後にある「Restrict creations(作成を制限する)」にチェックを入れる事も忘れないでくださいね!
これにより、指定されたルールに違反する名前のブランチは作成できなくなります。
パターン設定の具体例
Exclude patternやBranch name patternでは、以下のようにワイルドカード(*
や**
)を使うことができます。
例1: develop-*
をExclude patternに設定した場合
develop-
から始まるブランチ名が作成可能ですが/
を含める事は出来ません。
- 作成可能なブランチ名
develop-test
develop-123
- 作成不可なブランチ名
develop-test/hoge
test-develop-123
例2: feature/**/*
をExclude patternに設定した場合
feature/
から始まるブランチ名が作成可能です。/
を含める事も可能です。
- 作成可能なブランチ名
feature/new-feature
feature/subdir/task
- 作成不可なブランチ名
test-feature/123
feature-123
ポイント
-
*
: 任意の文字列(スラッシュを含まない) -
**
: 任意の文字列(スラッシュを含む)
例3: feature-*/**/*
をExclude patternに設定した場合
feature-
から始まり、最低1回は/
を含めたブランチ名が作成可能です。
- 作成可能なブランチ名
feature-123/test
feature-test/hoge/fuga
- 作成不可なブランチ名
feature-123
test-feature-123/123
これでだいたいの設定ルールは網羅できたんじゃないでしょうか?
ブランチ名の制限を設けるメリット
では、なぜブランチ名に制限を設けるべきなのか?あくまで私基準で理由を書いておきます。
1. 開発フローの統一
バラバラなブランチ名だと、どのタスクがどのブランチに紐付いているか分からなくなります。命名規則を設定することで、統一感が生まれ、プロジェクト全体の見通しが良くなります。
2. Four Keysの指標を正確に取得
Four Keys(デプロイ頻度、リードタイム、変更失敗率、MTTR)を計測する際、規則的なブランチ名が重要です。これにより、CI/CDパイプラインや分析ツールで正確なデータが取れるようになります。
3. ミスを防ぐ
意図しないブランチ名の作成を防ぎ、誤ったブランチにコミットしてしまうリスクを低減します。
まとめ
GitHubのブランチ命名規則を制限することで、チーム開発の効率と品質を向上させることができます。正確な分析結果をもってKPTを回すためにも普段から観測できる状態にしている事はとても重要な事です。
実際の運用で試してみて、より良い開発環境を構築してみてください!