跳至主要内容

编辑默认设置的配置

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

谁可以使用此功能?

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

关于编辑默认设置的配置

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

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

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

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

自定义默认设置的现有配置

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

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

    Screenshot of a repository header showing the tabs. The "Settings" tab is highlighted by a dark orange outline.

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

  4. 在“代码扫描”部分的“CodeQL 分析”行中,选择,然后单击 查看 CodeQL 配置.

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

  6. 可选:在“语言”部分,选择或取消选择要分析的语言。

  7. 可选:在“扫描设置”部分的“查询套件”行中,选择一个不同的查询套件以针对您的代码运行。

  8. (公开预览)可选:在“扫描设置”部分的“威胁模型”行中,选择**远程和本地源**。

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

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

您可以使用规则集,在满足以下任一条件时阻止合并拉取请求

  • 必需的工具发现了规则集中定义的严重程度的代码扫描警报。

  • 必需的代码扫描工具的分析仍在进行中。

  • 未为存储库配置必需的代码扫描工具。

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

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

注意

威胁模型目前处于公开预览阶段,可能会发生变化。在公开预览期间,仅支持对 Java/Kotlin 和 C# 的分析使用威胁模型。

如果您的代码库仅将远程网络请求视为潜在的污染数据源,那么我们建议使用默认威胁模型。如果您的代码库认为网络请求以外的其他来源也可能包含污染数据,则可以使用威胁模型将这些额外来源添加到您的 CodeQL 分析中。在公开预览期间,您可以添加代码库可能认为是其他污染数据源的本地源(例如:命令行参数、环境变量、文件系统和数据库)。

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

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

注意

CodeQL 模型包和 CodeQL 模型编辑器目前处于公开预览阶段,可能会发生变化。模型包受 C#、Java/Kotlin、Python 和 Ruby 分析的支持。

如果您使用 CodeQL 附带的标准库无法识别的框架和库,则可以对您的依赖项建模并扩展代码扫描分析。有关更多信息,请参阅 CodeQL 文档中的支持的语言和框架

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

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

扩展存储库的覆盖范围

  1. 在存储库的.github/codeql/extensions目录中,复制模型包目录,该目录应包含一个codeql-pack.yml文件和任何包含您希望在分析中包含的库或框架的其他模型的.yml文件。
  2. 模型包将在您的代码扫描分析中自动检测和使用。
  3. 如果您稍后将配置更改为使用高级设置,则.github/codeql/extensions目录中的任何模型包仍将被识别和使用。

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

注意

如果您使用 CodeQL 模型包扩展组织中所有存储库的覆盖范围,则您指定的模型包必须发布到 GitHub 容器注册表,并且可供运行代码扫描的存储库访问。有关更多信息,请参阅“使用容器注册表”。

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

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

    Screenshot of the tabs in an organization's profile. The "Settings" tab is outlined in dark orange.

  3. 单击代码安全,然后单击全局设置

  4. 找到“代码扫描”部分。

  5. 在“扩展 CodeQL 分析”旁边,单击配置

  6. 输入要使用的已发布模型包的引用,每行一个,然后单击保存

    Screenshot of the "Expand CodeQL analysis" view" in the settings for an organization.

  7. 当在启用默认设置的组织中的任何存储库上运行代码扫描时,将自动检测和使用模型包。