GitLab 加入封禁大军

“当谈到美国政策时,自由软件是个笑话”,一位开发者在帖子中写道。

2020 年 10 月份,GitLab 阻止了伊朗人的访问(基于 IP),恕不另行通知。五天后(10 月 8 日),一些该地区的开发者帐户被封锁,且连自己的项目都无权访问。即使要求临时访问权也只能导出开发者的个人项目,同时 GitLab 拒绝解除封锁。

特斯拉花300万美元向马斯克“买保险”,保额最高可达1亿美元_java

这倒不是第一个对该地区发起封禁政策的平台。事实上,该地区的开发者还被 GitHub、Docker、NPM、Google Developer、Android、AWS、Go、Kubernetes 等阻止。

特斯拉花300万美元向马斯克“买保险”,保额最高可达1亿美元_java_02

由于美国对伊朗等地区的制裁,美国公司也必须遵守这些规定,只是不同的公司和平台所执行的策略不同罢了。一家名为 Digital Ocean 的美国公司决定对伊朗实施制裁时,他们通知了伊朗地区的客户,并给了他们 72 小时的时间来更换服务器,这是在不损害用户的情况下实施的制裁。

早在 2018 年,Slack 就曾在没有任何事先通知的情况下阻止了伊朗人的账户,也没有提供任何备份数据的方法,并且只针对国籍进行划分,即便是加拿大的伊朗学者,与伊朗没有什么关系也同样遭到了封禁。

这些公司的做法尚且可以理解,但越来越多的开源或者说开放平台也加入到“封禁行列”。GitHub 于 2019 年就开始限制伊朗开发者的账户。一位名叫 Hamed Saeedi 的伊朗开发者表示,GitHub 屏蔽了他的账号,认为他在利用免费的私有库开发核武器。

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

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

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

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

今年 3 月,GitHub 再次封禁了一个属于微软的前端开源项目 Aurelia,理由是项目中有两名来自伊朗的外部贡献者。这时人们才想起,被微软收购后的 GitHub,毕竟本质仍是一家美国企业。开源虽然无国界,但 GitHub 却是有国界的。

随后,不少开发者支招让伊朗用户转去 GitLab。如今,GitLab 也加入封禁行列。

GitLab 曾经公开表示停招中国人

长期以来,GitLab 一直在积极响应美国的政策法规。

早在 2019 年 11 月份,GitLab 曾经在其官网发表了 一篇 issue ,称他们将启用一份“职位国家封锁”令:停止招聘居住在中国和俄罗斯的人担任网络可靠性工程师及支持职位,并禁止担任这两个职位的员工移居中国或俄罗斯。

简而言之,这家公司不再雇佣中国人、俄罗斯人,并且现有员工也不去这两个国家。

消息一出,不仅在 GitLab 上引起热议,而且数小时内就在  Hacker News 上 达到了近 200 讨论热度。

在这份 issue 中提到:

2019 年 10 月 15 日,我们在 e-group 中做了一个决定,针对能够得到用户信息的团队成员启用“职位国家封锁”(job family country block)。这是几家企业用户表达的担忧,也是我们行业在当前地缘政治环境下的普遍做法。涉及的国家包括中国和俄罗斯。这个 issue 是为了追踪向支持手册中添加内容的过程以及所有需要更新的招聘流程,以确保:

我们不向居住在这些国家的人提供 offer;

现有的团队成员被禁止迁移到这些国家以及留在禁止这种做法的职位上。

目前,我们还没有一种基于权限的技术方法来处理这个问题。限制权限还将迫使我们面临在某些团队中创造“二等公民”的可能性,这些人无法 100% 地投入工作。我们中的一些人在其他公司也经历过这种情况,并认识到这是非常消极的。因此,我们认为,“国家封锁”是当前最为人道的解决方案,尤其是这一方案不会对现有任何员工造成影响。

我们应该在权限方面下功夫,因此每个人都清楚自己要做什么,大概需要多长时间。

发展到现在,开放和开源就显得不那么纯粹了,开始受到越来越多其他因素的干扰。

开源精神最重要的是:自由贡献、自由分叉、自由使用,通过大量来自世界各地,可以完全不相识的程序员,无直接经济回报地贡献代码,在无组织结构的前提下完成高效的协作和生产。开源本应是无边界、无国界的,不会因为开发者所处的公司、所处的国家而产生不同的态度。虽然“开源”被我们给予了非常美好的期许,但现实只会更复杂。我们只有建立自己的软件生态,拥有自己独立的系统,才能应对最坏的可能。