如何防止GitHub仓库被AI机器人垃圾提交:实战经验分享

近日,Archestra.ai的技术团队在Hacker News上分享了他们如何使用Git的–author功能来阻止AI机器人对GitHub仓库的垃圾提交。这篇文章获得了435个积分和195条评论,引发了开发者社区的广泛讨论。

问题背景

随着AI编程工具的普及,一个新问题出现了:AI机器人开始自动向开源项目提交Pull Request(PR)。这些PR通常是AI生成的代码,质量参差不齐,有些甚至是完全无用的。对于维护者来说,审查这些PR浪费了大量时间。

Archestra.ai的仓库就遇到了这个问题。他们发现,有大量来自AI的PR被提交到仓库中,内容包括:

  • 自动生成的代码改进(有些是有用的,有些是错误的)
  • 自动生成的文档更新
  • 自动生成的测试用例
  • 完全无意义的代码修改

解决方案

Archestra.ai的解决方案出人意料地简单:他们使用Git的–author功能来识别和过滤AI提交。

# 检查提交的作者信息
git log --author="AI" --oneline
git log --author="Copilot" --oneline
git log --author="GPT" --oneline

他们发现,很多AI工具在提交时会在作者信息中留下标记,比如”Copilot”、”AI”、”GPT”等。通过检查这些标记,可以快速识别出AI生成的提交。

具体实施步骤

1. 配置GitHub Actions:在仓库中添加一个GitHub Action,自动检查新PR的提交作者信息。

name: Check AI Commits
on: [pull_request]
jobs:
  check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Check commit authors
        run: |
          git log --format='%an' origin/main..HEAD | grep -iE 'ai|gpt|copilot|bot' && exit 1 || exit 0

2. 添加贡献指南:在CONTRIBUTING.md中明确说明,AI生成的代码需要经过人工审核才能提交。

3. 使用Git Hooks:在本地配置Git hooks,在提交前检查作者信息。

社区讨论

这篇文章引发了激烈的讨论。一些开发者认为:

  • 支持方:AI生成的PR确实给维护者带来了额外负担,应该有机制来过滤
  • 反对方:不应该一概而论,有些AI生成的代码是有价值的,应该基于质量而非来源来判断
  • 中立方:应该有更好的工具来辅助审查,而不是简单地拒绝所有AI提交

对开源项目的建议

如果你是开源项目的维护者,以下是一些实用的建议:

  • 明确贡献政策:在项目文档中说明对AI生成代码的态度
  • 配置自动化检查:使用GitHub Actions或其他CI工具来自动检查提交
  • 建立审查流程:对于来自新贡献者的PR,建立更严格的审查流程
  • 使用标签:给可能来自AI的PR打上标签,方便后续筛选
  • 教育社区:帮助贡献者理解什么是好的AI辅助开发实践

更广泛的影响

这个问题反映了AI对开源社区的深远影响。随着AI工具变得越来越强大,我们需要新的机制来确保开源项目的质量和维护者的福祉。

一些平台已经开始采取行动。例如,GitHub正在开发新的工具来帮助维护者识别和管理AI生成的PR。未来,我们可能会看到更多针对AI贡献的治理机制。

本文参考来源:Archestra.ai Blog – Let’s talk about AI slop

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容