Skip to main content

编辑默认设置配置

你可以编辑 code scanning 的现有默认设置配置,以更好地满足代码安全需求。

谁可以使用此功能?

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

编辑默认设置配置的简介

使用默认设置运行代码初始分析后,可能需要对配置进行更改,以便更好地满足代码安全需求。 对于默认设置的现有配置,可编辑:

  • 语言默认设置会进行分析。
  • 分析期间运行的查询套件。 有关可用查询套件的更多信息,请参阅“CodeQL 查询套件”。
  • 要用于分析的威胁模型 (beta)。 所选的威胁模型将决定哪些受污染数据的来源被视为应用程序的风险。 在 beta 版本中,风险模型仅受 Java/Kotlin 和 C# 分析的支持。 有关威胁模型的更多信息,请参阅“在默认设置中包含受污染数据的本地源”。

如果代码库依赖于 CodeQL 中包含的标准库无法识别的库或框架,则也可以使用 CodeQL 模型包在默认设置中扩展 CodeQL 覆盖范围。 有关详细信息,请参阅“在默认设置中使用 CodeQL 模型包扩展 CodeQL 覆盖范围”。

如果需要更改 code scanning 配置的任何其他方面,请考虑配置高级设置。 有关详细信息,请参阅“配置代码扫描的高级设置”。

自定义现有默认设置配置

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

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

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

  3. 在边栏的“安全性”部分中,单击“ 代码安全性和分析”。

  4. 在“Code scanning”部分的“CodeQL 分析”行旁边,选择 ,然后单击 “查看 CodeQL 配置”。****

  5. 在“CodeQL 默认配置”窗口中,单击 “编辑”****。

  6. (可选)在“语言”部分中,选择或取消选择用于分析的语言。

  7. (可选)在“扫描设置”部分的“查询套件”行中,选择要对代码运行的其他查询套件。

  8. (Beta)(可选)在“扫描设置”部分的“威胁模型”行中,选择远程和本地源

  9. 要更新配置,并使用新配置运行对代码初始分析,请单击“保存更改”。**** 将来的所有分析都将使用新配置。

定义导致拉取请求检查失败的警报严重性

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

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

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

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

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

在默认设置中包含受污染数据的本地源

注意: 风险模型功能目前为 beta,可能随时更改。 在 beta 期间,风险模型仅支持 Java/Kotlin 和 C# 分析。

如果代码库只将远程网络请求视为受污染数据的潜在来源,则建议使用默认的威胁模型。 如果代码库认为除网络请求以外的来源可能包含受污染的数据,则可以使用威胁模型将这些其他来源添加到 CodeQL 分析中。 在 beta 版本期间,可以添加可能被代码库视为受污染数据的其他来源的本地源(例如命令行参数、环境变量、文件系统和数据库)。

可以编辑默认设置配置中使用的威胁模型。 有关更多信息,请参阅“自定义现有的默认设置配置”。

在默认设置中使用 CodeQL 模型包扩展 CodeQL 覆盖范围

**注意:**CodeQL 模型包和 CodeQL 模型编辑器当前为 beta,可能随时更改。 模型包由 C#, Java/Kotlin, 以及 Ruby 分析支持。

如果使用 CodeQL 中包含的标准库无法识别的框架和库,则可以对依赖项进行建模并扩展 code scanning 分析。 有关详细信息,请参阅 CodeQL 文档中的“支持的语言和框架”。

对于默认设置,需要在 CodeQL 模型包中定义其他依赖项的模型。 可以通过单个存储库的 CodeQL 模型包扩展默认设置中的覆盖范围,也可以为组织中的所有存储库大规模扩展覆盖范围。

有关 CodeQL 模型包以及编写自己的模型包的详细信息,请参阅“使用 CodeQL 模型编辑器”。

扩展存储库的覆盖范围

  1. 在存储库的 .github/codeql/extensions 目录中,复制模型包目录,该目录应包含一个 codeql-pack.yml 文件和任何 .yml 文件,后者包含要包含在分析中的库或框架的其他模型。
  2. 这些模型包将在 code scanning 分析中自动检测和使用。
  3. 如果以后将配置更改为使用高级设置,则 .github/codeql/extensions 目录中的任何模型包也将被识别和使用。

扩展组织中所有存储库的覆盖范围

Note

如果使用 CodeQL 模型包扩展组织中所有存储库的覆盖范围,则指定的模型包必须发布到与 GitHub Enterprise Server 实例 (https://containers.HOSTNAME)关联的