设置 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
文件(github/codeql
的main
分支中已经存在这些文件)。这会告诉 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
)的目录。