Skip to main content

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

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

谁可以使用此功能?

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

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

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

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

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

对于每次执行命令时可能会更改的选项,在命令行上指定值是将信息传递给 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> 或全局指定多个选项,请为每个选项使用一行。

示例

  • 若要以 CSV 格式输出由 codeql database analyze 生成的所有分析结果,需要指定以下内容:

    database analyze --format csv
    

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

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

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

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