⚙️

GitHubブランチ保護ルールのブランチ名パターンマッチ指定が便利

2022/04/14に公開

GitHubブランチ保護ルールの簡単でちょっとしたTipsです

GitHubDocs-ブランチ保護ルールを管理する

GitHubの Settings > Code and automation > Branches > Branch protection rules から Add ruleを押すことでブランチに対するルールを作成することができます。

  • マージには1つのApproveが必須になる
  • コードを変更するコミットがブランチにプッシュされたときにプルリクエストの承認レビューを却下する
    など、ソースコード管理で便利なブランチへのルールが存在しており、適用するブランチを選ぶことができます。

Branch name patternの欄にルールを追加したいブランチ名・パターンを入力できます。

リポジトリ内のブランチ保護ルールは、特定のブランチ、あるいはすべてのブランチやfnmatch構文で指定した名前のパターンにマッチするブランチに対して作成できます。 たとえば、releaseという語を含む任意のブランチを保護するには、ブランチルールをreleaseに対して作成できます。

とDocsにあるように、release202204のような特定のブランチ名の指定ができます。
また、release*のようにワイルドカードを用いたパターンマッチを入力すると、release始まりのブランチ全てに対して保護ルールを設定することができます。

  • 定期的に作成する
  • (1人以上の承認を必要としたい。のような理由で保護したい

上記のようなブランチはreleaseなどブランチ名の決まったパターンが存在していることが多いと思います。このようなブランチに対しては毎回ルールを追加するのではなく、パターンマッチを活用して保護ルールを自動適用させるように設定しておくと良さそうです!

PS. 怠惰から生まれるソフトウェア・エンジニアリング

当初、複数個存在していたreleaseブランチに対してそのブランチ名で1つ1つルールを作成していました。

結果、、

  • release202204
  • release202205
  • release202206
  • release202207

のようにリリースブランチが存在している数ぶん、ルールも作成する形になり、

めんどくせぇ....

と思いました。

その時、

Branch name pattern

patternってラベルに書いてあるな、、パターンマッチ使えそう、、? → release* → 効いた!!!!!!

との経緯でパターンマッチが使えることに気づきました(遅い)

ソフトウェア・エンジニアリングは「怠惰(めんどくせぇ...)」から派生していくものだなぁ。。。と改めて思いました。

Discussion