托管选项与定价
GitHub 提供了多种不同的许可证和托管选项。了解这些选项对于为企业做出正确选择非常重要。
托管选项
GitHub( https://github.com )托管在美国的数据中心。你可以免费注册 GitHub,免费获得无限制的私有和公共仓库。GitHub 的许多功能对于开源项目是免费的,但私有仓库则需要付费。
对于企业,GitHub 提供了不同的托管选项(见图 20.1):

GitHub Enterprise Cloud
GitHub Enterprise Cloud(GHEC)是 GitHub 提供的 SaaS 产品,完全托管在 GitHub 位于美国的云基础设施中。你可以为用户应用额外的安全措施,并支持单点登录。GHEC 允许你托管私有和公共仓库,从而使你能够在企业背景下托管开源项目。 GHEC 保证 99.9% 的月度正常运行时间,即每月最多 45 分钟的停机时间。
GitHub Enterprise Server
GitHub Enterprise Server(GHES)是一个你可以自由托管的系统。你可以将其托管在自己的数据中心,或者托管在 Azure 或 AWS 等云环境中。你可以使用 GitHub Connect 连接到 GitHub.com,这使你能够共享许可证,并在你的服务器上使用开源资源。
GHES 基于与 GHEC 相同的源代码,因此最终所有功能会在几个月后陆续更新到服务器版。但是,云服务中提供的某些功能需要你在 GHES 上自行管理,例如 GitHub Actions 中的运行器。在云中,你可以利用 GitHub 托管的运行器;而在 GHES 中,你必须构建自己的解决方案,使用自托管运行器。
也有一些托管服务提供商可以为你托管 GHES,例如,在你所在地区的 Azure 数据中心。通过这种方式,你可以确保数据的驻留性,无需自己管理服务器。一些托管服务商还提供托管 GitHub Actions 运行器的服务。
GitHub Connect
GitHub 的强大之处在于它的社区及社区所提供的价值。为了能够在服务器上利用这一点,你可以使用 GitHub Connect 将你的服务器与 GitHub 连接。你可以单独启用每个功能,如图 20.2 所示:

以下是可用功能的列表:
-
许可证同步:在多个服务器或组织之间管理许可证使用情况。这有助于确保无论用户在哪里登录,都只消耗一个许可证。
-
统一搜索:你可以允许在服务器上进行搜索,并获取来自 GitHub.com 的公共仓库的搜索结果。此外,你还可以允许在服务器上搜索,查找属于你企业的私有仓库(当然,前提是用户有权访问这些仓库)。
-
GitHub.com Actions:如果你希望在工作流中加载公共 Actions,你必须启用此选项。如果不启用此选项,你需要将所有 Actions fork 到你的服务器,并从那里引用它们。你仍然可以在组织层面配置允许哪些 Actions。
-
统一贡献:如果不启用此选项,用户在服务器上的贡献将不会显示在其公共档案中。启用此选项后,只有贡献的数量(如提交、问题、讨论或拉取请求)会发送到 GitHub.com,且不会暴露敏感数据。
定价
GitHub 的费用是按用户每月计费的,分为三个不同的套餐:免费、团队和企业(见图 20.3):

公共仓库——因此,开源仓库——是免费的,并且包含许多免费的功能,例如 Actions、Packages 和许多安全功能。私人仓库是免费的,但功能有限,并且提供 2,000 分钟的 Actions 使用时间和 500 MB 的存储空间。关于 Actions 的定价,已经在第 7 章《运行工作流》中进行了详细介绍。
如果你真的想在私人仓库中与 GitHub 合作,至少需要购买团队许可证。该许可证包括受保护的分支、代码拥有者以及其他高级拉取请求功能。你还可以访问 Codespaces,但需要单独支付(有关 Codespaces 的定价,请参见第 13 章《Shift Left Security 和 DevSecOps》)。团队套餐包含 3,000 分钟的 Actions 使用时间和 2 GB 的包存储空间。
免费和团队套餐仅在 GitHub.com 上可用。如果需要 GHEC、GHES 或 GHAE,则必须购买 GitHub 企业许可证。该许可证包含所有企业功能,例如单点登录、用户管理、审计和策略,并附带 50,000 分钟的 Actions 使用时间和 50 GB 的包存储空间。它还为你提供了购买附加功能的选项,例如高级安全或高级支持。
许可证是按 10 个一组购买的,可以按月或按年支付。如果你想使用 GitHub 高级安全或高级支持,你必须联系 GitHub 销售团队或 GitHub 合作伙伴,他们可以为你提供报价。
除了许可证套餐外,还有一些按使用量收费的项目,包括以下内容:
-
Actions
-
Packages
-
Codespaces
-
市场上的按使用量收费的应用程序
你可以在组织或企业层级上配置支出限额。