跳至主要内容

在 CodeQL 配置文件中指定命令选项

您可以将默认命令选项保存在 CodeQL 配置文件中。

谁可以使用此功能?

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

关于在 CodeQL 配置文件中指定命令选项

您可以将默认选项或常用选项保存在每个用户的配置文件中。

您可以通过两种方式指定 CodeQL CLI 命令选项

  • 直接在命令行中使用相应的标志。
  • 在 CodeQL 每次执行命令时都会搜索相关选项的配置(或 `config`)文件中。

对于每次执行命令时都可能更改的选项,在命令行上指定值是在将信息传递给 CodeQL 的最方便的方法。在 `config` 文件中保存选项是指定常用选项的好方法。这也是将经常使用的自定义 CodeQL 包添加到搜索路径的好方法。

使用 CodeQL 配置文件

您需要将 `config` 文件保存在您的主目录(Linux 和 macOS)或用户配置文件(Windows)目录下的 `.config/codeql/` 子目录中。例如,`$HOME/.config/codeql/config`。

指定选项的语法如下:

<command> <subcommand> <option> <value>

要将相同的选项应用于多个命令,您可以:

  • 省略 `<subcommand>`,这将为每个相关的 `<subcommand>` 指定选项。
  • 同时省略 `<command>` 和 `<subcommand>`,这将为每个相关的 `<command>` 和 `<subcommand>` 全局指定选项。

注意

  • `config` 文件只接受选项标志和值之间的空格 — 如果您使用 `=` 指定选项值,CodeQL 将抛出错误。
  • 如果在命令行中指定选项,则会覆盖为该选项定义的 `config` 值。
  • 如果要为 `<command>`、`<subcommand>` 或全局指定多个选项,请每个选项使用一行。

示例

  • 要将 `codeql database analyze` 生成的所有分析结果输出为 CSV 格式,您需要指定:

    database analyze --format csv
    

    在这里,您必须指定命令和子命令,以防止在 `database analyze` 期间执行的任何低级命令都传递相同的 `--format` 选项。

  • 要定义在运行 CodeQL 命令时使用的 RAM(4096 MB)和线程数(4),请分别指定以下内容:

    --ram 4096
    --threads 4
    
  • 要全局指定 CodeQL 用于扫描 CodeQL 包的目录(不是安装目录的同级目录),请使用:

    --search-path <path-to-directory>