Skip to main content

编辑默认设置配置

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

谁可以使用此功能?

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

编辑默认设置配置的简介

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

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

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

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

自定义现有默认设置配置

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

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

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

  3. 在边栏的“Security”部分中,单击“ Advanced Security”****。

  4. 在“Code Security”部分的“CodeQL analysis”行中,选择 ,然后单击“ View CodeQL configuration”****。

  5. 在“CodeQL default configuration”窗口中,单击“ Edit”****。

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

  7. (可选)在“Scan settings”部分的“Query suite”行中,选择要对代码运行的其他查询套件。

  8. (可选)要使用带标签的运行程序,请在“CodeQL default configuration”模式对话框的“Runner type”部分,选择“Standard GitHub runner” 打开下拉菜单,然后选择“Labeled runner”********。 然后,在“Runner label”旁边,输入现有自托管运行程序或 GitHub 托管的运行程序的标签。 有关详细信息,请参阅“配置代码扫描的默认设置”。

  9. (公共预览版) 或者,在“扫描设置”部分的“风险模型”行中,选择“远程和本地源”。 此选项仅适用于包含受支持语言代码的仓库:Java/Kotlin 和 C#。

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

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

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

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

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

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

注意

风险模型功能目前为 公共预览版,可能随时更改。 在 公共预览版 期间,风险模型仅支持 Java/Kotlin 和 C# 分析。

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

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

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

注意

CodeQL 模型包目前包含在 公共预览版 中,可能会更改。 C/C++、C#、Java/Kotlin、Python、Ruby 和 Rust 分析支持模型包。

Visual Studio Code 的 CodeQL 扩展中的 CodeQL 支持对 C#、Java/Kotlin、Python 和 Ruby 的依赖项建模。

如果 你的企业托管在 GitHub.com 上,并且 你使用的框架和库未被 CodeQL 随附的标准库识别,可以对依赖项进行建模并扩展 code scanning 分析。 有关详细信息,请参阅 CodeQL 文档中的“支持的语言和框架”。

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

有关 CodeQL 模型包和编写自己的模型包的详细信息,请参阅 使用 CodeQL 模型编辑器

扩展存储库的覆盖范围

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

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

注意

如果为组织中的所有存储库使用 CodeQL 模型包扩展覆盖率,指定的模型包必须发布到 GitHub Container registry,并且可供运行 code scanning 的存储库访问。 有关详细信息,请参阅“使用容器注册表”。

  1. 在 GitHub 的右上角,单击个人资料图片,然后单击“ Your organizations”****。

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

    组织配置文件中选项卡的屏幕截图。 “设置”选项卡以深橙色标出。

  3. 在边栏的“Security”部分中,依次单击“ Advanced Security”和“Global settings”********。

  4. 找到“Code scanning”部分。

  5. 在“Expand CodeQL analysis”旁边,单击“Configure”****。

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

    组织设置中的“展开 CodeQL 分析”视图的屏幕截图。

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