跳至主要内容

测试查询帮助文件

您可以使用 CodeQL CLI 将查询帮助文件预览为 Markdown,并确保它们有效。

谁可以使用此功能?

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

关于测试查询帮助文件

通过将查询帮助文件呈现为 Markdown 来测试它们,以确保在将它们上传到 CodeQL 代码库或在代码扫描中使用它们之前它们有效。

查询帮助是伴随查询的文档,用于解释查询的工作原理,以及提供有关查询标识的潜在问题的信息。为所有新查询编写查询帮助是一种良好的实践。有关更多信息,请参阅 CodeQL 代码库中的 为 CodeQL 作出贡献

CodeQL CLI 包含一个用于测试查询帮助并将其内容呈现为 markdown 的命令,以便您可以轻松地在 IDE 中预览内容。在将查询帮助文件上传到 CodeQL 代码库或与其他用户共享之前,使用此命令验证查询帮助文件。从 CodeQL CLI 2.7.1 开始,您还可以将 markdown 呈现的查询帮助包含在 CodeQL 分析期间生成的 SARIF 文件中,以便可以在代码扫描 UI 中显示查询帮助。有关更多信息,请参阅“使用 CodeQL 查询分析您的代码”。

先决条件

  • 查询帮助 (.qhelp) 文件必须具有带有相同基名的伴随查询 (.ql) 文件。
  • 查询帮助文件应遵循查询帮助文档的标准结构和样式。有关更多信息,请参阅 CodeQL 代码库中的 查询帮助样式指南

运行 codeql generate query-help

您可以通过运行以下命令来测试查询帮助文件

codeql generate query-help <qhelp|query|dir|suite> --format=<format> [--output=<dir|file>]

对于此命令,<qhelp|query|dir|suite> 必须是 .qhelp 文件的路径、.ql 文件的路径、包含查询和查询帮助文件的目录的路径或查询套件的路径。

您必须指定一个 --format 选项,该选项定义了如何呈现查询帮助。目前,您必须指定 markdown 以将查询帮助呈现为 markdown。

--output 选项定义将呈现的查询帮助保存到的文件路径。

  • 对于包含 .qhelp 文件的目录或定义一个或多个 .qhelp 文件的查询套件,您必须指定一个 --output 目录。输出目录中的文件名将从 .qhelp 文件名派生。
  • 对于单个 .qhelp.ql 文件,您可以指定一个 --output 选项。如果您没有指定输出路径,则呈现的查询帮助将写入 stdout

有关测试查询帮助文件时可以使用的所有选项的完整详细信息,请参阅“generate query-help”。

结果

运行命令时,CodeQL 会尝试渲染每个带有配套 .ql 文件的 .qhelp 文件。对于单个文件,如果未指定 --output 选项,则渲染后的内容将打印到 stdout。对于所有其他用例,渲染后的内容将保存到指定的输出路径。

默认情况下,如果出现以下情况,CodeQL CLI 将打印警告消息:

  • 任何查询帮助无效,并附带无效查询帮助元素的描述
  • 命令中指定的任何 .qhelp 文件的基名称与其配套的 .ql 文件的基名称不同
  • 命令中指定的任何 .ql 文件的基名称与其配套的 .qhelp 文件的基名称不同

您可以通过在命令中包含 --warnings 选项来告诉 CodeQL CLI 如何处理这些警告。更多信息,请参见 "生成查询帮助."

进一步阅读