Skip to main content

自定义设置

可编辑 CodeQL 扩展名的 Visual Studio Code 的设置以满足需要。

关于 CodeQL 扩展名的 Visual Studio Code 中的设置

可更改 扩展的 的许多设置,包括:

  • 扩展使用的 CodeQL CLI 版本。
  • 扩展程序如何显示以前的查询。
  • 扩展如何运行查询。

编辑 CodeQL 扩展的设置

  1. 打开“扩展”视图,右键单击 ****,然后单击扩展设置

    “扩展”视图的屏幕截图,其中显示右键单击菜单,并用深橙色轮廓显示“扩展设置”。

  2. 在设置窗口中,根据需要编辑设置。 新设置将自动保存。

    在 VS Code 中显示的 VS Code CodeQL 扩展设置窗口的截图。

Tip

或者,可通过打开 VS Code Command Palette并选择“首选项: 打开用户设置(JSON)”来编辑 JSON 格式的设置****。

选择 CodeQL CLI 的版本

要覆盖默认行为并使用特定版本的,可在扩展设置中指定可执行路径,并将其指向您现有的副本。 即名为 codeql(Linux 和 macOS) 或 codeql.exe (Windows) 的文件。 有关默认行为的详细信息,请参阅 配置 CodeQL CLI 的访问权限

更改查询历史记录项的标签

查询历史记录“格式”设置控制扩展在查询历史记录中列出查询的方式。 默认情况下,每个项都有一个标签,格式如下:

QUERY-NAME on DATABASE-NAME - QUERY-STATUS NUMBER-OF-RESULTS [QUERY-RUNTIME]

要覆盖默认标签,可以为查询历史记录项指定不同的格式。

更改查询历史记录项的保留期

默认情况下,“查询历史记录”视图中的项将保留 30 天。 可以通过更改“查询历史记录: Ttl”设置来设置不同的生存时间 (TTL)。 要无限期保留项,请将值设置为 0。

在本地配置用于运行查询的设置

“运行查询”下有许多设置。 例如,如果查询运行速度太慢且经常超时,则可能需要通过更改“运行查询:内存”设置来增加内存。

如果要检查查询性能,请启用“运行查询:调试”设置以包括计时和元组计数。 然后,这将显示在“输出”视图的 “查询服务器”选项卡中的日志中。 元组计数非常有用,因为它指示查询计算的谓词的大小。

要将查询服务器日志保存在自定义位置,请编辑“运行查询:自定义日志目录”设置。 如果使用自定义日志目录,则扩展程序会永久保存日志,而不是在每次工作区会话后自动删除日志。 如果要调查这些日志以提高查询性能,这将非常有用。

配置变体分析的设置

变体分析下有许多设置,可使用它们来定义或编辑用于变体分析的存储库列表,并更改为不同的控制器存储库。 有关控制器仓库的用途和要求的信息,请参阅 通过多库变体分析大规模运行 CodeQL 查询

您还可以通过编辑 Visual Studio Code 工作区中名为 databases.json 的文件来编辑“变体分析存储库”视图中显示的项。 此文件包含视图中显示的所有项的 JSON 表示形式。 要在编辑器窗口中打开 databases.json 文件,请单击“变体分析存储卡”视图右上方的 { } 图标。 然后,可在视图中看到存储库、组织和列表的结构化表示形式。 例如:

{
  "version": 1,
  "databases": {
    "variantAnalysis": {
      "repositoryLists": [
        {
          "name": "My favorite JavaScript repos",
          "repositories": [
            "facebook/react",
            "babel/babel",
            "angular/angular"
          ]
        }
      ],
      "owners": [
        "microsoft"
      ],
      "repositories": [
        "apache/hadoop"
      ]
    }
  },
  "selected": {
    "kind": "variantAnalysisSystemDefinedList",
    "listName": "top_10"
  }
}

可通过直接编辑此文件来更改视图中显示的项或添加新项。

配置用于添加数据库的设置

要自动将数据库源文件夹添加到工作区,可以启用“添加数据库:将数据库源添加到工作区”设置。

默认情况下,此设置处于禁用状态。 如果经常浏览数据库的源代码(例如,查看代码的抽象语法树),则可能需要启用该设置。 有关详细信息,请参阅“浏览源代码的结构”。

Note

如果位于单文件夹工作区中,则添加数据库源文件夹将导致该工作区重新加载为多根工作区。 这可能会导致查询历史记录和数据库列表重置。

在启用此设置之前,建议将工作区另存为多根工作区。 有关详细信息,请参阅 文档中的多根工作区

配置用于在本地测试查询的设置

要增加用于测试查询的线程数,可以更新“运行测试:线程数”设置。

要在运行测试时将其他参数传递给 CodeQL CLI,可以更新“运行测试:其他测试参数”设置。 有关可用参数的详细信息,请参阅 test run

配置遥测和数据收集的设置

可以配置 CodeQL 扩展插件决定其是否收集遥测数据。 默认禁用了此属性。 有关详细信息,请参阅“Visual Studio Code 的 CodeQL 中的遥测”。

更改扩展使用的 GitHub URL

默认情况下,Visual Studio Code 的 CodeQL 扩展配置为分析 GitHub.com 上托管的存储库。 如果使用具有数据驻留的 GitHub Enterprise Cloud,则可以使用“GitHub Enterprise URI”设置指定站点 URL。

在设置中指定 GitHub URL

  1. 打开“扩展”视图,右键单击 ****,然后单击扩展设置

  2. 在“设置”窗口中,向下滚动,直到找到“GitHub 身份验证”设置,然后输入具有数据驻留的 GitHub Enterprise Cloud 的 URL。 新设置将自动保存。

    该屏幕截图显示了“GitHub 身份验证”的“扩展”设置,其中 URI 字段以深橙色框出。

或者,也可以在 JSON 文件中定义 URL,其中存储了 CodeQL 的设置。

    "github-enterprise.uri": "SUBDOMAIN.ghe.com",

当扩展使用你设置的 GitHub URL 时

定义 GitHub Enterprise URI (github-enterprise.uri) 时,扩展将在以下情况使用此 URL:

  • 请求从 GitHub 下载数据库
  • 创建用于变体分析的存储库列表

Note

具有数据驻留的 GitHub Enterprise Cloud 需要身份验证才能查看所有存储库,因此需要先进行身份验证,然后才能下载或分析数据。 此外,你不会看到任何用于变体分析的“前 XX 个仓库”列表,请参阅 通过多库变体分析大规模运行 CodeQL 查询

延伸阅读