辞書プロジェクトで、AIが自動的にGitHubにコミットする際、誰がコミットしたのか分かりにくいという問題があった。すべてのコミットが私のアカウントで実行されるため、GitHubのコントリビューショングラフでAIの作業が見えなかった。
解決策は、専用のBotアカウント(mn-dict-bot)を作成することだった。このアカウント用のPersonal Access Token(PAT)を発行し、Google Apps Scriptから使用する。これにより、Botによるコミットが私のコミットと明確に区別される。
実装は意外と簡単だった。GitHubで新しいアカウントを作成し、Settings > Developer settings > Personal access tokensからトークンを生成する。必要なスコープはrepo(リポジトリへの完全アクセス)だ。
このトークンをGoogle Apps ScriptのScript Propertiesに保存し、GitHub APIを呼び出す際に使用する。具体的には、HTTPリクエストのAuthorizationヘッダーにtoken <PAT>を含める。
興味深い発見は、コミット者とオーサーの違いだった。GitHubのコミットには、committer(実際にコミットを実行した人)とauthor(変更を作成した人)の2つの情報がある。Botアカウントを使う場合、両方ともBotに設定するのが適切だ。
現在、mn-dict-botは安定稼働している。GitHubのコントリビューショングラフを見ると、Botアカウントのアバター(小さなロボットのアイコン)がコミット履歴に表示され、自動化された作業が一目で分かる。これにより、プロジェクトの透明性が向上した。