关于在 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>