GitHub の code owners 機能

GitHub には Git には無い固有の機能として code owners と呼ばれる機能があります。 この機能を利用すると GitHub 上のリポジトリもしくはリポジトリ内の特定のファイルにオーナーを設定することができます。 オーナーの設定されているコードを修正する Pull request が作成されたときには自動的にオーナーがレビュアーに設定されます。 branch protection を利用することでオーナーのレビューのない Pull request を merge できない様に制限することも出来ます。

設定方法

リポジトリの管理者権限を持ったユーザーで CODEOWNERS という名前のファイルをリポジトリのルートディレクトリ、docs/.github/のどこかに作成します。 CODEOWNERS のフォーマットは以下の通りです。

# # で始まる行はコメントです
# [パターン] [オーナーとなるユーザー]
# のフォーマットで指定します
# パターンの指定方法は .gitignore の表記に近いです
# ユーザーは @[ユーザー名] もしくは E-mail アドレスで指定できます


# リポジトリ全体に適用されるオーナー
* @owner

# ファイルの拡張子を指定する場合
*.js @js-owner

# オーナーに Organization の Team を指定する際には @[Organization 名]/[チーム名] のフォーマットで指定します。
*.css @company/css-team

# 複数の人をオーナーに指定する場合にはユーザー名を半角スペースで区切って複数並べます
*.html @html-owner @designer

# 特定のディレクトリを指定する場合
# リポジトリのルートに存在する `docs` フォルダーとその中にある全てのファイルを指定します
docs/ @docs-owner

code owner の使いどころ

ブランチの設定を行うことで code owner によるコードレビューを強制することができます。 そのため code owner にはプロダクトオーナーやチーム内での有識者といった、『ココを修正する場合にはこの人のレビューが無いとダメだよね?』と思える人を設定するのが良いです。

参考資料