写点什么

怀疑开发者在“造核弹”?GitHub 不断封禁开源项目

  • 2020-03-20
  • 本文字数:2859 字

    阅读完需:约 9 分钟

怀疑开发者在“造核弹”?GitHub不断封禁开源项目

GitHub 狠起来连自己都打。今天它封掉了自家的开源项目 Aurelia,只因项目中有两名来自伊朗的外部贡献者。


继去年封禁伊朗等地区账号后,GitHub 今天再次封禁了一个属于微软的前端开源项目 Aurelia,理由是项目中有两名来自伊朗的外部贡献者。虽然 GitHub 首席执行官致歉表示“这次的确是个错误”,但是开发者们显然不买账:GitHub 封禁项目的行为是否太随意了?这样的行为难道不是与开源信念背道而驰吗?

GitHub 一不小心封掉了自家的项目

今天,一个名叫“Aurelia”的前端项目被 GitHub 封禁了。Aurelia 是微软开发的 JavaScript 框架,开源已有 5 年,由一家美国公司管理。



作为项目负责人,微软首席 UX 工程师 Rob Eisenberg 表示非常懵:“一觉醒来,发现 Aurelia 网站被关了,数 T 归档都没办法访问了。之前也没有收到正式的通知,这对我们是毁灭性的行为!”他开玩笑说:“难道是因为微软又有了一个新的 JavaScript 框架,所以要封掉 Aurelia?!“


更为讽刺的是,在微软工作的 Rob Eisenberg 还不得不通过发 Twitter 并知会 GitHub 的方式,来解决公司内部问题(毕竟微软已经收购了 GitHub 呀)。GitHub 的支持账号随后也给了他一个不痛不痒的回复:


如果你认为自己被错误标记了,你可以向 GitHub 申诉啊。可以参看我们的说明网页。


正式上诉后,GitHub 重新启用该项目的组织帐户。Rob 随后向公众解释了封禁原因:


因为我们有两名来自伊朗的外部贡献者(非 GH 组织成员),所以 GitHub 自动标记并封禁了账号。


事件不断发酵,快速的就顶到了 HackerNews 头版,GitHub 的首席执行官不得不也对此表示了歉意:


关闭此帐户显然是一个可怕的错误,我对受此影响的人表示歉意。我们正在调查具体过程,并更改规则以确保此类问题不会再次发生。

被封掉的另一个普通开发者账号

无独有偶,类似事情可不是孤例。


一位叫 Nikolay 的俄罗斯小哥最近有点烦。他是一名 Web 开发人员,平时的爱好就是编写开源库。像很多开发者一样,他把这些开源库都托管到了 GitHub 上。看看下边这张图,Nikolay 过去一年有 3,236 个 contributions,足见又勤奋又活跃。但是最近他遇到点麻烦:他的 GitHub 账号被封了。



图注:这小哥在 GitHub 上确实很活跃


3 月 9 日,GitHub 在没有通知我的情况下突然就封了我的账号。一开始我都没发现,还是有人给我发邮件说我的托管库已停止工作,并问我为什么删除 GitHub 帐户(我没有),我才发现不对劲儿。

更让人崩溃的是,如果有人去到我的 GitHub 页面,那上边显示的是“ 404 未找到”,甚至都不是一个“该用户帐户暂时无法访问”的页面,就好像我这个人根本不存在一样。


这位俄罗斯小哥开始向 GitHub 申诉,并且在 Medium 上全程直播接下来的申诉过程。引来众多开发者围观。


GitHub 的唯一提示是当我点到他们的网站时(仅对我而言),顶部显示一条通知:您的帐户已被标记。因此您的个人资料不公开。如果您认为这是一个错误,请与支持人员联系以审核您的帐户状态。


虽然第一时间 Nikolay 就向 GitHub 发送了邮件申请解封,但是一个星期过去了,没有收到任何回应。



然后 Nikolay 就开始猜:为什么封我的号呢?是我的源代码深处有某个“列入黑名单”的网站超链接?或者是最近我在网上称呼某人为白痴?(最终证明还真就是因为这个!)


让 Nikolay 最为接受不了的是,账号被封后,除了他自己以外,所有人对库中所有 issue(问题)的评论都瞬间消失了,其中一些评论其实是很有价值的。Nikolay 要被气炸了:


GitHub 如果想要阻止你登陆,它可以保证你的代码不会丢失,但不能保证你在 issues/pull-requests/commits/etc 中的评论不会丢失。可笑的是,GitHub 一直宣扬“共享”和“共建”,但却轻易地阻止人们登陆他们花费了大量时间和经历共同创建的源代码和知识库社区,一味地针对一个不知道为啥被封号的人,这就是所谓的“宽大包容”吗?


过了一阵,Nikolay 的文章又做了一个更新:


账户被封一周之后,GitHub 终于有回应了。但是可疑的是,这个回应发生在别人把我这篇文章发在Hacker News,引起很多人关注之后。


Nikolay 在文章里解释了他为什么会被封号。原来是因为他在 GitHub 上开玩笑地称一个家伙为 prick。对方因为感觉被侮辱而申诉,虽然不当言论确实该被惩罚,但是 GitHub 没有给 Nikolay 任何申诉的机会,也没有给他任何通知,直接就封了他的帐户。

“审查”高于一切?

虽然这些被错误封禁的项目都已重新开放,但是的确增加了人们对 GitHub 的不信任,开发者们群情激愤:到底有多少项目的存储库已被禁用?如果不是因为 Aurelia 是微软的项目并且进入 HackerNews 头版,还不知道类似问题能不能都得到解决。


俄罗斯小哥 Nikolay 显然也很失望:“GitHub 虽然是一个开源社区,但更是一个商业公司。对外形象和求稳才是他们真正在意的吧。只要有人施压,他们可以轻易处置任何人。”


你直说自己是一家商业公司也行,可是你却还处处标榜自己是一家非盈利组织。现在想想,那些在社交媒体上称赞并且向别人推荐 GitHub 的人该是多么天真啊。


去年 7 月,一位伊朗开发者的 GitHub 账号被禁,他在社交媒体上分享了自己的经历,并向 GitHub 官方发起质询。最后得知,因为自己的所在地伊朗受到美国制裁,目前整个伊朗地区的 GitHub 账号均无法使用。更让人愤怒的是,GitHub 在没有任何事先通知的情况下屏蔽了所有伊朗账户,连让该地区开发者下载备份数据的机会都没有。随后的消息表明,被美国贸易制裁的国家和地区的开发者账号,还包括克里米亚、古巴、朝鲜、伊朗和叙利亚。


开源是软件时代非常关键的一条技术路线,几乎所有的软件公司都会基于开源软件栈来构建他们的应用。开源软件是全人类的财富,不属于任何个人,开源的边界已经超越了某个组织或公司。它代表的是信念,是精神,是文化。


但是 GitHub 能够跟开源划等号吗?肯定不能。


一直以来,GitHub 都是托管开源项目的最佳选择,但是微软收购 GitHub 后,无论你是否承认,它的身上都无法摆脱商业公司的标签。


微软对开源社区的态度一直很微妙,这不是什么秘密;反过来,一些开源界人士也秉持着“反微软”的态度。微软掌控下的 GitHub 将如何发展,目前还难下定论,不过肯定会有一些开源人士会“择良木而栖”,去往别处。包括这些事件的主人公们在内,众多开发者给出了各种各样的建议:


  • 要不转去 GitLab?

  • Google Code 也不错,有免费 Git 以及 2 GB 存储空间呢。

  • SourceForge 也不错。

  • 试试不在美国的代码托管平台?


……


然而,GitHub 仍是这世界上最流行的代码托管平台,对这些开发者来说,沉没成本太大了。


当然这一切也未必是微软的错,如果没被微软收购,GitHub 一定比现在好?除了自身发展所遭遇的困境外,对于开发者来说,如果 GitHub 长得太大,难道就是好事?


傅盛曾在一次演讲中说:你把一个 App 放在网络上,可以让几十亿人下载,让全世界的人知道你。时过境迁,谷歌、苹果、Facebook 这样超大平台的出现,使得事情又走向了另一个极端。当涉及到各种商业利益和社会因素的时候,它们同样可以在一天内让几十亿的用户完全接触不到你,让你建立的基业瞬间湮灭——这就是垄断平台的力量。


这句话放在 GitHub 身上,同样适用。


2020-03-20 17:3212548

评论 3 条评论

发布
用户头像
gitee比较快
2020-04-24 11:23
回复
用户头像
可怕。
2020-03-27 00:09
回复
用户头像
至少现在国内项目都会在gitee做个备份。
2020-03-21 20:27
回复
没有更多了
发现更多内容

怎样成为全栈工程师(Full Stack Developer)(1),已拿offer

Java 程序员 后端

并发编程专题三-JAVA线程的并发工具类,面试要掌握这几个关键点

Java 程序员 后端

彻底理解coookie、session、token,mybatis的动态sql执行原理

Java 程序员 后端

微服务架构陷阱:过渡设计和设计不足,2021年Java开发前景如何

Java 程序员 后端

快速上手Apache,java递归求阶乘原理

Java 程序员 后端

快速鸟瞰并发编程,-呕心沥血整理的架构技术【2】,分层展示的架构图

Java 程序员 后端

应届生想要找到一份Java开发的工作,需要达到什么水平?

Java 程序员 后端

强哥说Java--Java 变量,java面试逻辑思维题及答案

Java 程序员 后端

快人一步!阿里爆款Java性能调优手册,源码,如何做到操作系统和并发同步结合

Java 程序员 后端

成为架构师之前,你一定要懂的-CAP-定理,Java程序员必备书籍

Java 程序员 后端

开门见山的问MySQL:InnoDB一棵B+树可以存放多少行数据

Java 程序员 后端

强哥说Java--Java 方法,kafka视频

Java 程序员 后端

必知必会JVM四-垃圾收集器介绍,linux驱动开发入门与实践

Java 程序员 后端

并发编程专题四-原子操作和显示锁,java面试刷题

Java 程序员 后端

强势出击!21天肝完这份字节面试题后直接斩获字节offer

Java 程序员 后端

快醒醒吧!互联网大厂面试必问的JVM底层原理,你还搞不清楚

Java 程序员 后端

想进阿里、京东?这些多线程并发的技术要点你需要知道,Java程序员怎么优雅迈过30K+这道坎

Java 程序员 后端

开发多年put、get、resize不知道,springcloud视频讲解

Java 程序员 后端

怎样成为全栈工程师(Full Stack Developer),sqlproformysql使用教程

Java 程序员 后端

总结历年各大厂面试官传授的面试经验+阿里P8级架构师整理的Java高频核心知识点

Java 程序员 后端

意犹未尽的一篇Nginx原理详解,面试官看了都忍不住点赞

Java 程序员 后端

微服务你得知道这些!从核心组件到远程调用方式以及HTTP通信方法

Java 程序员 后端

微服务网关与用户身份识别,JWT+Spring Security进行网关安全认证

Java 程序员 后端

怎么用Redis分布式锁才能确保万无一失?,15个经典面试问题及答案

Java 程序员 后端

恕我直言,我怀疑你们并不会用 Java 枚举,java分布式架构面试题

Java 程序员 后端

应“云”而生的 Java 框架,带你手撸红黑树

Java 程序员 后端

很全面!每天一分享互联网大厂Java面试真题,java菜鸟教程实例

Java 程序员 后端

总是说spring难学?看完这些spring的注解及其解释,对你来说就是So-easy!

Java 程序员 后端

怎么可能?面试会被Spring难住?Spring框架从入门到精通

Java 程序员 后端

意犹未尽的一篇Nginx原理详解,面试官看了都忍不住点赞(1)

Java 程序员 后端

懵逼!阿里一面就被虐了,幸获内推华为技术四面,kafka高性能原理

Java 程序员 后端

怀疑开发者在“造核弹”?GitHub不断封禁开源项目_大前端_Tina_InfoQ精选文章