概览
通常,在创建代码空间时,系统会为将运行代码空间的计算机提供一系列规范。 您可以选择最适合您需求的计算机类型。 更多信息请参阅“创建代码空间”。 如果您为使用 GitHub Codespaces 付费,那么您选择的计算机类型将影响您的账单金额。 有关计价的更多信息,请参阅“关于代码空间的计费”。
作为组织所有者,您可能希望对可用的计算机类型配置约束。 例如,如果组织中的工作不需要大量的计算能力或存储空间,则可以从用户可以选择的选项列表中删除资源丰富的计算机。 为此,您可以在组织的 Codespaces 设置中定义一个或多个策略。
设置计算机类型约束时的行为
如果存在不再符合您定义的策略的现有代码空间,则这些代码空间将继续运行,直到它们停止或超时。 当用户尝试恢复代码空间时,将显示一条消息,告知他们此组织不再允许当前选择的计算机类型,并提示他们选择备用计算机类型。
如果删除组织中单个存储库的 Codespaces 配置所需的更高规范的计算机类型,则无法为该存储库创建代码空间。 当有人尝试创建代码空间时,他们将看到一条消息,告诉他们没有有效的计算机类型可以满足存储库 Codespaces 配置的要求。
注意:任何可以在存储库中编辑 devcontainer.json
配置文件的人都可以为计算机设置可用于该存储库代码空间的最低规范。 更多信息请参阅“为代码空间计算机设置最低规范”。
如果为计算机类型设置策略会阻止用户对特定存储库使用 Codespaces ,则有两种选择:
- 您可以调整策略以专门从受影响的存储库中删除限制。
- 由于新策略,任何拥有无法再访问的代码空间的人都可以将其代码空间导出到分支。 此分支将包含它们从代码空间所做的所有更改。 然后,他们可以使用兼容的计算机类型在此分支上打开新的代码空间,或者在本地处理此分支。 更多信息请参阅“将更改导出到分支”。
设置组织范围和存储库特定的策略
创建策略时,您可以选择是将其应用于组织中的所有存储库,还是仅应用于指定的存储库。 如果设置了组织范围的策略,则为各个存储库设置的任何策略都必须在组织级别设置的限制范围内。 添加策略会使计算机的选择受到限制更多,而不是更少。
例如,您可以创建一个组织范围的策略,将计算机类型限制为 2 核或 4 核。 然后,您可以为存储库 A 设置一个策略,将其限制为仅 2 核计算机。 为存储库 A 设置策略以将其限制为具有 2、4 或 8 核的计算机将导致仅选择 2 核和 4 核计算机,因为组织范围的策略会阻止访问 8 核计算机。
如果添加组织范围的策略,则应将其设置为可用于组织中任何存储库的最大计算机类型选择范围。 然后,您可以添加特定于存储库的策略以进一步限制选择。
添加策略以限制可用的计算机类型
-
在 GitHub.com 的右上角,单击您的头像,然后单击 Your organizations(您的组织)。
-
在组织旁边,单击 Settings(设置)。
-
在边栏的“Code, planning, and automation(代码、规划和自动化)”部分中,选择 Codespaces,然后单击 Policies(策略)。
-
在“Codespace policies(代码空间策略)”页面上,单击 Create Policy(创建策略)。
-
输入新策略的名称。
-
单击 Add constraint(添加约束) ,然后选择 Machine types(计算机类型)。
-
单击 以编辑约束,然后清除您不希望可用的任何计算机类型的选择。
-
在“Change policy target(更改策略目标)”区域中,单击下拉按钮。
-
选择 All repositories(所有存储库) 或 Selected repositories(选定的存储库),以确定此策略将应用于哪些存储库。
-
如果选择了 Selected repositories(所选仓库):
-
单击 。
-
选择要应用此策略的存储库。
-
在存储库列表的底部,单击 Select repositories(选择存储库)。
-
-
如果要向策略添加其他约束,请单击 Add constraint(添加约束) ,然后选择另一个约束。 有关其他约束的信息,请参阅“限制转发端口可见性”和“限制空闲超时期限”。
-
向策略添加完约束后,单击 Save(保存)。
编辑策略
您可以编辑现有策略。 例如,您可能希望在策略中添加或删除约束。
- 显示“Codespace policies(代码空间策略)”页。 更多信息请参阅“添加策略以限制可用计算机类型”。
- 单击要编辑的策略的名称。
- 进行所需的更改,然后单击 Save(保存)。
删除策略
-
显示“Codespace policies(代码空间策略)”页。 更多信息请参阅“添加策略以限制可用计算机类型”。
-
单击要删除的策略右侧的删除按钮。