Skip to main content

限制转发端口的可见性

你可以针对用户从组织中的 codespace 转发端口时选择的可见性选项设置约束。

谁可以使用此功能?

To manage access to port visibility constraints for the repositories in an organization, you must be an owner of the organization.

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

概述

通常,在 codespace 中,可以私密地(仅向你自己)、向组织成员或公开(向任何具有 URL 的人)转发端口。 有关详细信息,请参阅“代码空间中的转发端口”。

作为组织所有者,你可能希望对用户在转发端口时可以设置的可见性选项配置约束。 例如,出于安全原因,你可能希望禁止公共端口转发。 为此,你可以在组织的 GitHub Codespaces 设置中定义一个或多个策略。

设置端口可见性约束时的行为

如果存在不再符合你定义的策略的现有 codespaces,这些 codespaces 将继续运行,直到它们停止或超时。当用户继续使用 codespace 时,将受策略约束。

注意:无法禁用专用端口转发,因为 GitHub Codespaces 需要专用端口转发才能继续按照设计的方式工作,例如在端口 22 上转发 SSH。

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

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

例如,你可以创建一个组织范围的策略,将可见性选项限制在组织范围内。 然后,可以为存储库 A 设置一个策略,该策略不允许公共和组织可见性,这将导致此存储库只能使用专用端口转发。 如果为存储库 A 设置一个既允许公开又允许组织的策略,将只有组织可见,因为组织范围的策略不允许公开可见性。

如果添加组织范围的策略,则应将其设置为组织中任何存储库可用的最宽松的可见性选项。 然后,您可以添加特定于存储库的策略以进一步限制选择。

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

添加限制端口可见性选项的策略

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

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

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

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

  5. 输入新策略的名称。

  6. 单击“添加约束”并选择“端口可见性” 。

  7. 单击 编辑约束。

  8. 清除不希望提供的端口可见性选项(组织或公共) 。

    “允许的值”下拉列表的屏幕截图,其中包含两个复选框。 选中了“组织”并清除了“公共”。

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

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

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

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

    选中“所选存储库”后:

    1. 单击

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

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

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

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

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

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

策略将应用于对组织计费的所有新 codespace。 下次启动现有 codespace 时,端口可见性约束也会对其应用。

编辑策略

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

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

删除策略

  1. 显示“Codespace policies(代码空间策略)”页。 有关详细信息,请参阅“添加策略以限制端口可见性选项”。

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

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