Skip to main content

设置 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)。