Skip to main content

关于 GitHub Codespaces 的计费

了解 GitHub Codespaces 的使用成本,以及 GitHub 个人帐户包含的每月使用配额。

Note

2024 年 6 月 2 日之后创建的企业帐户和企业帐户拥有的组织有权访问增强型计费平台。 参与 公共预览版 计划的企业也可以访问增强型计费平台。

增强型计费平台能提供更好的支出控制和详细的可见性,通过更精细的控制帮助你了解使用情况。 请参阅“使用新计费平台”。

关于 GitHub Codespaces 定价

请注意,GitHub 可能会提前对按使用情况计费的成本值应用临时授权保留,这将在帐户的付款方式中显示为待定费用。

GitHub Codespaces 由组织、企业或个人帐户支付。 个人帐户的免费版和专业版计划包括免费使用 GitHub Codespaces,每月有最多固定使用量。

组织可以选择从其存储库创建的 codespace 是用户拥有的还是组织拥有的。 请参阅“选择谁拥有组织中的 codespace 并为其付费”。 如果以下所有情况均属实,则由组织为 codespace 付费。

  • 组织已选择将 codespaces 选为组织拥有。
  • 组织已为 GitHub Codespaces 设置非零支出限制。
  • codespace 是从组织的一个存储库创建的,或者从组织一个存储库的分支中创建的。 这包括公共、专用和内部存储库。
  • 创建 codespace 的用户是组织的成员或协作者,并且组织为此用户启用了 GitHub Codespaces。 如果组织选择为所有用户启用 Codespaces,可以包括所有成员和协作者。 如果没有为用户启用 Codespaces,他们仍然可以从组织的公共存储库创建 codespace,但用户将为这些 codespace 付费。

有关为用户启用 GitHub Codespaces 的详细信息,请参阅“为组织启用或禁用 GitHub Codespaces”。

否则,GitHub Codespaces 的使用费将计入创建 codespace 的人员的个人帐户,并消耗该个人帐户每月包含的使用量的一部分,或者根据超出所含配额的使用量向该帐户进行计费。

面向组织和企业帐户的免费版、团队版和企业版计划不包括对 GitHub Codespaces 的任何免费使用。

Note

GitHub Codespaces 不适用于托管用户帐户拥有的存储库。 有关详细信息,请参阅“关于 Enterprise Managed Users”。

付费使用定价

GitHub Codespaces 实例(“codespace”)在处于活动状态时会根据计算时间产生费用,并在存在时根据 codespace 占用的磁盘空间大小产生费用。 计算成本与为 codespace 选择的计算机类型中的处理器核心数成正比,如下表所示。 例如,在 16 核计算机上使用 codespace 一小时的计算成本是 2 核计算机的 8 倍。

组件计算机类型度量单位包含的使用量乘数价格
Codespaces 计算2 个内核1 小时2$0.18
Codespaces 计算4 个内核1 小时4$0.36
Codespaces 计算8 个内核1 小时8$0.72
Codespaces 计算16 个内核1 小时16$1.44
Codespaces 计算32 个内核1 小时32$2.88
Codespaces 存储存储1 GB-月不适用0.07 美元

有关 GB/月度量值单位的详细信息,请参阅“关于存储使用情况的计费”。

如果启用代码空间的预构建,则会产生额外费用。 请参阅“关于 Codespaces 预生成的计费”。

关于 GitHub Codespaces 的计费

GitHub Codespaces 是根据 codespaces 使用的计算时间长度和存储空间大小以美元 (USD) 计费的。 始终按月计算 GitHub Codespaces 的费用,即使你的帐户按年计费也是如此。

GitHub Codespaces 的计费将使用帐户的现有付款方式和收据。 请参阅“查看订阅和结算日期”。

如果你是组织所有者或企业所有者,则可以将 Azure 订阅 ID 连接到组织或企业帐户,以启用和支付 GitHub Codespaces 使用量。 请参阅“连接 Azure 订阅”。

关于计算使用量的计费

Codespace 的计算使用量是该 codespace 处于活动状态的时间长度乘以定价表中该 codespace 计算机类型的乘数。 总计算使用量的计算方式是将可向特定帐户计费的所有 codespace 使用的时间相加。 这些总数每小时向计费服务报告一次,并按月计费。

例如,如果 codespace 处于活动状态 1 小时 15 分钟,则计算成本将是 codespace 的每小时成本(由其计算机类型确定)乘以 1.25。

可通过停止 codespace 来控制计算使用量。 如需相关信息,请参阅“停止和启动 codespace”。 Codespace 在一段可配置的非活动时间后自动停止。 超时期限可以由用户配置,也可以在组织级别配置。 请参阅“设置 GitHub Codespaces 超时期限”和“限制空闲超时期限”。

关于存储使用量计费

出于 GitHub Codespaces 计费目的,存储空间包括帐户中所有 codespace 和预生成所使用的磁盘空间。 这包括在 codespace 中使用的所有文件,例如克隆的存储库、配置文件、加载到 codespace 的数据(例如作为存储库中运行的软件的输入和输出的数据)以及扩展等内容。 对于你现有的所有 codespace,无论这些 codespace 处于活动状态还是非活动状态,都会对存储进行计费,但因已用尽包含的使用配额或达到支出限制而被阻止的使用除外。 Codespace 的存储计费在其被删除时终止。 但是,删除 codespace 不会减少当前计费月的已用存储量,因为这是一个累积数字。

基于默认映像的容器的存储计费

使用默认的开发容器配置时,会从 codespace 的默认 Linux 映像生成容器。 请参阅“开发容器简介”。

不将基于默认映像的容器计为已用存储,即使在开发容器配置中添加了功能也是如此。 请参阅“向 devcontainer.json 文件添加功能”。

如果使用默认映像,则 codespace 的存储使用量将基于存储库中的文件以及随后添加到 codespace 的任何文件。 如果使用备用基础映像,则生成的容器和 codespace 中的所有文件都将计为已用存储。

有关如何检查是否从默认开发容器映像生成 codespace 的信息,请参阅“充分利用包含的使用量”。

报告存储用量

以 GB/月为单位报告 codespace 存储。 计费月是从一个月的固定日期到下个月的同一天。 在大多数情况下,该固定日期由你开始执行当前 GitHub 计划的日期决定。 GB/月存储的计算方式如下。 每小时评估一次当前处于活动状态和停止状态的所有 codespace 所使用的存储空间。 然后,此数字除以当前计费月的小时数:total storage size / hours this month。 结果将与当月 codespace 存储的累积总计相加。

例如,如果有一个 codespace 使用 100 GB 存储空间且已存在一小时,则在该月(30 天)已使用 100 / (24 * 30) = 0.1388 GB/月存储空间。 如果一个月(30 天)内使用的 GitHub Codespaces 包含两个 100 GB codespace,并且这两个 codespace 都存在整整三天,则将有针对这些 codespace 的存储的 24 * 3 个每小时报告,总共 (24 * 3) * 200 / (24 * 30) = 20 GB/月。

对于每一个每小时报告,前一小时的存储使用量以秒为单位计算。 因此,如果 codespace 的存在时间未满 60 分钟,则不会收取整整一小时的存储费用。 到月底,GitHub 会将您的存储量舍入到最接近的 MB。

组织所有者可以执行以下操作:

要估算按使用情况计费的成本,可使用 GitHub 定价计算器

关于 Codespaces 预生成的计费

预生成为存储库、分支和 devcontainer.json 配置文件的特定组合组装 codespace 的主要组件。 它提供了一种快速创建新 codespace 的方法。 特别是对于复杂和/或大型的存储库,你可以使用预生成更快地创建新 codespace。 请参阅“关于 GitHub Codespaces 预生成”。

预生成的 GitHub Actions 成本

预生成是通过在 GitHub 托管的运行器上运行 GitHub Actions 工作流来创建和更新的。 可配置期望的预生成更新的自动触发方式。 如需相关信息,请参阅“配置预生成”。

与其他工作流一样,在预生成工作流运行时,它们会消耗帐户中包含的 GitHub Actions 分钟数(如果有),或者它们会根据 GitHub Actions 分钟数产生费用。 有关 GitHub Actions 分钟定价的详细信息,请参阅“关于 GitHub Actions 的计费”。 创建或更新预生成不会产生 Codespaces 计算成本。

可通过下载帐户的使用情况报告来跟踪预生成工作流和存储的使用情况。 请参阅“查看 GitHub Codespaces 使用情况”。

预生成的存储成本

除了 GitHub Actions 分钟数,还将针对与给定存储库和区域的每个预生成配置关联的预生成的存储计费。 预生成的存储按与 codespace 存储相同的费率计费。

单个区域中预生成的存储成本将类似于存储从该预生成创建的单个 codespace 所产生的存储成本。 例如,如果在 codespace 创建期间使用 updateContentCommandpostCreateCommand 命令将更多文件下载到开发容器,则生成的 codespace 的存储成本可能高于预生成的成本。

与预生成配置关联的总存储成本将取决于以下因素。

  • 每 GB 的存储价格(请参见本文前面的表)
  • 生成的预生成的大小(以 GB 为单位)
  • 预生成可用的区域数(因为预生成的副本存储在每个区域)
  • 保留的预生成的旧版本数

因此,预生成配置生成的预生成的存储成本计算方式如下:price per GB * size (GB) * regions * versions

通过查看个人或组织帐户的当前计费数据,可以检查预生成使用的存储量(以 GB/月为单位)。 请参阅“查看 GitHub Codespaces 使用情况”。

如果为分支存储库创建预生成,则这些预生成的存储成本将从每月包含的存储中减去(如有)。 如果已使用完所有包含的存储,并且已设置计费,则会对个人帐户进行收费。 即使为分支创建的 codespace 是由拥有父存储库的组织支付,也是如此。 请参阅“如何处理分支存储库的计费”。

控制预生成成本

为了减少 Actions 分钟数的消耗,可将预生成设置为仅在对开发容器配置文件进行更改时更新,或者仅在自定义计划中进行更新。 还可通过调整保留的每个预生成的早期版本数来管理存储使用量。 请参阅“配置预生成”。

要限制与预生成关联的存储成本,可选择仅在选定区域创建预生成,并且可指定将保留的预生成的旧版本数。 请参阅“配置预生成”。

如果删除预生成配置,会删除所有关联的预生成,从此时起存储消耗会减少。 请参阅“管理预生成”。

预生成在计费月份内有可能发生多次更新。 每次更新有可能更改预生成的大小,这会影响存储费用。 有关如何计算一个计费月内的存储的详细信息,请参阅本文前面的“存储使用量计费”。

Tip

与删除 codespace 一样,删除预生成不会减少当前计费月的已用存储量,因为这是一个累积数字。

从预生成创建的 codespace 的成本

使用预生成创建的 codespace 的费用与常规 codespace 相同。

设置支出限制

Note

必须为个人、组织或企业帐户设置非零支出限制,然后才能向帐户对 GitHub Codespaces 的使用进行计费。

默认情况下,所有帐户的 GitHub Codespaces 支出限制为 0 美元。 这可以防止创建新的 codespace 或打开现有 codespace,如果执行这些操作,将对个人、组织或企业帐户产生可计费成本。 对于个人帐户,如果你有权创建 codespace,只要帐户还没有达到其每月包含的使用量限制,就可以执行此操作。 对于组织和企业,默认支出限制意味着,要允许用户创建向组织或其父企业计费的 codespace,必须将限制更改为高于 0 美元的值。

有关管理和更改帐户支出限制的信息,请参阅“管理 GitHub Codespaces 的支出限制”。

如果个人、组织或企业帐户达到其支出限制,则无法再创建或恢复可向该帐户计费的 codespace。 但你仍然可以将任何正在进行的更改导出到新分支。 有关详细信息,请参阅“将更改导出到分支”。

查看组织的预计使用情况

组织所有者和账单管理员可查看组织的 GitHub Codespaces 在当前月度帐单周期内的预计总使用成本。 请参阅“查看 GitHub Codespaces 使用情况”。

组织的计费页上显示的预计使用量根据 Codespaces 计算和前 7 天内在当前日期之前发生的存储使用情况的总成本计算。 这是对账单月剩余时间的预估,以便你了解当前帐单周期的总成本可能是多少。

用于此估计的计算为:

<cost for the previous 7 full days>/7 * <days remaining in the billing month, including the current day> + <cost already accrued in this billing month>

预计的使用量不会考虑 GitHub Codespaces 是否仍在启用、当前存在的代码空间的数量或大小或预生成设置之类的信息。 因此,如果今天删除了组织的所有代码空间和预生成,则帐单月份的预计使用量仍将显示高于应计使用量的数字。 但是,经过 7 天后,没有进一步的 Codespaces 使用量,预计的使用量将与当前应计的使用量相同。

限制组织拥有的 codespace 的计算机类型

默认情况下,创建 codespace 时将使用具有最低有效资源的计算机类型。 但是,用户可能能够选择具有更多资源的计算机类型。 他们可以在创建 codespace 时执行此操作,也可以更改现有 codespace 的计算机类型。 请参阅“为存储库创建 codespace”和“更改代码空间的计算机类型”。

如果选择了具有更多资源的计算机类型,这将影响该 codespace 的每小时费用,如本文前面表中所示。

对于向组织或企业帐户计费的 codespace,组织所有者可创建策略来限制用户可为其选择的计算机类型。 请参阅“限制对计算机类型的访问”。

限制组织拥有的 codespace 数量

组织所有者可以限制用户可以创建的向组织计费的 codespace 数量。 这有助于降低组织的存储费用。 请参阅“限制用户可以创建的向组织计费的 codespace 数量”。

如何处理复刻的存储库的计费

从分支存储库创建的 codespace 的使用费将计入个人帐户,除非上游(或父)存储库位于以下类型的组织内:允许组织的成员或外部协作者使用 codespace,费用由组织承担。

例如,以某个组织的成员或外部协作者为例,该组织同意为该用户的 codespace 付费。 如果该用户有权对组织拥有的专用存储库创建分支,则可在之后为这个新存储库创建 codespace 并使用它,其费用由组织承担。 这是因为组织是父存储库的所有者。 请注意,组织所有者可以删除用户对专用存储库、分支存储库以及 codespace 的访问权限。 组织所有者还可以删除父存储库,这也将删除分支存储库。 请参阅“管理仓库的复刻政策”。

如果为分支存储库创建预生成,则这些预生成的存储成本将从每月包含的存储中减去(如有)。 如果已使用完所有包含的存储,并且已设置计费,则会对个人帐户进行收费。 即使为分支创建的 codespace 是由拥有父存储库的组织支付,也是如此。

存储库转让给其他组织时如何处理计费

使用量每小时计算一次。 组织支付从组织拥有的任何存储库创建的 codespace 的使用费,其中组织设置允许对组织计费。 请参阅“选择谁拥有组织中的 codespace 并为其付费”。 存储库转出组织后,与该存储库关联的任何 codespace 的所有权和计费责任都将相应地改变。

如何处理 GitHub Codespaces 模板的计费

可以通过从模板创建 codespace 来开始新项目。 从模板创建的 codespace 最初不与存储库关联,但可以将 codespace 发布到个人帐户拥有的存储库。 请参阅“通过模板创建 codespace”。

任何组织都可以维护用于 GitHub Codespaces 的模板存储库。 与组织中的其他任何存储库一样,如果组织为 GitHub Codespaces 设置了支出限制并允许用户创建 codespace,则从模板存储库创建的 codespace 将向组织计费,为此,费用由组织承担。 否则,将向创建 codespace 的用户收取 codespace 费用。

如果用户发布从模板创建的 codespace,则 codespace 将发布到用户个人帐户拥有的新存储库。 如果 codespace 当前向组织计费,则 codespace 的所有权和计费将转移给创建 codespace 的用户。

托管用户帐户 不能是 codespace 的可计费所有者。 因此:

  • 托管用户帐户 仅当 codespace 向组织计费时,才能从模板创建 codespace。
  • 托管用户帐户 无法将从模板创建的 codespace 发布到新存储库。

请参阅“关于 Enterprise Managed Users”。

移除用户后会发生什么情况

如果从组织或存储库中移除用户,则会自动删除其代码空间。