CodeOwner レビューパターンは、ファイルまたはファイルタイプの所有権を割り当てるためのシステムであり、コードレビューやマージリクエストなどのシナリオで自動的にレビュータスクを割り当てることができます。
コードレビューのレビューパターン
コードレビュー中に、作成者は最適なレビュー担当者を選択するのに苦労することがあります。 CodeOwner レビューパターンは、CODEOWNERS ファイルを使用して各ファイルまたはモジュールの所有権を定義することで、この問題に対処します。 このファイルはブランチのルートディレクトリに配置され、システムは自動的にレビュー担当者をファイルに一致させることができます。 CodeOwner レビューが有効になっている場合、システムはターゲットブランチのルートディレクトリで CODEOWNERS ファイルを検索し、構成を読み取ります。
所有者が 1 人だけのファイルでは、その所有者による必須レビューが必要です。
A、B、C など、複数の所有者がいるファイルの場合、いずれかの所有者の承認で十分です。 システムは関連する所有者を自動的に識別し、レビューリストに追加します。
一致する所有者が見つからない場合、ファイルにはフォールバックとして少なくとも 1 人のレビュー担当者が必要です。 システムは、ファイルの一致に関して最も具体的で明示的なルールに準拠し、ファイルごとに 1 つのルールが適用されます。
CODEOWNERS ファイルで定義されている次のパスについて考えてみます。
f.txt は **@user1 ルールに正確に対応します
aa/f.txt は aa/**@user2 ルールに正確に対応します
aa/mm/f.txt は aa/mm/**@user3 ルールに正確に対応します
bb/f.txt は bb/**@user4 ルールに正確に対応します
各ファイルは適切なルールに関連付けることができ、効率と精度を高めるためにプロセスを合理化します。

CODEOWNERS ファイルでは、パスの定義には Linux の find コマンドや Git の .gitignore パターンに似た Glob 構文が使用されます。 所有者は @username で指定します。ここで、username は検証済みのプライマリ メールボックスである必要があります。 プライマリ メールボックスを確認するには、 に移動します。

次の例はこれを示しています。
# コメント行。以下は構成テキストです。各行は構成を表します。
# パス ルールの後には、1 人以上の所有者が必要です
# ユーザー A@example.com、B@example.com をすべてのファイルの CodeOwner として設定します
** @A@example.com @B@example.com
# ユーザー C@example.com をすべての Java ファイルの CodeOwner として設定します
**.java @C@example.com
# ユーザー D@example.com、E@example.com を force-api ディレクトリ以下のファイルの CodeOwner として設定します
force-api/** @D@example.com @E@example.com
# ユーザー F@example.com を force-base/src/main/java ディレクトリ以下のファイルの CodeOwner として設定します
force-base/src/main/java/** @F@example.com