Skip to main content

管理组织中存储库的规则集

可以编辑、监视和删除现有规则集,以更改用户与组织中的存储库进行交互的方式。

谁可以使用此功能?

Organization owners and users with the "Manage organization ref update rules and rulesets" permission can manage rulesets at the organization level.

关于管理组织的规则集

在组织级别创建规则集后,可以对规则集进行更改,以更改用户与目标存储库进行交互的方式。 例如,可以添加规则以更好地保护这些存储库中的分支或标记,也可以在测试规则集对存储库参与者体验的影响后,将规则集从“评估”模式切换到“可用”模式。 应用于存储库分支的组织规则集将不再允许存储库管理员重命名目标存储库的分支或将默认分支更改为另一个分支。 存储库管理员可创建和删除分支,只要其具有适当的权限。

Note

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

借助推送规则集委派绕过功能,可以控制谁可以绕过推送保护以及应允许哪些被阻止的推送。

启用委派绕过后,存储库的参与者在推送包含受限内容的提交时必须请求“绕过特权”。 请求将发送到指定的审阅者组,他们批准或拒绝绕过推送规则的请求。

如果绕过推送规则的请求获得批准,则参与者可以推送包含受限内容的提交。 如果请求被拒绝,则参与者必须首先从包含受限内容的提交中移除相关内容,然后才能再次推送。

若要配置委派绕过,组织所有者或存储库管理员首先会创建“绕过列表”。 绕过列表包括特定角色和团队,例如安全团队或存储库管理员,他们负责监督绕过推送保护的请求。 有关详细信息,请参阅“管理组织中存储库的规则集”和“关于规则集”。

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

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”的事件的右侧,三个水平点的图标以橙色框出。

管理绕过推送规则的请求

Note

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

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

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

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

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

  3. 单击绕过请求

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

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

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

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