跳至主要内容

设置 CodeQL 工作区

使用 CodeQL 时,您需要访问标准库和查询。

设置 CodeQL 工作区

有几种不同的方法可以为扩展提供对来自github/codeql存储库的标准库和查询的访问权限

  • 使用 CodeQL 初始工作区,其中包含一系列以codeql-custom-queries-LANGUAGE格式命名的目录。这些目录可供您开始为每种语言开发自己的自定义查询,并使用标准库。还有一些示例查询可帮助您入门。这是推荐的方法。

  • 更新现有的 CodeQL 工作区。这推荐给高级用户。

  • CodeQL CLI 用户可以打开包含其提取的 CodeQL CLI 归档文件的目录。

注意

CodeQL 存储库作为子模块包含在初始工作区中。您应定期使用git submodule update --remote来保持子模块更新,并确保它们与 VS Code 扩展和 CodeQL CLI 的较新版本保持兼容。

  1. vscode-codeql-starter 存储库克隆到您的计算机。确保包含子模块,可以通过使用git clone --recursive或在克隆后使用git submodule update --init --remote来实现。

  2. 在 VS Code 中,单击**文件**,然后单击**从文件打开工作区...**以打开从工作区存储库检出中获取的vscode-codeql-starter.code-workspace文件。

选项 2:更新现有的 CodeQL 工作区(高级)

  1. 在 VS Code 中,选择**文件**,然后选择**将文件夹添加到工作区...**,找到您对CodeQL 存储库的本地检出。

  2. 为每个目标语言创建一个新目录以保存自定义查询和库,可以使用**新建文件夹**或**将文件夹添加到工作区...**选项。

  3. 在每个目标语言目录中创建一个qlpack.yml文件(github/codeqlmain分支中已经存在这些文件)。这会告诉 CodeQL CLI 该目录的目标语言及其依赖项是什么。CodeQL 将在所有打开的工作区目录或用户搜索路径中查找依赖项。

    例如,要使名为my-custom-cpp-pack的自定义 CodeQL 目录依赖于 C++ 的 CodeQL 标准库,请创建一个包含以下内容的qlpack.yml文件

    name: my-custom-cpp-pack
    version: 0.0.0
    libraryPathDependencies: codeql/cpp-all
    

    有关为何需要添加qlpack.yml文件的更多信息,请参阅“使用 CodeQL 包自定义分析”。

选项 3:打开包含提取的 CodeQL CLI 归档文件的目录

注意

对于此选项,您需要设置 CodeQL CLI。有关更多信息,请参阅“设置 CodeQL CLI”。

在 VS Code 中,打开您提取 CodeQL CLI .zip 归档文件以创建 CodeQL 目录(例如codeql-home)的目录。