新手向 GitHub 仓库提交 PR,结果“轰炸”了近 40 万
这名新手程序员或许无意间创造了一项世界纪录——他在 GitHub 创建的 PR 让 40 万开发者收到了邮件提醒,并被反复“轰炸”。
近日,一名开发者向游戏公司 Epic Games 组织的 GitHub 仓库 提交了一个 PR , 内容 是修改 README 文件中的几处表述性问题,以及调整 logo 尺寸。
image.png image.png这种没什么技术含量的东西 PR,通常是刚接触 GitHub 不久的新手程序员在“练手”,又或是他们包装自己简历的一个手段——毕竟 PR 被合并后即可成为 Epic Games 的 Contributor,这种身份用来填充简历至少可以吓唬一下 HR。
然而,这个平平无奇的 PR 却在刚过去的周末惊动了大约 40 万使用虚幻引擎 (Unreal Engine) 的开发者。
原因是,这名新手为了让自己提交的 PR 尽快被合并,他在评论中'@'了多个帐号进行提醒,其中' @EpicGames/developers '触发了 reply-all 事件:向加入 Epic Games 组织的所有 GitHub 用户发送关于此 PR 的邮件通知。按照虚幻引擎的政策,要先加入 Epic Games 组织才有权限访问项目的源代码。这时 Epic Games 组织的成员人数是 398463 名。
image.png莫名收到邮件通知的开发者如果点开了 PR,并且留下评论,那么这些评论也会继续以邮件的形式通知给 Epic Games 组织的开发者。也就是说,大约 40 万开发者会因此收到大量的邮件轰炸。由于需要发送的邮件数量太多,导致 GitHub 邮件通知服务也出现了延迟。所以开发者收到邮件的时间会相差较远,不少开发者即使在获知此事后取消了订阅 PR,也还是会收到在此之前积压的未发出的邮件。
image.png image.png image.png下图就是一名被“邮件轰炸”的开发者打开收件箱时的真实记录:
image.png对于这种情况,受影响的开发者只能手动停止订阅此 PR 的通知,当然 Epic Games 开发者发现该情况后也立即锁定了 PR。事后,当事人发表了道歉推文,他表示自己确实不知道在 PR 评论中的'@'会影响到 40 万开发者。
当然,他也不知道自己为了修改表述错误而提交的 PR 本身也充斥着许多错误。
有开发者调侃,他可以把这次经历写到简历上:“通过向 Epic Games 的 GitHub 仓库提交 PR,将 GitHub 变成了发送骚扰邮件的僵尸网络。”
也有开发者认为,GitHub 作为平台不应允许如此宽松的机制:只需要'@'一个帐号,就能向几十万人发送邮件通知。