此内容描述了 CodeQL CLI 的最新版本。有关此版本的更多信息,请参阅 https://github.com/github/codeql-cli-binaries/releases。
要在较早版本中查看此命令可用的选项的详细信息,请在终端中使用 --help
选项运行该命令。
概要
codeql database finalize [--dbscheme=<file>] [--threads=<num>] [--ram=<MB>] <options>... -- <database>
codeql database finalize [--dbscheme=<file>] [--threads=<num>] [--ram=<MB>] <options>... -- <database>
描述
[内部实现] 数据库创建的最后步骤。
完成使用 codeql database init 创建并随后使用 codeql database trace-command 使用分析数据填充的数据库。在可以查询新数据库之前,需要执行此操作。
选项
主要选项
<database>
[必填] 正在构建的 CodeQL 数据库的路径。这必须已使用 codeql database init 准备好进行提取。
如果给出 --db-cluster
选项,则它本身不是数据库,而是一个_包含_数据库的目录,所有这些数据库将一起处理。
--[no-]db-cluster
指示命令行上给出的目录本身不是数据库,而是一个_包含_一个或多个正在构建的数据库的目录。这些数据库将一起处理。
--additional-dbs=<database>[:<database>...]
[高级] 正在构建的其他 CodeQL 数据库的路径。这些本身不会被完成,但它们的数据将包含在正在创建的已完成数据库中。这是一个高级选项,在所有情况下可能不会产生预期的效果。有关更多信息,请参阅 codeql database import 的文档。
如果给出 --db-cluster
选项,则预期这些将是数据库集群而不是单个 CodeQL 数据库。
(注意:在 Windows 上,路径分隔符是 ;
)。
--no-cleanup
[高级] 抑制完成后的所有数据库清理。用于调试目的。
--no-pre-finalize
[高级] 跳过活动 CodeQL 提取器指定的任何预完成脚本。
--[no-]skip-empty
[高级] 如果数据库为空(因为在构建过程中没有看到任何源代码),则输出警告而不是失败。空数据库将保持未完成状态。
控制 TRAP 导入操作的选项
-S, --dbscheme=<file>
[高级] 覆盖自动检测到的 dbscheme 定义,假设 TRAP 文件符合该定义。通常,这是从数据库的提取器中获取的。
-j, --threads=<num>
为导入操作使用这么多线程。
默认为 1。您可以传递 0 以对机器上的每个核心使用一个线程,或者传递 -N 以保留 N 个核心未使用(但仍然至少使用一个线程)。
-M, --ram=<MB>
为导入操作使用这么多内存。
低级数据集清理选项
--max-disk-cache=<MB>
设置中间查询结果的磁盘缓存可以使用的最大空间量。
如果没有明确配置此大小,评估器将尝试使用基于数据集大小和查询复杂性的“合理”缓存空间量。明确设置高于此默认用量的限制将启用其他缓存,这可以加快以后的查询速度。
--min-disk-free=<MB>
[高级] 设置文件系统上空闲空间的目标量。
如果未给出--max-disk-cache
,则当文件系统上的空闲空间低于此值时,评估器将努力减少磁盘缓存使用。
--min-disk-free-pct=<pct>
[高级] 设置文件系统上空闲空间的目标比例。
如果未给出--max-disk-cache
,则当文件系统上的空闲空间低于此百分比时,评估器将努力减少磁盘缓存使用。
--cache-cleanup=<mode>
选择清理缓存的力度。选项包括:
clear
:删除整个缓存,将其修剪到新提取数据集的状态。
trim
(默认):修剪所有内容,除了明确“缓存”的谓词。
fit
:只需确保遵守磁盘缓存的已定义大小限制,删除尽可能多的中间文件。
--cleanup-upgrade-backups
删除数据库升级产生的任何备份目录。
导入TRAP的检查选项
--[no-]check-undefined-labels
[高级] 报告未定义标签的错误。
--[no-]check-unused-labels
[高级] 报告未使用标签的错误。
--[no-]check-repeated-labels
[高级] 报告重复标签的错误。
--[no-]check-redefined-labels
[高级] 报告已重新定义标签的错误。
--[no-]check-use-before-definition
[高级] 报告在定义之前使用的标签的错误。
--[no-]fail-on-trap-errors
[高级] 如果在 TRAP 导入期间发生错误,则退出非零值。
--[no-]include-location-in-star
[高级] 构造编码其来源TRAP文件位置的实体ID。这对于调试TRAP生成器很有用,但会占用数据集的大量空间。
--[no-]linkage-aware-import
[高级] 控制codeql 数据集导入 是否是链接感知的(默认)。在数据库创建的这一部分消耗过多内存的项目上,禁用此选项可以帮助它们取得进展,但代价是数据库的完整性。
自v2.15.3
版本起可用。
常用选项
-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
版本起可用。