Skip to main content

此版本的 GitHub Enterprise Server 将于以下日期停止服务 2026-03-17. 即使针对重大安全问题,也不会发布补丁。 为了获得更好的性能、更高的安全性和新功能,请升级到最新版本的 GitHub Enterprise。 如需升级帮助,请联系 GitHub Enterprise 支持

配置大规模代码扫描的默认设置

可以使用默认设置为整个组织的存储库快速配置 code scanning。

谁可以使用此功能?

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

Code scanning 可用于以下存储库类型:

  • GitHub.com 上的公共存储库
  • GitHub Team、GitHub Enterprise Cloud 或 GitHub Enterprise Server 上的组织拥有的存储库,已启用 GitHub Advanced Security

关于大规模配置默认设置

通过 code scanning 的默认设置,可以快速保护整个组织的存储库中的代码。

可以为组织中符合默认设置条件的所有存储库启用 code scanning。 启用默认设置后,将扫描组织存储库中以 CodeQL 支持的语言编写的代码:

  • 每次推送到存储库的默认分支或任何受保护的分支时。 有关受保护分支的详细信息,请参阅“关于受保护分支”。
  • 根据存储库的默认分支或任何受保护的分支创建或提交拉取请求时,不包括分支中的拉取请求。
  • 每周一次。

有关详细信息,请参阅为组织中所有符合条件的存储库配置默认设置

还可以使用安全概述查找组织中的一部分存储库,并同时为所有这些存储库启用或禁用默认设置。 有关详细信息,请参阅为组织中的一部分存储库配置默认设置

对于不符合默认设置条件的存储库,可以在存储库级别或使用脚本在组织级别配置高级设置。 有关详细信息,请参阅“使用 CodeQL 大规模为代码扫描配置高级设置”。

符合 CodeQL 大规模默认设置条件的存储库

存储库必须满足以下所有条件才能使用默认设置,否则需要使用高级设置。

  • code scanning 的高级设置尚未启用。
  • 已启用 GitHub Actions。
  • 已启用 GitHub Advanced Security。

如果符合条件的存储库将来可能至少包含一种 CodeQL 支持的语言,我们建议为这些存储库启用默认设置。 如果在不包含任何 CodeQL 支持的语言的存储库上启用默认设置,则默认设置将不会运行任何扫描或使用任何 GitHub Actions 分钟。 如果将 CodeQL 支持的语言添加到仓库的默认分支,则默认设置将自动开始扫描 CodeQL 支持的语言,并使用 GitHub Actions 分钟。 有关 CodeQL 支持的语言的详细信息,请参阅“关于使用 CodeQL 进行代码扫描”。

注意

通过组织的设置页面为组织中的所有存储库配置默认设置“不会”覆盖默认设置的现有配置__。 但是,通过安全概览在组织中的存储库子集上配置默认设置“会”__ 覆盖这些存储库上默认设置的现有配置。

关于向现有默认设置配置添加语言

如果存储库中的代码更改为包含支持 CodeQL 的语言,则 GitHub 将自动更新code scanning配置以包含新语言。 如果 code scanning 因新配置而失败,GitHub 将自动恢复以前的配置,因此存储库不会失去 code scanning 覆盖范围。

为组织中所有符合条件的存储库配置默认设置

通过组织设置的“Code security and analysis”页,可以为组织中所有符合条件的仓库启用默认设置。 有关仓库资格的详细信息,请参阅“符合 CodeQL 大规模默认设置条件的仓库”。

  1. 在 GitHub 的右上角,单击个人资料图片,然后单击“ Your organizations”****。
  2. 在组织旁边,单击“设置”。
  3. 在边栏的“Security”部分中,单击“ Code security and analysis”****。
  4. 单击"Code scanning"旁边的“全部启用”****。
  5. 在显示的“启用 code scanning 默认设置”对话框中的“查询套件”部分中,选择将运行默认设置配置的查询套件。 有关详细信息,请参阅“CodeQL 查询套件”。
  6. 若要启用默认设置的配置,请单击“为符合条件的存储库启用”。
  7. (可选)若要在启用默认设置时在整个组织中推荐“扩展”查询套件,请选择“为启用默认设置的存储库图鉴扩展查询套件”。

注意

  • 如果为所有存储库禁用 CodeQL code scanning,则此更改不会反映在组织的安全概述中显示的覆盖范围信息中。 存储库在“安全覆盖范围”视图中仍将显示为已启用 code scanning。
  • 为组织中的所有符合条件的存储库启用 code scanning 不会覆盖现有的 code scanning 配置。 有关为特定存储库配置不同设置的默认设置的信息,请参阅“配置代码扫描的默认设置”。
  • 为组织中所有符合条件的存储库启用默认设置,包括不支持 CodeQL 语言的符合条件的存储库。 如果稍后将 CodeQL 支持的语言添加到其中一个存储库,则默认设置将开始扫描该存储库并使用 GitHub Actions 分钟。

扩展默认设置中的 CodeQL 覆盖率

通过组织的安全设置页面,可以使用模型包为组织中所有符合条件的存储库扩展默认设置的覆盖范围。 有关详细信息,请参阅“编辑默认设置配置”。

为组织中的部分存储库配置默认设置

通过组织的安全概述,可以找到符合默认设置条件的存储库,然后同时在每个存储库中启用默认设置。 有关仓库资格的详细信息,请参阅“符合 CodeQL 大规模默认设置条件的仓库”。

查找符合默认设置条件的存储库

  1. 在 GitHub 上,导航到组织的主页面。

  2. 在组织名称下,单击“ Security”****。

    组织的水平导航栏的屏幕截图。 标有盾牌图标和“安全”字样的选项卡以深橙色轮廓标出。

  3. 在边栏中,单击 “Coverage”,以显示“Security coverage”视图****。

    “安全覆盖范围”视图的屏幕截图。

  4. 在搜索栏中,输入以下查询之一:

    •           `code-scanning-default-setup:eligible is:public` 显示具有适合默认设置的语言并且符合条件的存储库,因为它们对公众可见。
      
    •           `code-scanning-default-setup:eligible advanced-security:enabled` 显示具有适合默认设置的语言并且符合条件的专用或内部存储库,因为它们已启用 GitHub Advanced Security。
      
    •           `code-scanning-default-setup:eligible is:private,internal advanced-security:not-enabled` 显示具有适合默认设置的语言但未启用 GitHub Advanced Security 的专用或内部存储库。 为这些存储库启用 GitHub Advanced Security 后,也可以将它们添加到默认设置中。
      

可以选择所有显示的存储库或其中一部分存储库,并同时为它们启用或禁用 code scanning 的默认设置。 有关详细信息,请参阅为组织中的多个存储库大规模配置默认设置的步骤 5。

为组织中的多个存储库大规模配置默认设置

  1. 在 GitHub 上,导航到组织的主页面。

  2. 在组织名称下,单击“ Security”****。

    组织的水平导航栏的屏幕截图。 标有盾牌图标和“安全”字样的选项卡以深橙色轮廓标出。

  3. 在边栏中,单击 “Coverage”,以显示“Security coverage”视图****。

    “安全覆盖范围”视图的屏幕截图。

  4. 可以使用搜索栏根据名称或安全功能的启用状态来缩小“安全覆盖范围”视图中可见存储库的范围。 例如,要筛选符合默认设置条件且当前未启用默认设置的存储库,请搜索 code-scanning-default-setup:eligible

  5. 在存储库列表中,选择要为其启用 code scanning 的每个存储库。

    • 要为页面上的所有存储库启用 code scanning,请选择“NUMBER 个活动项”**** 旁边的复选框。
    • 要为匹配当前搜索的所有存储库启用 code scanning,请选择“NUMBER 个活动项”**** 旁边的复选框,然后单击“全选 NUMBER 个存储库”****。
  6. 单击“已选中 NUMBER”旁边的“安全设置”。********

  7. 在侧面板的“CodeQL 默认设置”部分中,选择“无更改”,然后单击“启用”********。

  8. 要确认为所选存储库启用 code scanning,请单击“应用更改编号”。 或者,要选择或取消选择多个存储库以启用 code scanning,请单击“”以关闭面板,而不应用所做的更改。

注意

  • 在组织中使用安全概览为多个存储库启用 code scanning 将覆盖所选存储库的任何现有 code scanning 配置,包括任何以前的查询套件选择和高级设置的工作流。
  • 可以为不包含 CodeQL 支持语言的符合条件的存储库启用默认设置。 如果稍后将 CodeQL 支持的语言添加到其中一个存储库,则默认设置将开始扫描该存储库并使用 GitHub Actions 分钟。

“安全覆盖范围”视图的屏幕截图,其中侧面板处于打开状态。 “应用更改”按钮以深橙色边框突出显示。

如果系统由于企业策略阻止你启用 code scanning,你仍然可以在“安全覆盖范围”视图中看到受影响的存储库,并从“ Security settings”按钮访问侧面板。**** 但是,你将在侧面板中看到一条消息,指示无法为所选存储库启用 code scanning。 有关企业策略的详细信息,请参阅 强制实施企业的代码安全性和分析策略

为组织中的所有存储库配置合并保护

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

  • 所需工具发现了一个 code scanning 警报,其严重性是在规则集中定义的。
  • 所需 code scanning 工具的分析仍在进行中。
  • 未为存储库配置所需的 code scanning 工具。

有关详细信息,请参阅“设置代码扫描合并保护”。 有关规则集的更多常规信息,请参阅“关于规则集”。