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 文件(maingithub/codeql 分支已具有这些文件)。 这会告知 CodeQL CLI 该目录的目标语言及其依赖项。 CodeQL 将查找所有打开的工作区目录中或用户搜索路径中的依赖项。

    例如,若要使自定义的CodeQL目录my-custom-cpp-pack依赖于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中,打开提取 .zip 存档的 CodeQL CLI 目录以创建 CodeQL 目录(例如 codeql-home)。