跳至主要内容

设置代码扫描合并保护

您可以使用规则集为拉取请求设置代码扫描合并保护。

谁可以使用此功能?

组织所有者、安全管理员以及具有 **管理员** 角色的组织成员

代码扫描适用于以下存储库类型

  • GitHub.com 上的公共存储库
  • 启用了 GitHub 高级安全 的 GitHub Enterprise Cloud 上的组织拥有的存储库

关于使用规则集进行代码扫描合并保护

注意

  • 此功能目前处于公开预览阶段,可能会发生更改。
  • 使用规则集进行合并保护与状态检查无关。有关状态检查的更多信息,请参阅“关于状态检查”。
  • 使用规则集进行合并保护不适用于合并队列组或默认设置分析的 Dependabot 拉取请求。

您可以使用规则集在满足以下条件之一时阻止拉取请求合并

  • 必需工具发现了规则集中定义的严重级别的代码扫描警报。

  • 必需的代码扫描工具的分析仍在进行中。

  • 未为存储库配置必需的代码扫描工具。

有关代码扫描警报的更多信息,请参阅“关于代码扫描警报”。

您可以在存储库级别以及为配置了默认设置或高级设置的存储库设置使用规则集进行合并保护。您还可以使用 REST API 设置使用规则集进行合并保护。

有关规则集的更多信息,请参阅“关于规则集”。

为存储库创建合并保护规则集

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

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

    Screenshot of a repository header showing the tabs. The "Settings" tab is highlighted by a dark orange outline.

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

    Screenshot of the sidebar of the "Settings" page for a repository. The "Rules" sub-menu is expanded, and the "Rulesets" option is outlined in orange.

  4. 单击**新建规则集**。

  5. 要创建针对分支的规则集,请单击**新建分支规则集**。

  6. 在“规则集名称”下,键入规则集的名称。

  7. 或者,要更改默认执行状态,请单击 已禁用 并选择执行状态。有关执行状态的更多信息,请参阅“关于规则集”。

  8. 在“分支保护”下,选择**要求代码扫描结果**。

  9. 在“必需工具和警报阈值”下,单击** 添加工具**并使用下拉列表选择代码扫描工具。例如,“CodeQL”。

  10. 在代码扫描工具的名称旁边

    • 单击**警报**并选择以下选项之一:**无**、**错误**、**错误和警告**或**全部**。
    • 单击**安全警报**并选择以下选项之一:**无**、**严重**、**高或更高**、**中或更高**或**全部**。

    Screenshot of the "Required tools and alert thresholds" section of "Rulesets" settings.

有关警报严重性和安全严重性级别的更多信息,请参阅“关于代码扫描警报”。

有关在存储库中管理规则集的更多信息,请参阅“管理存储库的规则集”。

使用 REST API 创建合并保护规则集

您可以使用 REST API 使用 code_scanning 规则创建规则集,这使您可以定义特定工具并设置警报阈值。有关更多信息,请参阅“规则的 REST API 端点”。