Skip to main content

database index-files

[Plumbing] 使用给定的 CodeQL 提取程序为独立文件编制索引。

谁可以使用此功能?

CodeQL 可用于以下存储库类型:

本文内容

注意

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

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

摘要

Shell
codeql database index-files --language=<lang> [--threads=<num>] [--ram=<MB>] [--extractor-option=<extractor-option-name=value>] <options>... -- <database>

说明

[Plumbing] 使用给定的 CodeQL 提取程序为独立文件编制索引。

此命令选择指定工作目录下的一组文件,并对它们应用给定的提取程序。 默认情况下,会选中所有文件。 典型的调用将指定用于限制包含的文件集的选项。

--include--exclude--prune 选项都采用 glob 模式,这些模式可使用以下通配符:

  • 单个“?”匹配除正斜杠/反斜杠以外的任何字符;
  • 单个“*”匹配除正斜杠/反斜杠以外的任何数量的字符;
  • 模式“**”匹配零个或多个完整的目录组件。

选项

主要选项

<database>

[必需] 正在构建的 CodeQL 数据库的路径。 必须准备好此选项,以便使用 codeql database init 进行提取。

-l, --language=<lang>

[必需] 应该用于为匹配文件编制索引的提取程序。

-j, --threads=<num>

要求提取程序使用此数量的线程。 此选项作为建议传递给提取程序。 如果设置了 CODEQL_THREADS 环境变量,则环境变量值优先于此选项。

可以传递 0 以在计算机上对每个核心都使用一个线程,也可以传递 -N 以将 N 个核心保留为未使用状态(仍至少使用一个线程的情况除外) 。

-M, --ram=<MB>

要求提取程序使用此内存量。 此选项作为建议传递给提取程序。 如果设置了 CODEQL_RAM 环境变量,则环境变量值优先于此选项。

--working-dir=<dir>

[高级] 应在其中执行指定命令的目录。 如果未提供此参数,则会在传递给 codeql database create--source-root 的值(若存在)中执行命令。 如果未提供任何 --source-root 参数,则会在当前工作目录中执行命令。

用于控制提取程序行为的选项

-O, --extractor-option=<extractor-option-name=value>

设置 CodeQL 提取程序的选项。 extractor-option-name 应采用这种形式:extractor_name.group1.group2.option_name or group1.group2.option_name。 如果 extractor_option_name 以提取程序名称开头,则指示的提取程序必须声明选项 group1.group2.option_name。 否则,声明选项 group1.group2.option_name 的任何提取程序都将设置该选项。 value 可以是不包含换行符的任何字符串。

可以重复使用此命令行选项来设置多个提取程序选项。 如果为同一提取程序选项提供多个值,则行为取决于提取程序选项所需的类型。 字符串选项将使用提供的最后一个值。 数组选项将按顺序使用提供的所有值。 使用此命令行选项指定的提取程序选项在通过 --extractor-options-file 给定的提取程序选项之后进行处理。

传递给 codeql database initcodeql database begin-tracing 时,选项将仅应用于间接跟踪环境。 如果工作流还调用 codeql database trace-command,则还需根据需要传递选项。

有关 CodeQL 提取程序选项的详细信息,包括如何列出每个提取程序声明的选项,请参阅 https://codeql.github.com/docs/codeql-cli/extractor-options

--extractor-options-file=<extractor-options-bundle-file>

指定提取程序选项捆绑文件。 提取程序选项捆绑文件是设置提取程序选项的 JSON 文件(扩展名为 .json)或 YAML 文件(扩展名为 .yaml.yml)。 该文件必须具有顶级映射键“extractor”,并且其下必须具有作为二级映射键的提取程序名称。 进一步的映射级别表示嵌套的提取程序组,字符串和数组选项是具有字符串和数组值的映射条目。

按指定的顺序读取提取程序选项捆绑文件。 如果不同的提取程序选项捆绑文件指定了相同的提取程序选项,则行为取决于提取程序选项所需的类型。 字符串选项将使用提供的最后一个值。 数组选项将按顺序使用提供的所有值。 使用此命令行选项指定的提取程序选项在通过 --extractor-option 给定的提取程序选项之前进行处理。

传递给 codeql database initcodeql database begin-tracing 时,选项将仅应用于间接跟踪环境。 如果工作流还调用 codeql database trace-command,则还需根据需要传递选项。

请参阅 https://codeql.github.com/docs/codeql-cli/extractor-options 以了解有关 CodeQL 提取程序选项的详细信息,包括如何列出每个提取程序声明的选项。

用于限制已编制索引的文件集的选项

--include-extension=<.ext>

在搜索目录树中包含具有给定扩展名的所有文件。 通常,应在扩展名前面添加圆点。 例如,传递 --include-extension .xml 将包括扩展名为“.xml”的所有文件。 此选项与已否定的 --include 选项不兼容。

--include=<glob>

使用搜索目录中每个文件和目录的相对路径,在搜索目录树中包含与给定 glob 匹配的所有文件和目录。 如果 glob 以 ! 字符开头,则改为排除匹配的文件和目录。

--include 选项按顺序处理,后面的选项覆盖前面的选项。 例如,--include ** --include !sub/*.ts --include sub/main.* 将包含 sub/main.ts(因为它被 sub/main.* 包含在内),排除 sub/index.ts(因为它被 !sub/*.ts 排除在外),并包含 sub/test.js(因为它被 ** 包含在内,随后又不被排除在外。)

--also-match=<glob>

使用搜索目录中每个文件和目录的相对路径,要求所有结果也匹配给定的 glob。 此选项的结构和解释与 --include 相同,但它指定与 --include 一起应用的单独 glob 序列。

--exclude=<glob>

使用搜索目录中每个文件和目录的相对路径,排除与给定 glob 匹配的所有文件和目录。 此选项将覆盖所有 include 选项。 此选项与已否定的 --include 选项不兼容。

--prune=<glob>

使用搜索目录中每个文件和目录的相对路径,排除与给定 glob 匹配的所有文件和目录。 此选项将覆盖所有 include 选项。 此选项与已否定的 --include 选项不兼容。

--size-limit=<bytes>

排除大小超过给定限制的所有文件。 大小限制以字节为单位,或者单位是后缀为“k”的千字节 (KiB)、后缀为“m”的兆字节 (MiB) 和后缀为“g”的千兆字节 (GiB)。 此选项将覆盖所有 include 选项。

--total-size-limit=<bytes>

如果所有已解析文件的组合大小超过给定限制,则退出命令并显示错误。 大小限制以字节为单位,或者单位是后缀为“k”的千字节 (KiB)、后缀为“m”的兆字节 (MiB) 和后缀为“g”的千兆字节 (GiB)。

遵循指向其目标的任何符号链接。

--[no-]find-any

最多查找一个匹配项(而不是所有匹配项)。

v2.11.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 起可用。

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy