什么是查询套件?
使用查询套件,可将多个查询传递给 CodeQL,而无需单独指定每个查询文件的路径。 它们提供一种根据查询的文件名、元数据属性或磁盘上的位置或在 CodeQL 包中选择查询的方法。
您应使用查询套件来整理那些您希望在 CodeQL 分析中经常使用的查询。 可以使用 GitHub 提供的内置查询套件,也可以创建自己的查询套件。
内置 CodeQL 查询套件
内置 CodeQL 查询套件 default 和 security-extended 由 GitHub 创建和维护。 这两个查询套件在每个支持的 CodeQL 语言中都可以使用默认设置。
组织所有者和安全经理可以推荐一个查询套件,以便在整个组织中使用默认设置。 有关详细信息,请参阅“配置大规模代码扫描的默认设置”。
有关每个语言的每个查询套件中包含的查询的完整列表,请参阅 CodeQL 分析查询。
`default` 查询套件
*
default 查询套件是在 GitHub 上的 CodeQL code scanning中默认运行的一组查询。
*
default 查询套件中的查询精确度非常高,很少返回误报的code scanning结果。 相对于 security-extended 查询套件,default 套件返回的低置信度code scanning结果更少。
- 此查询套件可与 code scanning 的默认设置配合使用。
`security-extended` 查询套件
*
security-extended 查询套件包含 default 查询套件中的所有查询以及精确度和严重程度稍低的其他查询。
- 相对于
default查询套件,security-extended套件可能会返回更多误报的code scanning结果。 - 此查询套件可用于 code scanning 的默认设置,且在 GitHub 上被称为“扩展”查询套件。
自定义查询套件
要使用自定义查询套件,必须为 CodeQL code scanning 配置高级设置。 有关详细信息,请参阅“配置代码扫描的高级设置”。
查询套件定义存储在扩展名为 .qls 的 YAML 文件中。 套件定义是一系列指令,其中每条指令都是带有(通常)单个键的 YAML 映射。 指令按它们在查询套件定义中的显示顺序执行。 执行套件定义中所有指令后,结果为一组选定的查询。 有关详细信息,请参阅“创建 CodeQL 查询套件”。
延伸阅读
-
[AUTOTITLE](/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/creating-codeql-query-suites)