Skip to main content

管理存储库的规则集

可以在存储库中编辑、监视和删除现有规则集,以更改用户与特定分支和标记进行交互的方式。

谁可以使用此功能?

对存储库具有读取访问权限的任何人都可以查看存储库的规则集。 对存储库具有管理员访问权限的人员或者具有“编辑存储库规则”权限的自定义角色可以为存储库创建、编辑和删除规则集 并查看规则集见解。 有关详细信息,请参阅“关于自定义存储库角色”。

规则集在具有 GitHub Free 和 GitHub Free(适用于组织)的公共存储库中可用,在具有 GitHub Pro、GitHub Team 和 GitHub Enterprise Cloud 的公共和专用存储库中可用。 有关详细信息,请参阅“GitHub 的计划”。

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

创建规则集之后,可以对其进行更改。 例如,可以添加规则以更好地保护分支或标签,也可以在测试规则集对存储库的参与者体验产生的影响后将规则集从“评估”模式切换到“活动”模式。

可以使用 REST API 和 GraphQL API 来管理规则集。 有关详细信息,请参阅“规则的 REST API 终结点”和“突变”。

Tip

如果你是组织的所有者,则可以在组织级别创建规则集。 可以将这些规则集应用于组织中的特定存储库,以及这些存储库中的特定分支。 有关详细信息,请参阅“创建组织中存储库的规则集”。

查看存储库的规则集

在“规则集”页面上,对存储库具有读取访问权限的任何人都可以查看针对特定分支、标记或推送限制的有效规则集。 你还将看到在“评估”模式下运行的规则集,这些规则集未强制实施。

对于已创建分支的存储库的推送规则集,“规则集”页面将指示规则集由应用规则的源存储库管理。

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

  2. 在左侧的文件树视图中,选择 分支下拉菜单,然后单击“查看所有分支”。 还可以在集成的文件编辑器顶部找到分支下拉菜单。

    存储库的文件树视图的屏幕截图。 分支的下拉菜单已展开,并用深橙色框出。

  3. 在分支名称的左侧,单击

  4. (可选)若要筛选结果,请单击选项卡,或使用“搜索分支”搜索栏。

  5. 单击要查看的规则集的名称。

编辑规则集

Note

如果规则集是在组织级别创建的,则无法从存储库的设置中编辑规则集。 如果你有权编辑规则集,则可以在组织的设置中执行此操作。 有关详细信息,请参阅“管理组织中存储库的规则集”。

可以通过编辑规则集更改规则集的某些部分,例如名称、绕过权限或规则。 还可以编辑规则集更改其状态,例如在需要启用或暂时禁用规则集时。

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

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

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

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

    存储库“设置”页边栏的屏幕截图。 “规则”子菜单已展开,“规则集”选项以橙色轮廓突出显示。

  4. 在“规则集”页面上,单击要编辑的规则集的名称。

  5. 根据需要更改规则集。 有关可用规则的信息,请参阅“规则集的可用规则”。

  6. 在页面的底部,单击“保存更改”。

删除规则集

Tip

如果要暂时禁用某个规则集,但不想将其删除,可以将规则集的状态设置为“Disabled”。 有关详细信息,请参阅“编辑规则集”。

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

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

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

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

    存储库“设置”页边栏的屏幕截图。 “规则”子菜单已展开,“规则集”选项以橙色轮廓突出显示。

  4. 单击要删除的规则集的名称。

  5. 在规则集名称右侧,选择 ,然后单击“ 删除规则集”。

    用于编辑规则集的页面的屏幕截图。 在标有三个点的按钮下方,一个标有“删除规则集”的选项以橙色框出。

使用规则集历史记录

Note

  • 规则集历史记录目前为 公共预览版,可能会更改。
  • 规则集历史记录仅包含 2023 年 10 月 11 日 公共预览版 版本之后对规则集所做更改。

可以查看规则集的所有更改并还原回特定迭代。 还可以在特定迭代中下载包含规则集配置的 JSON 文件。 规则集的绕过列表已从导出的 JSON 文件中排除。

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

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

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

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

    存储库“设置”页边栏的屏幕截图。 “规则”子菜单已展开,“规则集”选项以橙色轮廓突出显示。

  4. 要查看规则集更改历史记录,在规则集名称右侧选择 ,然后单击“ 历史记录”****。

    存储库规则集的页面屏幕截图。 在标有三个点的按钮下方,标有“历史记录”的选项以橙色标出。

  5. 在特定迭代右侧选择 % octicon "kebab-horizontal" aria-label="Open additional options" %},然后单击“比较更改”、“还原” 或“下载”****。

    存储库规则集历史记录的页面屏幕截图。 标有三个点的下拉菜单展开并以橙色边框突出显示。

导入规则集

可以使用 JSON 文件从另一个存储库或组织导入规则集。 如果要将相同规则集应用于多个存储库或组织,这种方法很有用。

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

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

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

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

    存储库“设置”页边栏的屏幕截图。 “规则”子菜单已展开,“规则集”选项以橙色轮廓突出显示。

  4. 选择“新建规则集”**** 下拉列表,然后单击“导入规则集”****。

    存储库规则集的页面屏幕截图。 标有“新建规则集”的下拉菜单展开,“导入规则集”选项以橙色边框突出显示。

  5. 打开导出的 JSON 文件。

  6. 查看导入的规则集,然后单击“创建”****。

查看规则集的见解

可以查看规则集的见解,了解规则集如何影响存储库。 在“规则见解”页面上,会看到以下用户操作的时间线。 可以使用筛选器来查找要查找的内容。

  • 已根据一个或多个规则集进行检查并通过的操作。
  • 已根据一个或多个规则集进行检查但失败的操作。
  • 某人绕过一个或多个规则集的操作。

如果规则集在“评估”模式下运行,则可以看到规则集处于活动状态时会通过或失败的操作。

“规则见解”页面的屏幕截图。 列出了三个操作:一个标记为“通过”,一个标记为“绕过”,一个标记为“失败”并带有“评估”标签。

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

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

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

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

    存储库“设置”页边栏的屏幕截图。 “规则”子菜单已展开,“见解”选项以橙色轮廓突出显示。

  4. 在“规则见解”页上,可使用页面顶部的下拉菜单按规则集、分支、执行者和时间段筛选操作。

  5. 若要查看哪些特定规则失败或需要绕过,请单击 ,然后展开规则集的名称。

    “规则见解”页面的屏幕截图。 在标记为“不允许创建 octocat”的事件的右侧,三个水平点的图标以橙色框出。

  6. (可选)查看同一合并组中相应拉取请求的合并队列详细信息。

管理绕过推送规则的请求

Note

推送规则委派绕过目前为 公共预览版,可能随时更改。

可以在存储库的规则设置下的“推送请求”页面上查看和管理所有绕过特权请求。

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

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

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

  3. 单击绕过请求

可以按审批者(绕过列表的成员)、请求者(发出请求的参与者)、时间范围和状态来筛选请求。 将为请求分配以下状态:

状态说明
Cancelled参与者已取消请求。
Completed请求已获批准,提交已推送至存储库。
Denied请求已审查并被拒绝。
Expired请求已过期。 请求的有效期为 7 天。
Open请求尚未审查,或者已批准,但提交尚未推送到存储库。

当参与者请求绕过特权来推送包含受限内容的提交时,绕过列表的成员都会收到一个电子邮件通知,其包含请求的链接。 然后,绕过列表的成员有 7 天的时间审查请求,并在请求过期之前批准或拒绝请求。

参与者会通过电子邮件通知该决定,必须采取所需的操作。 如果请求获得批准,则参与者可以将包含受限内容的提交推送到存储库。 如果请求被拒绝,则参与者必须从提交中移除受限内容后才能成功地将提交推送到存储库。