如何应对GitHub垃圾邮件机器人
GitHub 内置保护
结论
几个小时以来,我睡得像个婴儿一样香甜。但手机的铃声和震动不断打断了我的睡眠。“好了,这里有3000多封新邮件。怎么回事?”哦,原来是我在GitHub上拥有的一个代码库——ngx-admin——的问题通知。
有人突发奇想,在我们的代码仓库里创建了3000 多个中文广告垃圾邮件问题。真是个“精彩”的开始。
在那篇文章中,我将告诉你,如果你不小心引起了入侵者的注意,该如何处理 GitHub 存储库中的垃圾邮件。
GitHub 内置保护
如果您是仓库管理员,那么您可以在仓库设置中找到“交互限制”部分:
在该部分,您可以为您的存储库配置临时交互限制:
- 仅限现有用户
- 仅限先前贡献者
- 限制存储库协作者
让我们逐一讨论它们。
仅限现有用户
“限制为现有用户”选项允许您禁用最近创建的用户与存储库的交互。
就我而言,我们这里有很多几个小时前创建的不同用户。根据他们的名字来看,我认为这些用户是自动生成的。所以启用这个选项后,垃圾邮件和骚扰就停止了。此外,所有关注我们仓库的大约1000人也……
仅限先前贡献者
在这种情况下,我们可以禁用从未向仓库主分支提交过代码的用户与仓库的交互。但这个方案不可接受,因为我们仍然需要允许社区成员报告错误并协助我们提交拉取请求。
限制存储库协作者
“仅限仓库协作者”选项实际上会禁用非仓库协作者用户与仓库的交互(他们没有被授予推送权限)。对于开源项目而言,这个选项也是不可接受的,因为我们需要允许社区成员与仓库进行交互。
因此我应该怎么做?
显然,抑制垃圾邮件机器人的最佳方法是启用“仅限现有用户”选项,这将禁用最近注册用户与存储库的交互。
但所有这些选项都只能启用 24 小时。而且,我们不能永久禁用新注册用户的交互功能。因此,每当有人在我们的代码库中创建广告问题时,我们都必须手动启用这些功能。
好的,我们已经禁用了垃圾邮件机器人与代码库的交互,但代码库中仍然有3000 多个无用问题。该如何处理这些问题呢?我们有以下几种选择:
- 关闭所有那3000 多个问题
- 删除所有那3000 多个问题
关闭所有
在这种情况下关闭问题是不可接受的,因为我们会再次向所有仓库的关注者发送相同数量的电子邮件😳 - 太糟糕了。
全部删除
删除问题不会触发任何邮件通知,因此理论上可以同时进行。但问题在于:问题只能通过 GitHub Web 客户端逐个删除,无法批量删除所有已标记的问题。更糟糕的是,GitHub REST API 也没有提供合适的问题删除接口。
因此,目前看来唯一的办法就是向 GitHub 支持团队寻求帮助,然后他们会删除所有不合适的 issue。
结论
首先,感谢您阅读这篇文章。也许我当时有点情绪激动,但我认为事情不应该是这样的。我真的无法理解那些做这种事的人。我们本应该致力于改进我们的免费开源工具,却不得不把时间浪费在处理这些垃圾邮件问题上。
希望我们的经验能对您解决问题有所帮助。
文章来源:https://dev.to/nikpoltoratsky/how-to-deal-with-github-spambots-5e6n

