Skip to main content

设置代码扫描合并保护

可以使用规则集为拉取请求设置 code scanning 合并保护。

谁可以使用此功能?

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

启用了 GitHub Advanced Security 的组织拥有的存储库

关于对 code scanning 合并保护使用规则集

注意:

  • 此功能目前为 beta 版本,可能会更改。
  • 规则集的合并保护与状态检查无关。 有关状态检查的详细信息,请参阅“关于状态检查”。
  • 与规则集的合并保护不适用于默认设置分析的合并队列组或 Dependabot 拉取请求。

当满足以下条件之一时,可以使用规则集防止合并拉取请求:

  • 所需工具发现了一个 code scanning 警报,其严重性是在规则集中定义的。

  • 所需 code scanning 工具的分析仍在进行中。

  • 未为存储库配置所需的 code scanning 工具。

有关 code scanning 警报的详细信息,请参阅“关于代码扫描警报”。

可以在存储库或组织级别使用规则集设置合并保护,也可以为使用默认设置或高级设置配置的存储库设置合并保护。 还可以使用 REST API 通过规则集设置合并保护。

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

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

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

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

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

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

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

  4. 单击“添加规则集”。****

  5. 若要创建面向分支的规则集,请单击“新建分支规则集”。

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

  7. (可选)若要更改默认强制实施状态,请单击 “已禁用”**** 并选择强制实施状态。 有关强制状态的详细信息,请参阅“关于规则集”。

  8. 在“分支保护”下,选择“要求 code scanning 结果

  9. 在“所需工具和警报阈值”下,单击“ 添加工具”,然后选择包含下拉列表的 code scanning 工具。 例如,“CodeQL”。

  10. code scanning 工具的名称旁边:

    • 单击“警报”,然后选择“”、“错误”、“错误和警告”或“全部”。
    • 单击“安全警报”,然后选择“”、“严重”、“高或更高”、“”或“全部”。

    “规则集”设置的“所需工具和警报阈值”部分的屏幕截图。

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

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

为组织中的所有存储库创建合并保护规则集

  1. 在 GitHub 的右上角,选择个人资料照片,然后单击“你的组织”。

  2. 在组织旁边,单击“设置”。

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

    组织的设置页面的屏幕截图。 在边栏中,标有“规则集”的链接以橙色轮廓突出显示。

  4. 单击“添加规则集”。****

  5. 若要创建面向分支的规则集,请单击“新建分支规则集”。

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

  7. (可选)若要更改默认强制实施状态,请单击 “已禁用”**** 并选择强制实施状态。 有关强制状态的详细信息,请参阅“关于规则集”。

  8. 在“分支保护”下,选择“要求 code scanning 结果

  9. 在“所需工具和警报阈值”下,单击“ 添加工具”,然后选择包含下拉列表的 code scanning 工具。 例如,“CodeQL”。

  10. code scanning 工具的名称旁边:

    • 单击“警报”,然后选择“”、“错误”、“错误和警告”或“全部”。
    • 单击“安全警报”,然后选择“”、“严重”、“高或更高”、“”或“全部”。

    “规则集”设置的“所需工具和警报阈值”部分的屏幕截图。

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

有关管理组织中存储库的规则集的详细信息,请参阅“管理组织中存储库的规则集”。

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

可以使用 REST API 通过 code_scanning 规则创建规则集,以便定义特定工具和设置警报阈值。 有关详细信息,请参阅“规则的 REST API 终结点”。