GitHubは10月12日、各コミットをpushした認証済みユーザーを恒久的に記録し、UIとAPIでauthor、committerと並べて表示する機能を、限定公開プレビューとしてGitHub Enterprise向けに始めた。参加するには、アカウントチームへ申請する。
authorとcommitterは、pushするクライアントが任意の名前とメールアドレスを入れられる文字列だ。書き込み権限のある低権限アカウントを乗っ取られると、信頼されたメンテナ名義のコミットに見せかけて、レビュー方針をすり抜けられる。GitHubはpush時の認証自体は従来から行っている。今回はその認証主体を、コミットごとのpush者として、クライアントが書いたメタデータとは別に残す。
新しいリポジトリルール「Committer must match pusher」は、committerの表記が、認証されたpush者の確認済みメールアドレスのいずれとも一致しないpushを拒否する。監査では、表示上の作者ではなくpush者を起点に不審な履歴を追える。プレビューはEnterprise限定なので、無償の個人リポジトリや対象外の組織ではまだ強制できない。ルールを入れる前に、ボットや共有アカウントがcommitterを別名にしている運用がないかを確認しないと、正当なpushまで止まる。