Skip to main content

编辑默认设置配置

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

谁可以使用此功能?

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

运行代码的初始分析时使用默认设置,然后可以更改配置以更好地满足需求。 请参阅 关于代码扫描的设置类型code scanning 的存储库属性

自定义现有默认设置配置

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

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

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

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

  4. 在“CodeQLCode Security分析”部分的“分析”行中,选择,然后单击“查看CodeQL配置”。

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

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

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

  8. (可选)若要使用标记的运行程序,请在“CodeQL 默认配置”模式对话框的“运行程序类型”部分中,选择 “标准 GitHub 运行程序 ”以打开下拉菜单,然后选择 “标记运行程序”。 然后,在“运行器标签”旁边,输入现有自托管或 GitHub 托管运行器的标签。 有关详细信息,请参阅“配置代码扫描的默认设置”。

  9. (公共预览可选)在“扫描设置”部分的“威胁模型”行中,选择 “远程和本地源”。 此选项仅适用于具有支持语言的代码的存储库: Java/Kotlin 和 C#。

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

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

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

  • 某个必需的工具发现了一个 code scanning 警报,且该警报的严重程度符合规则集中的定义。
  • 所需的工具分析仍在进行中。
  • 未为存储库配置所需的工具。

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

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

注意

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

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

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

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

注意

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

CodeQL 的 CodeQL 扩展中的 Visual Studio Code 支持对 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组织中所有存储库的模型包的覆盖范围,则必须将指定的模型包发布到GitHubContainer registry并且可供运行code scanning的存储库访问。 有关详细信息,请参阅“使用容器注册表”。

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

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

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

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

  4. 查找“Code scanning”部分。

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

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

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

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

在非活动存储库上继续扫描

By default, code scanning default setup pauses weekly scheduled scans on repositories that have had no commits pushed or pull requests opened for 180 days. 不过,您可以在组织中覆盖这一行为,但扫描周期不可配置。

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

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

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

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

  4. 在“Code scanning”部分,启用为非活跃存储库保留每 30 天运行一次计划扫描设置。

进一步自定义

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