はじめに
個人開発用のリポジトリを作成し、Branch protection rule
を設定していた時の話です。
設定項目が間違っており、意図した挙動になっていなかったのを解消しました。
やりたかったこと
「リポジトリ管理者(CODEOWNERS)は、approveなしでマージできるが、それ以外の人はapproveなしでマージできないようにしたい」です。
設定方法
まず最初にどのようなBranch protection rule
を設定すれば、実現できるかを記載します。
その後に、自分がなぜハマったのかを書いていきます。
意図した挙動になる設定
Branch protection ruleで設定した項目は以下の通りです。
- Require a pull request before merging
- Dismiss stale pull request approvals when new commits are pushed
- Require review from Code Owners
必要な設定は以上で十分でした(CODEOWNERSファイルは後で追加しています)。
余計に設定したことで意図しない挙動になった項目
Require approvals
リポジトリ管理者なら突破できると思い込んで設定していましたが、この設定によってリポジトリ管理者でもマージできなくなりました。
Lock branch
Branch is read-only. Users cannot push to the branch.
という説明を流し見して、設定されたブランチに直プッシュできなくするだけだと思い込んでました。
Branch is read-only.とあるのでマージもできなくなりますよね、と。
終わりに
この辺りを普段触らないので、予想以上に原因特定に時間がかかりました。
最終的にやりたいことができたのでよかったです。