关于在多个存储库中配置 code scanning
可以通过两种方法同时在多个存储库中配置 code scanning。 最佳使用方法取决于存储库的分析需求。
- 存储库符合 CodeQL 的默认设置并由组织拥有。
- 存储库组对 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
显示已配置高级设置或语言不适合默认设置的存储库。
有关安全覆盖范围页的详细信息,请参阅“评估代码安全功能的采用”。
使用脚本配置高级设置
对于不符合默认设置条件的存储库,可以使用批量配置脚本跨多个存储库配置高级设置。
- 确定一组可以使用相同的 code scanning 配置进行分析的存储库。 例如,所有使用生产环境生成 Java 项目的存储库。
- 创建并测试 GitHub Actions 工作流,以使用适当的配置调用 CodeQL 操作。 有关详细信息,请参阅“为存储库配置代码扫描”。
- 使用其中一个示例脚本创建自定义脚本,以将工作流添加到组中的每个存储库。
- PowerShell 示例:
jhutchings1/Create-ActionsPRs
存储库 - NodeJS 示例:
nickliffen/ghas-enablement
存储库
- PowerShell 示例: