Skip to Content

GitHub codeowners でGithubグループを指定しても反映されない時の対処方法

GitHub の CODEOWNERS という機能を使えば、レポジトリに対するPRでは設定された CODEOWNER がAPPROVEを出さないとマージされないようにできます。

この機能を使うことで、例えばそのリポジトリのオーナーであるグループが必ずPRを確認しないとマージできないようにすることでコードのクオリティを保つ仕組みが作れます。

TL;DR

  • GitHub codeowners で特定のグループをCODEOWNERSに設定したいときは、そのグループをレポジトリの /settings/accessMaintain として追加しないとGitHub PR で自動的にreviwer に追加されない
  • リポジトリで.github/CODEOWNERS のファイルを作成して、以下の形式でGitHub group を追加する
* @octo-org/codeowners-team
  • リポジトリの設定の/settings/accessにアクセスして、@octo-org/codeowners-teamMaintain として追加する。

*試していないのですが、WriteTriage 権限でも問題ないかもしれません。

repository access setting

この設定をしたあとに、GitHub PRを新たに作成すると、自動的に CODEOWNERS のapproveがないとマージされないように設定されるはずです。

自分自身がハマった経緯

グループ全体のアカウントが追加されているa-group/allというGithub Groupがすでにリポジトリのアクセス権限に Write 権限として追加されており、全員がwrite権限をもっているならcodeownersとしての権限も問題ないだろうと思っていたらハマりました。

CODEOWNERS の仕組みを知ると理解できるのですが、a-group/all が指定したいグループの包含関係にあるからといって、そのように取り扱ってくれるわけではないということですね。