今年7月份,一位克里米亚的GitHub用户披露,他的账户受到了GitHub的限制。随后,GitHub宣布,他们已经开始限制克里米亚、古巴、朝鲜、伊朗和叙利亚等被美国贸易制裁的国家的账户。不少人惊呼,“程序员也有国界了”。不过,在GitHub的这次风波中,中国用户并没有受到影响。时隔几个月,GitHub的对手——GitLab却对中国下了手。
近日,美国代码托管网站 GitLab 在其官网上发表了一篇 issue,称他们将启用一份「职位国家封锁」令,停止招聘居住在中国和俄罗斯的人担任网络可靠性工程师及支持职位,并禁止担任这两个职位的员工移居中国或俄罗斯。该公司称,在当前的地缘政治环境下,「这是最为人道的解决方案」。
GitLab 是一家总部位于旧金山的代码托管公司,是 GitHub 有力的竞争对手,其用户包括 IBM、索尼、NASA、阿里巴巴、Oracle、波音等大型科技公司和机构。截至今年 6 月份,GitLab 的员工数量已达 878 人。不过,该公司在 issue 中表示,这份封锁令不会对目前的员工产生影响。
这份 issue 的内容如下:
2019 年 10 月 15 日,我们在 e-group 中做了一个决定,针对能够得到用户信息的团队成员启用「职位国家封锁」(job family country block)。这是几家企业用户表达的担忧,也是我们行业在当前地缘政治环境下的普遍做法。
涉及的国家包括中国和俄罗斯。
这个 issue 是为了追踪向支持手册中添加内容的过程以及所有需要更新的招聘流程,以确保:
1. 我们不向居住在这些国家的人提供 offer;
2. 现有的团队成员被禁止迁移到这些国家以及留在禁止这种做法的职位上。
此外,声明中还表示:
目前,我们还没有一种基于权限的技术方法来处理这个问题。限制权限还将迫使我们面临在某些团队中创造「二等公民」的可能性,这些人无法 100% 地投入工作。我们中的一些人在其他公司也经历过这种情况,并认识到这是非常消极的。因此,我们认为,「国家封锁」是当前最为人道的解决方案,尤其是这一方案不会对现有任何员工造成影响。
我们应该在权限方面下功夫,因此每个人都清楚自己要做什么,大概需要多长时间。
GitLab 的做法在 Hacker News 上引发了热烈的讨论。
有人感叹 GitLab 竟然将如此敏感的决定公之于众,好像不是公司有意披露,而是由于操作不当泄漏出来的。GitLab CEO Sid Sijbrandij 在帖子下做出了回应,称这份文件的确是故意公开的,即使这种做法困难重重。对于 issue 中提到的「不会对现有任何员工造成影响」,Sijbrandij 也做出了解释,称这份封锁令针对的是两个职位——「网站可靠性工程师和支持」,而在 GitLab,担任这两个职位的人目前没有人在中国和俄罗斯。
对于这个决定可能造成的长远影响,不少人也在帖子底下进行了讨论。有人表示,「如果相关员工要和中国人结婚怎么办?」「要是他们和中国人结婚若干年之后打算搬回中国照顾年迈的父母怎么办?」由此可见,这一决定可能对该公司员工的职业和人生选择造成一定影响。
当然,也有网友在帖子底下批评了 GitLab 的做法,称这种做法并不客观。美国、法国等很多国家的政府也有一些后门程序,可以让监管机构合法获取某些数据。如果按照这种标准,那 80% 的人都被会 GitLab 拒之门外。
作为与 GitHub 同类型的代码库管理平台,GitLab 自身的用户数量本就低于 GitHub。那么,GitLab 的这一举措会不会对用户的平台选择产生影响呢?与 GitHub 相比,GitLab 又有哪些独有的优势呢?
GitHub VS GitLab
作为基于 Web 的 Git 仓库,GitHub 和 GitLab 都提供了分享开源项目的平台,并为开发团队存储、发布、分享和合作开发项目提供了云存储的场所,使用方法也差不多。
GitHub 于 2008 年推出,是全世界最受开发者欢迎的 Git 仓库管理平台。截至 2018 年 6 月被微软收购之时,GitHub 拥有 2800 万用户和 8500 万代码库,稳居第一。之后,微软以 75 亿美元的价格收购了 GitHub。值得注意的是,GitHub 之前的所有私有项目都需要收费,因此尽管开源项目大多都集聚在 GitHub 上,企业和个人的私有项目都放在了其它代码托管平台,例如国内的 Coding 和国外的 GitLab 等。但在 2019 年初,微软在收购 GitHub 之后做出了首次重大变革:提供无限免费的私有代码库。这种定价策略的改变是 GitHub 对其劣势的一种补充。
GitLab 推出于 2011 年,略晚于 GitHub,但近年来也受到了越来越多开源项目爱好者的青睐。GitLab 平台的(社区版)Community Edition 是开源的,开发者可以对其功能的增强做出贡献。与 GitHub 不同,GitLab 对开源项目提供免费的私有存储库,这是相较于 GitHub 的一大优势。但随着 GitHub 也提供了无限免费的私有代码库,GitLab 在私有存储方面的优势也越来越小。
两个平台的异同点
多年来,GitHub 和 GitLab 代码库管理平台各取所长,相互融合。二者既有共同点,也存在着差别。
以下是两个平台皆有的一些基本功能:
拉取请求;
第三方整合;
克隆存储库;
代码审查;
插入代码段;
问题跟踪;
高级权限管理;
Markdown 支持。
尽管在技术上差别不大,GitHub 与 GitLab 最大的区别在于管理理念。GitHub 注重自身架构和高度可用性和性能,并将复杂的功能委托给第三方工具。与之相反,GitLab 将其所有的功能包含在其验证良好和高度集成的平台上,并在单一平台上支持开发和运维周期内的所有操作。就受欢迎程度而言,GitLab 的开发者数量远低于 GitHub。此外,GitHub 有时定价较高,不适合低预算的用户。
如何选择适合自己的库管理平台
两个平台各有优势,用户又如何就自己的开源项目作出选择呢?
如果你正在管理涉及多开发者合作的大型开源项目,则 GitHub 或许是最佳选择。你还可以在 GitHub 上融入到一个庞大且生机勃勃的社区,这可以帮助你完成自身项目。
但如果你正在管理的项目预算有限且不特别强调性能,则 GitLab 可以帮助你节省成本。并且,如果你希望融入到一个真正开源的平台,GitLab 可能最适合你。
此外,选择时还应考虑以下问题:你是否喜欢在自己的开源项目中借助第三方工具来进行持续集成(CI)和持续交付(CD)?所以,如果你更愿意使用内置集成工具来进行 CI 和 CD,那么就选择 GitLab 吧。
归根究底,选择 GitHub 或者 GitLab 取决于自己开源编程项目想要实现的具体目标,在评估自己的预期之后,用户才能选择满足自身需求的代码库管理平台。