本文へスキップ
MameTechNews
バックエンド

GitHub、pushした認証ユーザーをコミットに残すプレビューを開始

## POINTS

  • push者は認証済みの本人として残り、クライアントが書いたauthorとは独立している。
  • Committer must match pusherは、committerがpush者の確認済みメールと一致しないpushを拒否する。
  • 現時点はEnterpriseの限定プレビューで、参加にはアカウントチームへの申請が要る。

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まで止まる。