
2026/05/19 0:24
当社の GitHub リポジトリにおいて、AI ボットによるスパム投稿を防ぐため、Git の-author フラグを使用して対処しました。
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
GitHub では、低品質な AI による貢献の大量流入によりコード品質が深刻に低下しており、成長指標がかけている貢献価値の減少を覆い隠す状況です。この急増は、チームを週に半日かけて検証されていない pull request の清掃や幻覚的なイシューの閉鎖に追わせ、中毒化した会話がウォッチャーをスパム化させ、リポジトリの健全性を劣化させるに至っています。「London-Cat」という評判ボットのような自動フィルタでは不十分であることが示され、その後導入された「AI sheriff」ツールは正当な PR を誤って閉鎖する結果となりました。その結果、プロジェクトは義務付けによるオンボーディングプロセスを採用するようになり、例として Archestra.ai は外部コントリビューターが https://archestra.ai/contributor-onboard で特定のコミットを通じて認証することなしにはアクセスできないようにしています。「Limit to prior contributors」といった標準的な GitHub の保護機能も機能しないため、正当な新規ユーザとボットを同時にブロックしてしまうほか、悪意のあるアクターは Git
--author フラグを使用して人間のように装って制限を回避することが容易です。AI スロップが LiteLLM リポジトリの会話誘導を試みるような事象によってこれらのセキュリティリスクが目立ちます。業界リーダー間の合意では、開発者の時間を無駄にし、コードベースが侵害されることを防ぐために厳格なセキュリティとオープンなコラボレーションを両立させることが重要であるとされています。本文
ハッカニュースにおける議論:私たちが知っているオープンソースの時代終焉か数カ月前、GitHub が製品上の指標として、AI を通じた莫大な貢献を祝う統計データを共有した際、私たちは既に状況が悪化しつつあることを察知していました。その発表は、貢献品質が低下しているという本質的な問題を全く捉えておらずです。
最初の懸念に满ちた出来事は、当プラットフォームへの「MCP Apps」支援をもたらすよう、貢献を促すために 900 ドルという報酬額を設定した投稿の問題でした。正当な貢献者から計画の提案や質問、試行案の提出といった関心が集まりましたが、やがて AI ボットが登場し、その問題欄を混乱に陥れました。彼らは議論を「 pointless な実装プラン」であふれさせ、マイネーターらに対する純粋な攻撃さえも繰り広げ、最終的に 253 のコメントへと膨らませてしまいました。
AI アカウントによる洪水は、この単一の問題に限らずレポジトリー全体に及んでいました。チームメンバーが監視しているあらゆる粗忽なコメントが、チームの全メンバーに対して通知として届くようになり、GitHub の通知画面はノイズの壁となっておりました。@ethanwater 氏や @developerfred 氏、@Geetk172 氏といった、実際に報酬課題に取り組んでいただいている本当の貢献者からの真剣な対話は、その下層へ埋もれ去ってしまいました。
やがて問題は流行病の形をとり始めました。例えば、Archestra に x.ai プロバイダーを追加する単一の問題に対しては、27 個のプルリクエストが受け付けられました。しかしそれらの大半は、貢献者が実際にテストを試みることを一切怠ったものでした。チームメンバーの一人は、毎週半日もの時間を費やして、レポジトリーから AI が生成したゴミを除去し、未検証の PR を閉鎖するとともに、幻覚によって生じた問題も关闭せねばなりませんでした。そのような手を抜いた対応をおろそかにした際、レポジトリーは正当な貢献者にとって完全に不友好な場所へと急速に変貌してしまいました。
反撃へ
当初是我们试图計算贡献者的“声誉”,并开发了名为"London-Cat"的小型机器人,该机器人基于合并的 PR 及其他若干信号来计算贡献者的声誉(参见示例)。这显然未能阻止垃圾信息的泛滥,但却帮助我们分辨出了“谁是誰”。
作为下一步,我们开发了一名"AI 警长”(参见示例),但该措施也遗憾地关闭了一些合法的 PR 🤦。
无用的 AI 评论和提案的不断涌入愈发严重,将正当的贡献者拒之门外,迫使我们重新审视:是否应该停止用悬赏来激励贡献?是否还应该向求职者提供有趣的测试任务?
我们已决定必须进行反击,坚持让我们的仓库成为一个对正当贡献者、负责任的 AI 用户、新手以及资深工程师而言舒适且安全的环境。
今日,我们已开始限制那些未经过入职流程的用户的权限,禁止其创建问题、发起 PR 或发表评论。
贡献者入职:获得白名单的五步流程
这的确是一种“核选项”。对于一家依靠 GitHub 活跃度进行严格评估的 VC 系初创公司而言,此举尤为敏感。但我们不得不按下按钮:我们看重质量甚于数量,绝不推崇由 AI 垃圾堆砌而成的指标。
我们要让 Archestra 成为一款人人皆可贡献的伟大软件,而不应让它被 AI 机器人所吞噬。
GitHub 上的实施
在开源仓库中,并无直接的方法来白名单化那些拥有评论或创建 PR 权限的用户,因此我们不得不采取变通手段。存在一项名为“限制为既往贡献者”的设置。其基本规则是:如果你此前未曾向 main 分支提交过代码,则无法对问题或 PR 进行评论。
既往贡献者设置
然而,该设置无法区分 AI 机器人与真正注册并准备参与悬赏的开发者。两者皆被归类为“非既往贡献者”,因而均会被锁定权限。
GitHub 将“既往贡献者”定义为:其 GitHub 账户是 main 分支上某次提交(commit)的作者的人。Git 提交包含两个身份字段——作者(author)与提交者(committer),二者可以是不同的人。利用 Git 的
--author 标志,你可以创建一项归属于他人的提交。只要电子邮件地址与其 GitHub 账户匹配,GitHub 便会将该提交关联至其个人档案,并赋予其贡献者身份。
每个 GitHub 账户都拥有一个 no-reply 邮箱:
<id>+<username>@users.noreply.github.com。通过 API 查找该用户的 ID 并执行提交操作如下:
gh api users/their-username --jq '.id'
git commit \ --author="their-username <ID+their-username@users.noreply.github.com>" \ -m "chore: add their-username to external contributors"
将更改推送到 main 分支后,该用户即可立即获得评论权限。此时,外部用户将以作者身份显示,而我们的账户则作为提交者出现。这正是 GitHub 将其认定为既往贡献者所需的全部条件。
完整的流程如下:
- 入职培训:在我们的网站上完成包含伦理 AI 准则和 CAPTCHA 的入职流程(https://archestra.ai/contributor-onboard)。
- GitHub Action:提交触发一个 GitHub Action,该动作会查找用户的 GitHub ID,将其用户名添加到
文件中,并以该用户的账户名义向 main 分支推送一个提交。EXTERNAL_CONTRIBUTORS.md - 白名单化:用户获得白名单资格并获取对仓库的访问权限。
结语
尽管 GitHub 报告了巨大的指标增长——其中很大一部分源自 AI 生成内容——但我们作为一个开源项目团队,必须付出巨大努力去清理仓库中的 AI 垃圾,并采取一些冷僻的变通方案,以维持我们开源受众的正统性水平。
AI 生成的“垃圾”不仅挫伤了那些希望投入时间行善的贡献者的积极性,迫使他们冲破噪音之墙;它还带来了实质性的安全风险。正如 LiteLLM 仓库所发生的那样,攻击者曾试图利用 AI 机器人操纵讨论走向。
亲爱的社区成员们,现在是时候我们就 AI 对开源运动的影响进行一次严肃的对话了。