Skip to main content
我们经常发布文档更新,此页面的翻译可能仍在进行中。 有关最新信息,请访问英语文档

使用 CodeQL 大规模配置代码扫描

可使用 CodeQL 的默认设置为组织中符合条件的存储库配置 code scanning,也可使用脚本为特定的存储库组配置高级设置。

Code scanning 可用于 GitHub.com 上的所有公共存储库。 若要在组织拥有的专用存储库中使用 code scanning,必须具有 GitHub Advanced Security 许可证。 有关详细信息,请参阅“关于 GitHub 高级安全性”。

关于在多个存储库中配置 code scanning

可以通过两种方法同时在多个存储库中配置 code scanning。 最佳使用方法取决于存储库的分析需求。

  1. 存储库符合 CodeQL 的默认设置并由组织拥有。
  2. 存储库组对 CodeQL 高级设置具有类似的配置需求。

此外,必须为组织或企业启用 GitHub Actions。

CodeQL 默认设置的合格存储库

注意:为组织中符合条件的存储库启用和禁用 code scanning 默认设置的功能目前为 beta 版本,随时可能发生更改。 在 beta 版本期间,如果为所有存储库禁用 CodeQL code scanning,则此更改将不会反映在组织的安全概述中显示的覆盖范围信息中。 存储库在此视图中仍将显示为已启用 code scanning。

可以使用“代码安全性和分析”的组织设置页,为组织中符合 CodeQL 默认设置的任何存储库启用 code scanning。

组织级别支持的合格标准

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

  • Code scanning 尚未启用。
  • GitHub Actions 已启用。
  • 使用 Go、JavaScript/TypeScript、Python 或 Ruby。
  • 不使用 CodeQL 支持的任何其他语言,但可能包括其他语言,例如 R。有关 CodeQL 支持的语言的详细信息,请参阅“关于使用 CodeQL 进行代码扫描”。
  • 公开可见,或 GitHub Advanced Security 已启用。

有关默认设置的详细信息,请参阅“为存储库配置代码扫描”。 有关为组织编辑“安全性和分析”设置的信息,请参阅“管理组织的安全和分析设置”。

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

安全覆盖范围页是安全概述的一部分,它可以轻松筛选组织中的存储库,以显示符合默认设置条件的存储库。

  • 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-default-setup:not-eligible 显示已配置高级设置或语言不适合默认设置的存储库。

有关安全覆盖范围页的详细信息,请参阅“评估代码安全功能的采用”。

使用脚本配置高级设置

对于不符合默认设置条件的存储库,可以使用批量配置脚本跨多个存储库配置高级设置。

  1. 确定一组可以使用相同的 code scanning 配置进行分析的存储库。 例如,所有使用生产环境生成 Java 项目的存储库。
  2. 创建并测试 GitHub Actions 工作流,以使用适当的配置调用 CodeQL 操作。 有关详细信息,请参阅“为存储库配置代码扫描”。
  3. 使用其中一个示例脚本创建自定义脚本,以将工作流添加到组中的每个存储库。