跳至主要内容

限制机器类型访问

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

谁可以使用此功能?

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

GitHub 团队和 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配置文件的人都可以为可用于该代码库的 Codespace 的机器设置最低规格。有关更多信息,请参阅“为 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. 完成向策略添加约束后,单击“**保存**”。

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

编辑策略

您可以编辑现有策略。例如,您可能希望向策略添加或删除约束。

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

删除策略

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

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

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

进一步阅读