Skip to main content

Managing code rulesets for repositories in your enterprise

You can edit, monitor, and delete existing rulesets to alter how people can interact with repositories in your enterprise.

谁可以使用此功能?

Enterprise owners

After creating a ruleset at the enterprise level, you can make changes to the ruleset to alter how people can interact with the targeted repositories. For example, you can:

  • Add rules to better protect the branches or tags in those repositories
  • Switch your ruleset from "Evaluate" mode to "Active" after testing its effects on the contributor experience

Note

对存储库具有读取访问权限的任何人都可以查看该存储库上运行的活动规则集。

About delegated bypass

Note

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

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

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

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

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

Editing a ruleset

You can edit a ruleset to change parts of the ruleset, such as the name, bypass permissions, or rules. You can also edit a ruleset to change its status, such as if you want to enable or temporarily disable a ruleset.

  1. 在 GitHub 的右上角,单击你的个人资料照片。

  2. 根据环境,单击“你的企业”,或单击“你的企业”,然后单击要查看的企业********。

  3. In the left sidebar, in the "Policies" section, click Code, then click Rulesets.

  4. On the "Rulesets" page, click the name of the ruleset you want to edit.

  5. Change the ruleset as required.

    For information on the available rules, see "规则集的可用规则"

  6. At the bottom of the page, click Save changes.

Deleting a ruleset

Note

对存储库具有读取访问权限的任何人都可以查看该存储库上运行的活动规则集。

  1. 在 GitHub 的右上角,单击你的个人资料照片。
  2. 根据环境,单击“你的企业”,或单击“你的企业”,然后单击要查看的企业********。
  3. In the left sidebar, in the "Policies" section, click Code, then click Rulesets.
  4. To the right of the ruleset's name, select , then click Delete ruleset.

Using ruleset history

Note

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

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

  1. 在 GitHub 的右上角,单击你的个人资料照片。
  2. 根据环境,单击“你的企业”,或单击“你的企业”,然后单击要查看的企业********。
  3. In the left sidebar, in the "Policies" section, click Code, then click Rulesets.
  4. To view the history of changes to the ruleset, select to the right of the ruleset's name, then click History.
  5. To the right of the specific iteration, select , then click Compare changes, Restore, or Download.

Importing a ruleset

You can import a ruleset from another repository, organization or enterprise using the exported JSON file from the previous section. This can be useful if you want to apply the same ruleset to multiple repositories, organizations or enterprises.

  1. 在 GitHub 的右上角,单击你的个人资料照片。
  2. 根据环境,单击“你的企业”,或单击“你的企业”,然后单击要查看的企业********。
  3. In the left sidebar, in the "Policies" section, click Code, then click Rulesets.
  4. Select the New ruleset dropdown, then click Import a ruleset.
  5. Open the exported JSON file.
  6. Review the imported ruleset and click Create.

Viewing insights for rulesets

You can view insights for rulesets to see how rulesets are affecting the repositories in your enterprise. 在“规则见解”页面上,会看到以下用户操作的时间线。 可以使用筛选器来查找要查找的内容。

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

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

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

If a ruleset is running in "Evaluate" mode, you can see actions that would have passed or failed if the ruleset had been active.

  1. 在 GitHub 的右上角,单击你的个人资料照片。
  2. 根据环境,单击“你的企业”,或单击“你的企业”,然后单击要查看的企业********。
  3. In the left sidebar, in the "Policies" section, click Code, then click Rulesets.
  4. On the "Rule insights" page, use the dropdown menus at the top of the page to filter the actions by ruleset, repository, actor, and time period.
  5. To see which specific rules failed or required a bypass, click , then expand the name of the ruleset.

管理绕过推送规则的请求

Note

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

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

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

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

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

  3. 单击绕过请求

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

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

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

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