Open6

GitHubのCODEOWNERSを宣言的に管理する方法を考える

かいものかいもの

前提:

  • GitHubのTeamは多くの場合組織に紐づいている
  • 組織は往々にして再編成される = Teamの名称も立ち位置も変わる
  • プロダクトは分割と結合する = プロダクトのオーナーを持つチームも変わる
かいものかいもの

GitHubのAdminRoleやMaintainerRoleはAPIからアクセスが可能であり、IaCを経由することで
組織のIdPなどからRoleの割り当てやTeamの構成につなげることが可能

かいものかいもの

属人化を避ける意味で、CODEOWNERSはバイネームで記述することは推奨されていないはず
GitHubTeamで記述されるのを良しとしている
だけど、Teamは構成が変わる。でもCODEOWNERSはリポジトリのファイルとして構成されるので各リポジトリに対してすべて書き換えが発生する

かいものかいもの

つまり

組織は往々にして再編成される = Teamの名称も立ち位置も変わる (宣言的に変更できる)
プロダクトは分割と結合する = プロダクトのオーナーを持つチームも変わる(宣言的に変更できない)

そこで、宣言的な記述からファイルを生成し、GitHubの特定のリポジトリのパスへPushする仕組みがあれば、疑似的にIaCにおけるAPIのようなインターフェースとして利用できるのでは