跳至主要内容

限制对机器类型的访问

您可以在组织中创建代码空间时,为用户可以选择的机器类型设置约束。

谁可以使用此功能?

要管理组织中仓库的机器类型访问权限,您必须是该组织的所有者。

使用 GitHub Team 和 GitHub Enterprise 计划的组织可以为成员和协作者使用 GitHub Codespaces 支付费用。这些组织随后可以访问设置和策略,以管理由组织支付的 codespaces。欲了解更多信息,请参阅 选择组织中谁拥有并支付 codespaces 的费用GitHub 计划

概览

通常,在创建代码空间时,系统会提供一组用于运行代码空间的机器规格供您选择。您可以选择最符合需求的机器类型。更多信息,请参阅 为仓库创建代码空间

如果您为使用 GitHub Codespaces 付费,那么所选机器类型会影响您的计费金额。代码空间的计算成本与您选择的机器类型的处理器核心数量成正比。例如,在 16 核机器上使用代码空间一小时的计算成本是 2 核机器的八倍。有关定价的更多信息,请参阅 GitHub 代码空间计费

作为组织所有者,您可能希望对可用的机器类型进行约束。例如,如果组织的工作不需要大量计算能力或存储空间,您可以从可选列表中移除资源密集型机器。您可以通过在组织的 GitHub Codespaces 设置中定义一个或多个策略来实现此目的。

设置机器类型约束时的行为

如果已有代码空间不再符合您已定义的策略,这些代码空间将在被停止或超时之前继续运行。当用户尝试恢复代码空间时,会显示一条消息,告知当前选择的机器类型已不再允许用于此组织,并提示用户选择其他机器类型。

如果您移除组织中某个仓库的 GitHub Codespaces 配置所需的高规格机器类型,则将无法为该仓库创建代码空间。当有人尝试创建代码空间时,会看到一条信息,说明没有满足仓库 GitHub Codespaces 配置要求的有效机器类型可供选择。

注意

任何能够编辑仓库中 devcontainer.json 配置文件的人,都可以为该仓库的代码空间设定机器的最低规格。更多信息,请参阅 为代码空间机器设置最低规格

如果为机器类型设置的策略导致某个仓库无法使用 GitHub Codespaces,则有两种解决方案

  • 您可以调整策略,以专门移除受影响仓库的限制。
  • 任何因新策略而无法访问其代码空间的用户,都可以将代码空间导出到一个分支。该分支会包含他们在代码空间中的所有修改。随后,他们可以在此分支上使用符合策略的机器类型打开新的代码空间,或在本地对该分支进行工作。更多信息,请参阅 将更改导出到分支

设置组织范围和仓库特定的策略

创建策略时,您可以选择将其应用于组织内的所有仓库,亦或仅针对特定仓库。如果您设置了组织范围的策略,则针对单个仓库设置的任何策略都必须在组织级别的限制范围内。添加策略会使机器选择更加受限,而不是更宽松。

例如,您可以创建一个组织范围的策略,将机器类型限制为 2 核或 4 核。随后,您可以为仓库 A 设置策略,仅允许使用 2 核机器。若为仓库 A 设置的策略允许 2、4、8 核机器,则实际可选的仅是 2 核和 4 核机器,因为组织范围的策略阻止了对 8 核机器的访问。

如果您添加了组织范围的策略,请将其设置为组织内任何仓库都可能使用的最大机器类型集合。随后,您可以再添加针对特定仓库的策略,以进一步收紧选择范围。

注意

Codespaces 策略仅适用于由贵组织支付费用的代码空间。如果有人自行承担费用为组织中的仓库创建代码空间,则该代码空间不受这些策略约束。更多信息,请参阅 选择组织中代码空间的所有者和付费方

添加策略以限制可用机器类型

  1. 在 GitHub 右上角,点击您的头像,然后点击 组织

  2. 点击即可选择组织。

  3. 在组织名称下,点击 设置。如果看不到 “设置” 选项卡,请选择 下拉菜单,然后点击 设置

    Screenshot of the tabs in an organization's profile. The "Settings" tab is outlined in dark orange.

  4. 在侧边栏的 “代码、规划和自动化” 部分,选择 Codespaces,然后点击 策略

  5. 在 “Codespaces 策略” 页面,点击 创建策略

  6. 为您的新策略输入名称。

  7. 点击 添加约束 并选择 机器类型

  8. 点击编辑约束后,清除您不希望提供的任何机器类型的选择。

    Screenshot of the "Allowed values" dropdown with options for four machine types. The options for 2-core and 4-core machines are selected.

  9. 点击对话框外部以关闭对话框。

  10. 默认情况下,策略适用于所有仓库。如果您希望仅在组织中的部分仓库上应用该策略,请点击 “所有仓库”,然后在下拉菜单中点击 “已选仓库”。

    Screenshot of the repository selection dropdown, showing the options "All repositories" and "Selected repositories."

    注意

    如果您在已有的策略中添加约束,而该策略已经包含 “Maximum codespaces per user”(每用户最大代码空间数) 约束,则无法将策略应用于已选仓库。这是因为 “Maximum codespaces per user” 约束始终适用于组织中的所有仓库。

    在已选仓库已选中时

    1. 点击.

      Screenshot of the settings icon (a gear symbol) to the left of a button labeled "Selected repositories."

    2. 选择您希望该策略适用的仓库。

    3. 在仓库列表底部,点击 “选择仓库”。

      Screenshot of a list of repositories, each with a checkbox. Three repositories are selected.

  11. 如果您想向策略添加另一个约束,点击 添加约束 并选择其他约束。有关其他约束的信息,请参阅

  12. 完成向策略添加约束后,点击 保存

该策略将适用于所有新创建、计费归属您组织的代码空间。机器类型约束同样会在有人尝试重新启动已停止的代码空间或重新连接到活动代码空间时,对现有代码空间生效。

编辑策略

您可以编辑已有的策略。例如,您可能想向策略添加或删除约束。

  1. 显示 “代码空间策略” 页面。有关更多信息,请参阅 添加策略以限制可用机器类型
  2. 点击您想编辑的策略名称。
  3. 在 “机器类型” 约束旁,点击.
  4. 进行所需更改后,点击 保存

删除策略

  1. 显示 “代码空间策略” 页面。有关更多信息,请参阅 添加策略以限制可用机器类型

  2. 点击在您想删除的策略右侧。

    Screenshot of a policy with the delete button (a trash can icon) highlighted with a dark orange outline.

延伸阅读

© . This site is unofficial and not affiliated with GitHub, Inc.