技術 約5分で読めます

GitHub CopilotがPR本文に広告を挿入していた

開発者のZach Mansonが、チームメンバーにPRのタイポ修正をCopilotに依頼したところ、PR本文にCopilotとRaycastの宣伝テキストが挿入されていたと報告した。HNでは数時間で541ポイント・168コメントを集め、GitHubのenshittification(プラットフォームの意図的な品質低下)を象徴する事例として議論が白熱した。

何が起きたのか

Copilot coding agentがPRの説明文を編集する際、本来のタスクとは無関係な「Tips」セクションを末尾に追加していた。挿入されるテキストにはいくつかのバリエーションがある。

バリエーション内容
Raycast連携「Quickly spin up copilot coding agent sessions from Raycast」
Jira/Linear連携「Connect Copilot coding agent with Jira, Azure Boards or Linear to delegate work to Copilot in one click」
Slack/Teams連携「Send tasks to Copilot coding agent from Slack and Teams to turn conversations into code」
カスタム設定「You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers」

これらのテキストは <!-- START COPILOT CODING AGENT TIPS --> というHTMLコメントで囲まれており、プログラム的に挿入されていることがわかる。GitHub上でこのパターンを検索すると、150万件以上のPRがヒットする。Copilot coding agentが2025年5月にリリースされて以来、最初期からこの挙動が存在していたことになる。

「Tip」か「広告」か

GitHub/Microsoft側はこれを「Tip(ヒント)」と位置づけているようだが、HNのコメント群ではほぼ全員が広告と認識していた。

反発の焦点はいくつかある。PRは開発者間のコミュニケーション手段であり、ツールが勝手に宣伝文を差し込む場所ではないという点が最大の論点だった。Raycast連携のリンク先は gh.io/cca-raycast-docs で、GitHubの公式ドキュメントにリダイレクトされる。つまりRaycastが独自に挿入しているのではなく、GitHub側がパートナーシップの一環として自社のCopilot機能紹介にRaycastを組み込んでいる構造だ。

HNコメントで指摘された問題点を整理する。

  • PR本文は開発者の成果物であり、ツールが無断で内容を改変すべきではない
  • 「Tip」と称しても実質的に自社サービスのクロスセルであり、ダークパターンに該当する
  • 人間が書いたPRをCopilotが事後編集して広告を挿入するケースと、Copilot自身が生成したPRに含まれるケースでは性質が異なる。前者はより深刻
  • Copilot CLIがgit configを上書きしてコミット作者を「GitHub Copilot」に変更するという報告もあり、ツールによる成果物の横取りだという批判も出ていた

Enshittificationの文脈

Mansonは記事の中でCory Doctorowのenshittification論を引用している。

プラットフォームはこう死ぬ。最初はユーザーに親切にする。次にユーザーを犠牲にしてビジネス顧客のために尽くす。最後にビジネス顧客も搾取して、すべての価値を自分で回収する。そして死ぬ。

GitHubに当てはめると、無料でホスティングを提供してユーザーを集め(フェーズ1)、蓄積されたコードとコミュニティをCopilotの学習データに使い(フェーズ2)、そしてCopilotの出力にまで広告を差し込む(フェーズ3)という流れが見えてくる。

この記事の1週間前には、GitHubがプライバシーポリシーを更新し、新たにSection Jとして「AI features, training, and your data」を追加している。オプトアウトしない限り、ユーザーの入力(プロンプトやコードコンテキスト)と出力(サジェスチョン)をAIモデルの学習に使用するライセンスをGitHubに付与する内容だ。以前の記事でも取り上げた4月24日からのデータ収集ポリシー変更と合わせて、GitHubのデータ活用姿勢が急速に変わっている。

HNでは代替プラットフォームとしてCodeberg(Forgejoベースのオープンソースホスティング)やセルフホスト型のGitea/Forgejoへの移行を検討する声も目立った。ただしCodebergはFOSSプロジェクト専用で、CIの利用には申請が必要という制約がある。

AIコーディングツール全般の傾向

PR本文への自己宣伝はCopilotに限った話ではない。HNのコメントではCursorも「Made with Cursor」をPR説明に挿入する挙動があり、設定で無効化しても再び有効化されるケースが報告されていた。Copilot CLIのオートパイロットモードでコミット作者を「GitHub Copilot」に書き換える挙動も複数のユーザーから報告されている。

AIコーディングツールが成果物に自らのクレジットを刻み込もうとする傾向は、単なるUXの問題を超えている。コードの著作権やライセンスの帰属が法的に未整備な状況で、AIツールがコミット作者やPR本文を書き換えることは、将来的な権利主張の布石にもなりうる。

開発者にできる対処は現時点では限られる。.github/copilot-instructions.md やスキルファイルで「PRに広告や自己言及を含めない」と明示的に指示する、Copilot生成のPRを人間がレビューする際にTipsセクションを確認して削除する、といった運用回避が現実的な選択肢だ。

ただ、Mansonが指摘するまで150万件のPRに広告が埋まっていたことに気づいた開発者はほとんどいなかった。