Skip to main content

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

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

谁可以使用此功能?

GitHub CodeQL 在安装后按用户授权。 根据许可证限制,只能将 CodeQL 用于某些任务。 有关详细信息,请参阅“关于 CodeQL CLI”。

如果你有 GitHub Advanced Security 许可证,则可以使用 CodeQL 进行自动分析、持续集成和持续交付。 有关详细信息,请参阅“关于 GitHub 高级安全性”。

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