抵御 AI Slop:Archestra 如何利用 Git 的 `--author` 标志来保护开源项目

大语言模型 (LLMs) 的兴起给开源开发带来了矛盾的挑战。虽然 AI 可以加速编码,但它也开启了一个“AI slop”(AI 垃圾内容)的新时代——大量低质量、未经测试的 pull requests (PRs) 和幻觉问题 (hallucinated issues) 威胁着要淹没合法的真人贡献者。对于维护者来说,其结果是形成了一道“噪音墙”,使仓库管理变成了一项全职的清理工作。

Archestra 最近发现自己正处于这场风暴的中心。在发布了一个 900 美元的赏金以吸引为 “MCP Apps” 提供支持的贡献者后,他们遇到了 AI 机器人的疯狂涌入。一个 issue 竟然膨胀到了 253 条评论,其中许多是毫无意义的实现计划或针对维护者的攻击性消息。问题延伸到了整个仓库,一个关于 x.ai 提供商支持的功能请求触发了 27 个 PRs,其中大多数完全未经测试。

AI 生成指标的代价

这种现象突显了平台指标与项目健康状况之间日益增长的脱节。虽然 GitHub 可能在庆祝贡献总量的增长,但维护者看到的却是质量的退化。在 Archestra 的案例中,噪音变得如此严重,以至于真实的贡献者被埋没了,一名团队成员每周要花半天时间仅仅是为了删除 AI 垃圾。

除了行政负担之外,这种“slop”还引入了真正的安全风险。正如社区讨论中所指出的,AI 机器人可以被用来引导对话或操纵维护者,这种策略在 LiteLLM 等其他仓库中已经观察到。

“核武器级”方案:自定义白名单流程

在尝试构建声誉机器人和“AI 警长”——这些工具偶尔会关闭合法的 PRs——之后,Archestra 决定实施一项更激进的措施:阻止任何未完成特定入职流程 (onboarding process) 的用户创建 issue、提交 PRs 或发表评论。

由于 GitHub 缺乏针对开源仓库的原生、细粒度的白名单工具,团队开发了一种利用 Git 内部身份系统的技术变通方案。

技术黑客手段:利用 --author

GitHub 提供了一个名为 “Limit to prior contributors” 的设置,该设置将交互权限限制为之前向 main 分支提交过代码的用户。然而,这是一个粗放的工具,它会同时拦截机器人和新的、合法的真人贡献者。

为了绕过这一点,Archestra 利用了 Git 区分作者 (the author,即编写代码的人) 和提交者 (the committer,即将更改应用到仓库的人) 的事实。通过使用 --author 标志,维护者可以创建一个归属于另一个用户的 commit。

实现流程如下:

  1. 入职 (Onboarding): 潜在贡献者访问一个专用页面,同意 AI 伦理规则并完成 CAPTCHA 验证。
  2. 自动化 (Automation): 提交后触发 GitHub Action,通过 API 获取用户的 GitHub ID,并识别其 noreply 邮箱地址 (<id>+<username>@users.noreply.github.com)。
  3. 白名单 (Whitelisting): 系统会自动向 EXTERNAL_CONTRIBUTORS.md 文件创建一个 commit。该 commit 的作者是新用户(通过 --author 标志),而提交者是项目的自动化账号。
  4. 访问权限 (Access): GitHub 识别该用户为“先前的贡献者”,从而授予他们与仓库交互的即时权限。

社区批评与反论点

虽然这个方案很聪明,但它在开发者社区中引发了关于其长期可行性和副作用的重大辩论。

安全与完整性担忧

社区提出的一个关键点是授予“贡献者”身份带来的安全隐患。正如一位用户所指出的:

“当仅要求对首次贡献者进行审批时……任何在仓库中进行过任何 commit 或 pull request 合并的用户将不再需要审批。恶意用户可以通过让一个简单的拼写错误或其他无害的更改被接受来满足这一要求……”

通过程序化地向任何通过 CAPTCHA 验证的用户授予贡献者身份,该项目可能会在无意中绕过 GitHub 为首次贡献者设计的某些安全护栏。

“噪音转移”

批评者还指出,这并不能消除噪音;它只是转移了它。通过为每个白名单用户添加一个 commit,项目的 git 历史记录变得杂乱不堪。一些观察者指出,Archestra 仓库中最近的 commit 比例很大一部分现在都是用于白名单化的行政“噪音” commit。

其他替代方案

讨论中提出了几种缓解 AI 垃圾内容的替代方法:

  • 经济摩擦 (Financial Friction): 实施一种 “Pfand” (押金) 系统,贡献者为 PR 支付一小笔费用,并在被接受后退还。
  • 声誉系统 (Reputation Systems): 一种基于 ELO 的系统,根据项目的重要性以及之前合并的过的 PRs 的质量来衡量贡献权重。
  • 更严格的身份政策 (Stricter Identity Policies): 呼吁 GitHub 呼吁 GitHub 实施实名制政策或更严格的验证,以消除匿名机器人账号。

结论

Archestra 的方法证明了维护者在面对 AI 驱动的垃圾内容时所感受到的绝望。虽然 --author 黑客手段提供了一个临时性的盾牌,白,这却也强调了一个根本性问题:管理开源社区的工具是为“每个贡献都是由人类完成”的世界而构建的的。随着 AI 贡献的低质量-质量内容 flood 洪水般涌入生态系统,行业可能需要转向更稳健、定性的质量衡量标准,而不是依赖目前由平台所倡助的原始贡献指标。

Sources