跳至主要内容

限制对机器类型的访问

您可以对用户在您的组织中创建 Codespaces 时可以选择哪种类型的机器设置约束。

谁可以使用此功能?

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

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

概述

通常,在创建 Codespace 时,您会可以选择运行 Codespace 的机器的规格。您可以选择最适合您需求的机器类型。有关更多信息,请参阅“为存储库创建 Codespace”。

如果您付费使用 GitHub Codespaces,那么您选择的机器类型将影响您的账单金额。Codespace 的计算成本与您选择的机器类型中的处理器核心数量成正比。例如,在 16 核机器上使用 Codespace 一小时的计算成本是 2 核机器的八倍。有关定价的更多信息,请参阅“关于 GitHub Codespaces 的计费”。

作为组织所有者,您可能希望配置对可用机器类型的约束。例如,如果您的组织中的工作不需要大量的计算能力或存储空间,您可以从人们可以选择使用的选项列表中删除资源丰富的机器。您可以通过在组织的 GitHub Codespaces 设置中定义一个或多个策略来实现这一点。

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

如果存在不再符合您定义的策略的现有 Codespaces,这些 Codespaces 将继续运行,直到它们停止或超时。当用户尝试恢复 Codespace 时,他们会看到一条消息,告诉他们当前选择的机器类型不再允许用于此组织,并提示他们选择其他机器类型。

如果您删除了组织中单个存储库的 GitHub Codespaces 配置所需的更高规格的机器类型,那么将无法为该存储库创建 Codespace。当有人尝试创建 Codespace 时,他们会看到一条消息,告诉他们没有可用的有效机器类型满足存储库的 GitHub Codespaces 配置的要求。

注意:任何可以编辑存储库中devcontainer.json配置文件的人都可以为该存储库的 Codespaces 设置机器的最低规格。有关更多信息,请参阅“为 Codespace 机器设置最低规格”。

如果设置机器类型的策略阻止人们使用 GitHub Codespaces 访问特定存储库,则有两个选项。

  • 您可以调整策略,从受影响的存储库中专门删除限制。
  • 任何由于新策略而无法访问其 Codespace 的人,都可以将其 Codespace 导出到分支。该分支将包含他们从 Codespace 中进行的所有更改。然后,他们可以在此分支上使用符合要求的机器类型打开新的 Codespace,或者在本地处理此分支。有关更多信息,请参阅“将更改导出到分支”。

设置组织范围和存储库特定策略

创建策略时,您可以选择将其应用于组织中的所有存储库,还是仅应用于指定的存储库。如果您设置了组织范围的策略,那么您为单个存储库设置的任何策略都必须符合组织级别设置的限制。添加策略会使机器选择更加严格,而不是更宽松。

例如,您可以创建一个组织范围的策略,将机器类型限制为 2 核或 4 核。然后,您可以为存储库 A 设置一个策略,将其限制为仅 2 核机器。为存储库 A 设置一个策略,将其限制为具有 2、4 或 8 核的机器,将导致仅选择 2 核和 4 核机器,因为组织范围的策略阻止访问 8 核机器。

如果您添加了组织范围的策略,则应将其设置为组织中任何存储库都可以使用的最大机器类型选择。然后,您可以添加存储库特定策略来进一步限制选择。

注意:Codespaces 策略仅适用于您的组织付费的 Codespaces。如果有人以自己的费用为组织中的存储库创建了 Codespace,则该 Codespace 不会受这些策略约束。有关更多信息,请参阅“选择谁拥有和支付组织中的 Codespaces”。

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

  1. 在 GitHub 右上角,选择您的个人资料照片,然后点击 您的组织.

  2. 在组织旁边,点击 **设置**。

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

  4. 在“Codespaces 策略”页面上,点击 **创建策略**。

  5. 输入新策略的名称。

  6. 点击 **添加约束** 并选择 **机器类型**。

  7. 点击 编辑约束,然后清除您不想使用的任何机器类型的选择。

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

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

  9. 默认情况下,策略设置为应用于所有存储库,如果您希望它仅应用于组织中的部分存储库,请点击 **所有存储库**,然后在下拉菜单中点击 **选定存储库**。

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

    **注意**:如果您向已包含“每个用户最大 Codespaces 数”约束的现有策略添加约束,则无法将策略应用于选定的存储库。这是因为“每个用户最大 Codespaces 数”约束始终应用于组织中的所有存储库。

    选择 **选定存储库**

    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.

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

  11. 在您完成对策略添加约束后,点击保存

该策略将应用于所有计费到您组织的新代码空间。机器类型约束也适用于现有代码空间,当有人尝试重启已停止的代码空间或重新连接到活动的代码空间时。

编辑策略

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

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

删除策略

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

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

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

进一步阅读