Skip to main content
Skip to content

将分支保护转换为规则集

使用规则集可以更清晰地查看和控制存储库保护,同时保留其现有行为。

谁可以使用此功能?

People with admin access to a repository, or a custom role with the "edit repository rules" permission, can create, edit, and delete rulesets for a repository.

组织可通过 GitHub Free 和 GitHub Free 在公共仓库中使用规则集,也可通过 GitHub Pro、GitHub Team 和 GitHub Enterprise Cloud 在公共和私有仓库中使用规则集。 请参阅“GitHub的计划”。

推送规则集适用于 GitHub Enterprise Cloud 内部和专用存储库中的计划、已启用推送规则集的存储库分支以及企业中的组织。

关于将分支保护转换为规则集

规则集让你能够更清楚地了解并控制保护如何应用于仓库。 与分支保护规则不同,多个规则集可以同时应用于同一分支,具有读取访问权限的人员可以查看活动规则集。 这有助于开发人员了解影响他们的规则,并允许审核员在没有管理员访问权限的情况下查看存储库保护。

您可以从仓库的规则集设置中一并导入符合条件的分支保护规则,或每次转换一条规则。

GitHub 为每个分支保护规则建议一个或多个规则集。 在创建规则集之前,可以查看其名称以及有关行为更改的任何警告。 当其保护无法在单个规则集中表示时,一个分支保护规则可以生成多个规则集。

有关规则集的详细信息,请参阅 关于规则集。

转换存储库的分支保护规则

可以转换多个符合条件的分支保护规则。 在创建规则集之前,可以查看和配置将导入哪些保护以及如何强制执行新规则集。

  1. 在 GitHub 上,导航到存储库的主页面。

  2. 在仓库名称下,单击 “Settings”****。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”。

    存储库标头的屏幕截图,其中显示了选项卡。 “设置”选项卡以深橙色边框突出显示。

  3. 在左侧边栏的“代码、规划和自动化”,然后单击规则集。

  4. 在“规则集”页顶部,单击“ 导入分支保护规则”。

  5. 在“审阅导入”对话框中,查看建议的规则集:

    • 如果保护已由 现有规则集覆盖,则导入不会为其创建另一个规则集。
    • 查看有关新行为的任何警告。 分支保护规则可能会导致多个提议的规则集。
  6. 从 “执行状态” 下拉列表中,选择新规则集的状态。

    • 启用:创建规则集后立即强制实施这些规则集。
    • 评估:记录规则集的行为方式,而无需强制执行规则集。
    • 已禁用:创建规则集,而无需评估或强制实施这些规则集。
  7. 选中要创建的每个建议规则集的复选框。

  8. 单击“创建规则集”。

  9. 在后面的“创建规则集”对话框中,选择对原始分支保护规则执行的操作。

    • 若要保留原始保护,请单击“ 保留规则”。 原始规则继续保护匹配的分支。 已启用规则集与它们一起强制执行,因此,更改必须同时满足两者。
    • 若要删除原有的保护规则,请单击“删除分支保护规则”。 仅当新规则集处于活动状态且已确认它们涵盖预期分支并按预期方式运行时,才删除原始规则。 评估和禁用规则集不提供主动保护。

将单个分支保护规则转换为规则集

当您希望一次审查并配置一个分支保护规则的转换时,请使用单规则流程。

  1. 在 GitHub 上,导航到存储库的主页面。

  2. 在仓库名称下,单击 “Settings”****。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”。

    存储库标头的屏幕截图,其中显示了选项卡。 “设置”选项卡以深橙色边框突出显示。

  3. 在 边栏的“代码、规划和自动化”“ 部分中,单击“ 分支”。

  4. 在“分支保护规则”下,找到要转换的规则,然后单击“ 转换为规则集”。

  5. 为此转换中创建的每个规则集设置规则集名称。

  6. 查看“新行为”部分,了解创建一个或多个规则集时将发生哪些更改。

  7. 在“强制状态”中,选择如何强制执行新规则集。 有关详细信息,请参阅 “选择执行状态”。

  8. 如果选择 “启用”,可以选择删除原始分支保护规则作为转换的一部分,方法是选择 “迁移完成后删除分支保护规则”。

  9. 单击“创建规则集”。 如果转换生成多个规则集,按钮将包含规则集的数量,例如 “创建 2 个规则集”。

如果保留原始分支保护规则,它会继续保护匹配的分支。 活动规则集与其一同强制执行,因此更改必须同时满足两者。 评估规则集记录其在不强制执行其规则时将如何表现。

选择执行状态

转换分支保护规则时,请选择新规则集的强制执行状态。

  • 启用:规则集创建后立即生效。
  • 评估:规则集在不强制实施规则的情况下运行,因此你可以在规则生效之前查看其行为方式。

虽然默认情况下选择了 “活动状态”,但请考虑哪种状态符合你的情况:

  • 如果之前已创建或迁移类似的规则,并且对结果有信心,则可以使用 Active。
  • 如果这是你的第一次迁移,请考虑从 评估 模式开始。 可以确认新规则集的行为按预期方式运行,然后在完成测试后删除原始分支保护规则。

删除原始分支保护规则

转换规则后,返回到 “分支” 设置页。 如果在转换过程中未选择删除分支保护规则,并且新规则集完全覆盖它,则列出的规则将显示消息“此规则完全由规则集覆盖,可以安全删除”,并且“ 删除 ”按钮将代替 “转换为规则集 ”按钮。

在删除原始规则之前,我们建议确认新规则集的表现符合您的预期,尤其是如果您是在评估模式下创建它。 准备就绪后,单击“ 删除 ”以删除分支保护规则。

延伸阅读