GitHub CopilotがPRに広告を自動挿入 — 150万件超のPRが影響を受けた問題の全容と教訓
はじめに
GitHub Copilotが、開発者のプルリクエスト(PR)説明文にMicrosoft製品の広告を自動挿入していたことが発覚し、開発者コミュニティで大きな波紋を呼んでいる。メルボルンの開発者Zach Manson氏がこの問題を報告したブログ記事はHacker Newsで1,324ポイントを獲得し、その後の調査で150万件以上のPRが同様の影響を受けていたことが判明した。この記事では、何が起きたのか、なぜ問題なのか、そしてAI開発ツールとの付き合い方について考える。
何が起きたのか — 「ヒント」という名の広告挿入
発覚の経緯
Manson氏がCopilotにタイプミスの修正を依頼したところ、Copilotはタイプミスを直すだけでなく、PR説明文に以下のようなメッセージを追加した。
⚡ Quickly spin up Copilot coding agent tasks from anywhere on your macOS or Windows machine with Raycast.
これはMicrosoftのパートナーであるRaycastとの連携を宣伝する「プロダクトヒント」だった。Manson氏がGitHub上でこのフレーズを検索したところ、11,000件以上のPRで同一のテキストが見つかった。
技術的な仕組み
挿入された広告は、PR説明文の中に<!-- START COPILOT CODING AGENT TIPS -->というHTMLコメントで囲まれた形で埋め込まれていた。広告の内容はRaycast連携だけでなく、以下のようなバリエーションが確認されている。
- Slack・TeamsからCopilotコーディングエージェントにタスクを送信する機能の宣伝
- VS Code、Visual Studio、JetBrains IDE、Eclipseからのタスク開始を促すメッセージ
いずれもMicrosoftの開発者エコシステムへの誘導を目的としたものだった。
GitHubの対応
GitHubのDeveloper Relations VP(Tim Rogers氏)は、この機能がもともとCopilotが作成したPR向けの「ヒント」として設計されたものだったと説明。しかし、CopilotがあらゆるPRに対して動作するよう拡張された際にこの機能が残り、意図しない広告挿入が発生したと釈明した。フィードバックを受けて、この機能は完全に無効化された。
なぜこれが深刻な問題なのか
1. 開発者の同意なきコンテンツ改変
最も根本的な問題は、開発者が意図しないコンテンツがPRに挿入されたことだ。PRの説明文はコードレビューの重要な一部であり、チームのコミュニケーション手段でもある。AIツールがユーザーの許可なくそこに広告を書き込むのは、信頼関係の根本的な破壊と言える。
2. 規模の大きさ
影響を受けたPRは150万件以上。これはCopilotがリリースされた2025年5月からほぼ最初期にこの機能が組み込まれていた可能性を示唆している。つまり約10ヶ月間、開発者が気づかないまま広告が挿入され続けていた。
3. 巻き込まれたサードパーティ
Raycast社は「この件については知らなかった、ここ(Hacker News)で初めて知った」とコメントしている。広告に名前を使われたRaycast自身が事前に知らされていなかったという事実は、この「ヒント」がパートナーシップに基づくものではなく、Microsoft側の一方的な判断だったことを示している。
エンジニアが学ぶべき教訓
AI出力の検証は必須
今回の事件は、AIが生成・編集したコンテンツをそのまま受け入れることのリスクを改めて浮き彫りにした。コード補完やPR作成の自動化は便利だが、AIの出力には必ず人間のレビューが必要だ。特に以下の点に注意したい。
- diff(差分)を必ず確認する: AIが変更した内容は、意図した変更だけでなく予期しない追加・削除がないか確認する
- CI/CDパイプラインでの検知: PR説明文に特定のパターン(広告的なURLやHTMLコメント)が含まれていないかをチェックするルールの導入も検討に値する
プラットフォーム依存のリスク
Hacker Newsのコメント欄では、ForgeoやGiteaといったセルフホスト型Gitプラットフォームへの移行を検討する声が多く上がった。GitHubは事実上の標準だが、プラットフォームの方針変更に振り回されるリスクを認識し、移行可能な状態を維持することの重要性が再確認された。
「プラットフォーム衰退」への警戒
Manson氏はブログ記事でCory Doctorowの「プラットフォーム衰退(enshittification)」モデルを引用している。プラットフォームは最初はユーザーに価値を提供するが、やがてビジネス顧客のため、最終的には自社利益のためにユーザー体験を犠牲にするというパターンだ。今回の広告挿入がこの流れの一部なのかどうか、開発者は注視していく必要がある。
まとめ
- GitHub Copilotが150万件以上のPR説明文にMicrosoft製品の広告を自動挿入していたことが発覚
- HTMLコメントで隠された「ヒント」として、Raycast連携やSlack/Teams連携の宣伝が埋め込まれていた
- GitHubは機能を無効化し謝罪したが、開発者コミュニティの信頼回復には時間がかかる見通し
- AI開発ツールの出力を盲信せず、差分の確認を徹底することが改めて重要に
AIツールは開発生産性を大きく向上させる一方で、ツール提供者の意図が混入するリスクも孕んでいる。便利さと引き換えに何を受け入れているのか、定期的に立ち止まって考える姿勢が求められる。