设置 CodeQL 工作区
可通过多种不同的方法向扩展授予对 github/codeql
存储库中的标准库和查询的访问权限:
-
使用 CodeQL 初学者工作区,其中包含一系列以格式
codeql-custom-queries-LANGUAGE
命名的目录。 你可以开始使用标准库为每种语言开发自己的自定义查询。 还有一些示例查询可帮助你入门。 这是建议的方法。 -
更新 CodeQL 的现有工作区。 建议高级用户使用此方法。
-
CodeQL CLI 用户可以打开包含其已提取的 CodeQL CLI 存档的目录。
选项 1:使用初学者工作区(建议)
Note
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 存档的目录
Note
对于此选项,需要设置 CodeQL CLI。 有关详细信息,请参阅“设置 CodeQL CLI”。
在 VS Code 中,打开提取了 CodeQL CLI .zip 存档的目录,以创建 CodeQL 目录(例如 codeql-home
)。