设置 CodeQL 工作区
可通过多种不同的方法向扩展授予对 github/codeql 存储库中的标准库和查询的访问权限:
-
使用CodeQL入门工作区,该工作区包含一系列按照
codeql-custom-queries-LANGUAGE格式命名的目录。 这些已经可以让你开始使用标准库为每种语言开发自定义查询。 还有一些示例查询可帮助你入门。 这是推荐采用的方法。 -
更新现有工作区以用于CodeQL。 建议高级用户使用此方法。
-
CodeQL CLI 用户可以打开包含其提取存档的 CodeQL CLI 目录。
选项 1:使用初学者工作区(建议)
注意
存储库 CodeQL 作为子模块包含在初学者工作区中。 应定期使用 git submodule update --remote ,使子模块保持最新状态,并确保它们与较新版本的 VS Code 扩展和 CodeQL CLI扩展保持兼容。
-
将 vscode-codeql-starter 存储库克隆到计算机。 请确保在克隆后包含子模块,可以使用
git clone --recursive或使用git submodule update --init --remote。 -
在 VS Code中,单击 “文件”,然后选择 “从文件打开工作区...”,以从工作区存储库的签出版本中打开
vscode-codeql-starter.code-workspace文件。
选项 2:更新现有工作区( CodeQL 高级)
-
在VS Code中,选择文件,点击添加文件夹到工作区...,然后找到CodeQL存储库的本地签出。
-
使用新建文件夹或将文件夹添加到工作区... 选项,为每个目标语言创建一个新目录来保存自定义查询和库。
-
在每个目标语言目录中创建一个
qlpack.yml文件(main的github/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)。