Skip to main content

限制对计算机类型的访问

你可以对用户在组织中创建 codespace 时可以选择的计算机类型设置约束。

谁可以使用此功能?

To manage access to machine types for the repositories in an organization, you must be an owner of the organization.

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

概述

通常,在创建代码空间时,系统会为将运行代码空间的计算机提供一系列规范。 您可以选择最适合您需求的计算机类型。 有关详细信息,请参阅“为存储库创建 codespace”。

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

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

设置计算机类型约束时的行为

如果现有 codespace 不再符合你定义的策略,这些 codespace 将继续运行,直到它们停止或超时。当用户尝试恢复 codespace 时,系统会显示一条消息,告知他们目前选择的计算机类型已不再可供此组织使用,并提示他们选择备用计算机类型。

如果删除组织中单个存储库的 GitHub Codespaces 配置所需的更高规范的计算机类型,则无法为该存储库创建 codespace。 当有人尝试创建 codespace 时,他们将看到一条消息,告诉他们没有有效的计算机类型可以满足存储库 GitHub Codespaces 配置的要求。

注意:任何可以在存储库中编辑 devcontainer.json 配置文件的人员都可以为计算机设置可用于该存储库的 codespace 的最低规范。 有关详细信息,请参阅“为代码空间计算机设置最低规范”。

如果为计算机类型设置策略会阻止用户对特定存储库使用 GitHub Codespaces,则有两种选择:

  • 您可以调整策略以专门从受影响的存储库中删除限制。
  • 由于新策略,任何拥有无法再访问的代码空间的人都可以将其代码空间导出到分支。 此分支将包含它们从代码空间所做的所有更改。 然后,他们可以使用兼容的计算机类型在此分支上打开新的代码空间,或者在本地处理此分支。 有关详细信息,请参阅“将更改导出到分支”。

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

创建策略时,您可以选择是将其应用于组织中的所有存储库,还是仅应用于指定的存储库。 如果设置了组织范围的策略,则为各个存储库设置的任何策略都必须在组织级别设置的限制范围内。 添加策略会使计算机的选择受到限制更多,而不是更少。

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

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

注意:Codespace 策略仅适用于组织支付的 codespace。**** 如果某人为组织中的存储库创建 codespace,并自行付费,则 codespace 不受这些策略的约束。 有关详细信息,请参阅“选择谁拥有组织中的 codespace 并为其付费”。

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

  1. 在 GitHub.com 的右上角,选择个人资料照片,然后单击 “你的组织”****。

    @octocat 的个人资料图片下的下拉菜单的屏幕截图。 “你的组织”以深橙色标出。

  2. 在组织旁边,单击“设置”。

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

  4. 在“codespace 策略”页上,单击“创建策略”。****

  5. 输入新策略的名称。

  6. 单击“添加约束”并选择“计算机类型” 。

  7. 单击 以编辑约束,然后清除你不希望可用的计算机类型的选择。

    “允许的值”下拉列表的屏幕截图,其中包含四种计算机类型的选项。 选中 2 核和 4 核计算机的选项。

  8. 单击对话框外部将其关闭。

  9. 默认情况下,策略设置为应用于所有存储库,如果你希望它仅应用于组织中的某些存储库,请单击“所有存储库”,然后在下拉菜单中单击“所选存储库”。

    存储库选择下拉列表的屏幕截图,其中显示了“所有存储库”和“所选存储库”选项。

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

    选中“所选存储库”后:

    1. 单击

      标有“所选存储库”的按钮左侧的“设置”图标的屏幕截图(齿轮符号)。

    2. 选择要应用此策略的存储库。

    3. 在存储库列表的底部,单击“选择存储库”。

      存储库列表的屏幕截图,每个存储库都有一个复选框。 已选择三个存储库。

  10. 如果要向策略添加另一个约束,请单击“添加约束”并选择另一个约束。 有关其他约束的信息,请参阅:

  11. 向策略添加完约束后,单击“保存”。

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

编辑策略

可以编辑现有策略。 例如,你可能想要在策略中添加或移除约束。

  1. 显示“Codespace policies(代码空间策略)”页。 有关详细信息,请参阅“添加策略以限制可用的计算机类型”。
  2. 单击要编辑的策略的名称。
  3. 在“计算机类型”约束旁,单击“”。
  4. 执行所需更改,然后单击“保存”。

删除策略

  1. 显示“Codespace policies(代码空间策略)”页。 有关详细信息,请参阅“添加策略以限制可用的计算机类型”。

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

    策略的屏幕截图,其中“删除”按钮(垃圾桶图标)以深橙色边框突出显示。

延伸阅读