跳至主要内容

数据库导出诊断

[实验性] 导出失败分析的数据库诊断信息。

谁可以使用此功能?

CodeQL 可用于以下类型的代码库

本文内容

此内容描述了 CodeQL CLI 的最新版本。有关此版本的更多信息,请参阅 https://github.com/github/codeql-cli-binaries/releases

要在较早版本中查看此命令可用的选项详细信息,请在终端中使用 --help 选项运行该命令。

概要

Shell
codeql database export-diagnostics --format=<format> [--output=<output>] <options>... -- <database>

描述

[实验性] 导出失败分析的数据库诊断信息。

v2.12.6 起可用。

选项

主要选项

<database>

[必填] 正在构建的 CodeQL 数据库的路径。必须已准备好使用 codeql database init 进行提取。

如果给出 --db-cluster 选项,则它本身不是数据库,而是一个包含数据库的目录,所有这些数据库都将一起处理。

--format=<format>

[必填] 用于写入结果的格式。其中之一:

raw:作为 JSON 对象的原始、未解释的诊断消息列表。

sarif-latest:静态分析结果交换格式 (SARIF),一种基于 JSON 的格式,用于描述静态分析结果。此格式选项使用最新支持的版本 (v2.1.0)。此选项不适用于自动化,因为它会在不同的 CodeQL 版本之间生成不同版本的 SARIF。

sarifv2.1.0:SARIF v2.1.0。

text:诊断消息的项目符号列表。

--[no-]db-cluster

指示命令行上给出的目录本身不是数据库,而是一个包含一个或多个正在构建的数据库的目录。这些数据库将一起处理。

-o, --output=<output>

写入诊断信息的输出路径。

--sarif-exit-code=<sarifExitCode>

[仅 SARIF 格式] 失败进程的退出代码。

--sarif-exit-code-description=<sarifExitCodeDescription>

[仅 SARIF 格式] 失败进程退出的原因。

--sarif-category=<category>

[SARIF 格式] [推荐] 指定要在 SARIF 输出中包含的此分析的类别。可以使用类别来区分对同一提交和代码库执行的,但在不同语言或代码的不同部分上的多个分析。

如果您以几种不同的方式分析代码库的同一版本(例如,针对不同的语言)并将结果上传到 GitHub 以在代码扫描中显示,则此值在每次分析之间应该有所不同,这告诉代码扫描这些分析是补充而不是取代彼此。(对于代码库的不同版本,相同分析的运行之间的值应该一致。)

此值将显示为(如果尚未存在,则附加尾部斜杠)<run>.automationDetails.id 属性。

常用选项

-h, --help

显示此帮助文本。

-J=<opt>

[高级] 为运行命令的 JVM 提供选项。

(注意,包含空格的选项将无法正确处理。)

-v, --verbose

逐步增加打印的进度消息数量。

-q, --quiet

逐步减少打印的进度消息数量。

--verbosity=<level>

[高级] 显式设置详细程度级别为错误、警告、进度、进度+、进度++、进度+++ 之一。覆盖-v-q

--logdir=<dir>

[高级] 将详细日志写入给定目录中的一个或多个文件中,生成的名称包含时间戳和正在运行的子命令的名称。

(要写入名称完全受您控制的日志文件,请改用--log-to-stderr 并根据需要重定向 stderr。)

--common-caches=<dir>

[高级] 控制磁盘上缓存数据的存储位置,这些数据将在 CLI 的多次运行之间保留,例如下载的 QL 包和已编译的查询计划。如果未显式设置,则默认为用户主目录中名为.codeql 的目录;如果该目录不存在,则会创建它。

v2.15.2 版本起可用。