《架构师》2019年8月
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

热点 | Hot

GitHub有国界:全面封禁美国制裁地区开发者账户

作者 小智

当GitHub被微软收购时,新任CEO Nat Friedman曾表示:GitHub将始终坚持开发者优先并独立运营。但到了今天,这句话也许应该改成:GitHub将坚持(不受美国制裁地区的)开发者优先。

私人仓库免费了,却不让用了

2019年1月初,GitHub发布了重磅更新:无限私有仓库免费使用。此良心之举让开发者们一片叫好,许多人表示将从GitLab或BitBuckets回到GitHub的怀抱。可是半年后的今天,许多国家和地区的开发者们却笑不出来了。

事情是这样的:上周,一位伊朗开发者的GitHub账号被禁,他在社交媒体上分享了自己的经历,并向GitHub官方发起质询。最后得知,因为自己的所在地伊朗受到美国制裁,目前整个伊朗地区的GitHub账号均无法使用。更让人愤怒的是,GitHub在没有任何事先通知的情况下屏蔽了所有伊朗账户,连让该地区开发者下载备份数据的机会都没有。

无独有偶,起初他以为这只是个别事件,可随后在社交媒体上却了解到更多相似遭遇:在他之前,一位克里米亚地区的俄罗斯籍开发者的账号同样遭到封禁。更有甚者,一位居住在芬兰的伊朗籍开发者账户同样遭到了封禁,显然GitHub不是单纯地凭借IP地址封禁账户,账户的国籍同样是其封禁的考量标准之一。

这时人们才想起,被微软收购后的GitHub,毕竟本质仍是一家美国企业。开源虽然无国界,但GitHub却是有国界的。

开源与封禁,竟是命运的双生子

当开发者们因为“Open Source”的开源概念聚合在一起时,他们脑中想的、口中喊的,都是纯洁、高尚的口号:

· “开源是没有国界的!”

· “开源是自由的!”

· “开源将促进世界的发展!”

· “开源将帮助落后地区的IT建设!”

· ……

彼时,从没有人怀疑过,崇尚自由的开源,竟然能与封禁联系在一起。更可怕的是,这个封禁的衡量标准,仅以一国之政策为指导方针:任何被美国制裁的国家和地区,其开发者账户都有可能遭到封禁,不管你是真的在利用GitHub造核弹,还是托管几个小游戏的代码,你都是被ban的对象。

事件起始于一位居住在克里米亚地区的俄罗斯开发者的遭遇:

GameHub项目的维护者Anatoliy Kashkin发出警告,因美国对克里米亚的制裁,GitHub限制了他这位生活在克里米亚的居民的账号,他可能无法继续维护GameHub。在俄罗斯与乌克兰交战以及克里米亚脱离乌克兰之后,国际社会对克里米亚进行了制裁。

Kashkin称他收到通知,“由于美国贸易管制法律,你的GitHub账号已被限制。对于个人账号,你被限制只能访问免费的公开库用于个人通过。”Kashkin解释说,GitHub限制他创建私有库,关闭了现有的私有库,可以创建公开的库但不能删除。他表示自行托管单一的git库的意义不大,毕竟很多人是在GitHub上发现GameHub的,GameHub提供了很多有用的社交功能。事件发酵于一位伊朗地区开发者的遭遇:

伊朗开发者Hamed Saeedi发表博文声称,GitHub屏蔽了他的账号,认为他在利用免费的私有库开发核武器。他称自己从2012年开始使用GitHub,最近收到了与贸易制裁相关的邮件通知。他称GitHub屏蔽了所有伊朗账号。

Hamed Saeedi在GitHub上发起了一个项目:github-do-not-ban-us,截止目前已经收获了6000+个Star,但如果不能得到解封,这些Star将毫无用处。

随后的消息表明:被美国贸易制裁的国家和地区的开发者账号,包括克里米亚、古巴、朝鲜、伊朗和叙利亚。GitHub封禁的“指导方针”:

· 根据GitHub的服务条款,用户只能按照适用法律访问和使用GitHub.com,包括美国出口管制和制裁法律。根据美国和其他适用法律,特别指定国民名单和其它被拒绝、被封锁的人士禁止访问、使用GitHub.com,用户不得代表此类各方使用GitHub.com,包括受制裁国家/地区的政府。

· 根据美国财政部海外资产控制办公室(OFAC)发布的授权,Github可允许受美国制裁的管辖区内或通常居住在管辖区内的用户访问某些Github.com服务。在访问GitHub服务时,这些管辖区内的人员和居民不得使用IP代理、VPN或其他方法来伪装其位置,并且只能使用GitHub进行非商业的个人通信。

GitHub Enterprise Server不得出售、出口或再出口到清单中的国家,目前清单中已经包含古巴、伊朗、朝鲜、苏丹与叙利亚。

事件发展至今,包括美国开发者在内的众多群体为以上事件的主人公们表示了同情,并给出了各种各样的建议:

· 试着导出一下?

· 要不转去GitLab?

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

· ……

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

事件发酵至今,GitHub迫于舆论压力偷偷地针对被ban账户进行了一些“定制化”的变更:

· “删除这个存储库”按钮不再禁用;

· 可以选择将“私有repos”公开,以便克隆它们;

· 只需在options中更改源代码,就会看到自定义域文本框。

· 在顶部警告上添加了一个“关闭按钮”。被封禁用户可以关闭该消息。

但仍旧,没有什么实质性的解决方案。

老调重弹,开源的自由与国界

一个多月以前,笔者采访了OpenStack基金会创始人Jonathan Bryce我向他提问,怎么看待近期有关华为问题引发的开源危机相关讨论。当时与会公关叫停了我的这次提问,但Jonathan侧面给了我回答:开源真正给我们带来的是开源社区可以把不同公司、不同行业的技术专家组合在一起,做成一个非常棒的的团队来解决技术问题。整个开源过程是无边界、无国界的,换句话说不会因为你在哪个公司而改变这个态度,也不会因为你在哪个国家而改变对开源的态度,我们真正要做的是把最好的专家聚集在一起,不应该涉及其他方面的问题。

OpenStack基金会为了更多关心和开拓中国的社区,今年特意在上海成立了一个办事处,有一位专职的社区经理去解决中国的问题。整个开源基金会的目的是能把最好的专家聚集在一起解决一些问题,而不应该涉及国际的问题,OpenStack也希望帮到整个中国开源社区和开发技术人员。最后重申一点是OpenStack这个开源项目是属于全世界的,并不属于一个公司,也不会属于一个国家。

这是我们曾深信不疑的开源理念与精神,也是我们愿意为开源奉献的力量源泉。可现在,事情似乎远不一样了。

中国现在是世界第二大经济体,也是包括GitHub、OpenStack等多个开源基金会在内的世界第二大市场与贡献者,但中国仍旧面临过美国政策法案限制的影响,包括华为等多个国家在开源、IT技术、投资等多方面遭到了种种掣肘。世界第二,终究是不如世界第一。

中国尚且如此,远不如中国强大的伊朗、叙利亚、古巴、朝鲜就更是如此了。开发者们信奉的OpenSource理念,终究是抵不过拳头加大棒的强权国家。因为这些组织总部设在美国、上市在美国、选用了美国的云服务等等,它就必须遵守美国的政策法案。

当时笔者曾对一位提出“我们是否该建立自己的GitHub”了的读者说,“个人觉得不需要,否则又成闭关锁国了”。但现在,也许我们是应该未雨绸缪一下了。

唯一需要我们考虑的是,中国开发者,真正理解开源,愿意奉献开源了吗?中国科技企业,真的愿意投入开源,回报社区了吗?我们的开源能形成一个真正完整的闭环,而不是简单的“拿来主义”吗?

值得深思。