GitHubでPRを作ったときにレビュアーを指定するのが面倒だったので、CODEOWNERでさくっと自動化しましょう。
CODEOWNERとは
GitHubは指定したパスに対してコード所有者を設定する機能があります。コード所有者に設定されたパスを変更するPRを作成されたとき、自動的にレビュアー指定されます。
これの便利なところは、機能やファイルごとにコード責任者を設定できるため、PRでレビュー必須にすれば確実にレビュープロセスを通せることです。また、コード変更する人もどの人にレビューしてもらうか意識せずとも指定されます。
CODEOWNERの設定
おすすめは、.github/CODEOWNERS
に設定することです。中身はパス @オーナーのユーザー名
で並べればOKです。極端な例ですが、全ファイルのオーナーを自分にするなら次のようになります。
* @myusername
もちろん、ファイルやディレクトリごとにオーナー設定もできます。
# 全.mdファイルのオーナー指定 *.md @myusername # 認証関連のディレクトリのオーナー指定 /src/Server/Authentication/ @foo-username # プレイヤーコントローラーのディレクトリのオーナー指定 /src/Foo.Unity/Assets/Foo/Scripts/PlayerController/ @bar-username # あらゆるディレクトリにあるtests/のオーナー指定 **/tests/ @baz-username
もしディレクトリの特定サブディレクトリだけオーナー除外するなら、オーナーを空欄にします。
/src/Server/Authentication/ @foo-username /src/Server/Authentication/GitHub/
Rulesetsでレビュアー必須と組み合わせる
もしコードオーナーのレビューを必須にするなら、ブランチルールセットでPRに関する設定をすればいいでしょう。例えば以下の組み合わせで、コードオーナーのレビューを必須にできます。
- Require a pull request review before merging
- Required approvals: 1以上
- Require review from Code Owners
CODEOWNERには通知が来る
割と便利ですがちょっとノイジーなのが通知です。自分が所有者なコードにPRが作られるとCODEOWNERには通知が来ます。スマホのGitHub Appsにも通知が来るのでPRを見逃すことはない一方で、大量に来るとちょっとうるさいですね。
チームをアサインすると全員に通知が来る
チーム全員に通知くるのはさすがに? というのは、時々ある要望のようです。ディスカッションのようなカスタマイズしたワークフローが落としどころでしょう。
Copilotのコードレビューを自動化する
GitHub Copilot ReviewでPRをレビュー自動化する場合、CODEOWNERは用いずブランチルールセットで行います。便利。
- Require a pull request review before merging
- Request pull request review from Copilot
まとめ
GitHub Copilot Review便利なのですが、人間のレビューにはCODEOWNERがいいですね。カスタムアクションで頑張らずにすむなら省力化できます。