CodeQL 文档

CodeQL 查询的元数据

元数据告诉用户有关 CodeQL 查询的重要信息。必须在查询中包含正确的查询元数据,才能在源代码中查看查询结果。

关于查询元数据

作为分析的一部分运行的任何查询都包含许多属性,称为查询元数据。元数据作为 QLDoc 注释的内容,包含在每个查询文件的顶部。此元数据告诉 CodeQL VS Code 扩展GitHub 中的代码扫描功能 如何处理查询并正确显示其结果。它还为其他用户提供有关查询结果含义的信息。有关查询元数据的更多信息,请参阅我们 GitHub 上的开源代码库 中的 查询元数据样式指南

注意

确切的元数据要求取决于你将如何运行查询。有关更多信息,请参阅“关于 CodeQL 查询”中有关查询元数据的部分。

元数据属性

以下属性受所有查询文件支持

属性 描述
@description <text> 一个句子或简短段落,用于描述查询的目的以及为什么结果有用或重要。描述以纯文本形式编写,并使用单引号 (') 将代码元素括起来。
@id <text> 由小写字母或数字组成的单词序列,用 /- 分隔,用于识别和分类查询。每个查询必须具有唯一的 ID。为了确保这一点,使用固定的结构来定义每个 ID 可能会有所帮助。例如,标准 CodeQL 查询具有以下格式:<language>/<brief-description>
@kind
problem
path-problem
标识查询是警报 (@kind problem) 还是路径 (@kind path-problem)。有关这些查询类型的更多信息,请参阅“关于 CodeQL 查询”。
@name <text> 定义查询标签的语句。名称以纯文本形式编写,并使用单引号 (') 将代码元素括起来。
@tags
correctness
maintainability
readability
security
这些标签将查询分组到广泛的类别中,以便更轻松地搜索和识别它们。除了此处列出的常见标签之外,还有一些更具体的类别。有关更多信息,请参阅 查询元数据样式指南
@precision
low
medium
high
very-high
指示查询结果中真实阳性(与假阳性结果相比)的百分比。这与 @problem.severity 属性一起确定结果在 GitHub 上的显示方式。
@problem.severity
error
warning
recommendation
定义非安全查询生成的任何警报的严重性级别。这与 @precision 属性一起确定结果在 GitHub 上的显示方式。有关更多信息,请参阅 查询元数据样式指南
@security-severity <score> 为具有 @tags security 的查询定义严重性级别,介于 0.0 到 10.0 之间。有关更多信息,请参阅 GitHub 用户文档

示例

这是标准 Java 查询之一的元数据

image0

有关查询元数据的更多示例,请参阅我们 GitHub 代码库 中的标准 CodeQL 查询。

  • ©GitHub, Inc.
  • 条款
  • 隐私