查询套件是什么?
查询套件允许您将多个查询传递给 CodeQL,而无需单独指定每个查询文件的路径。它们提供了一种基于文件名、元数据属性或磁盘上或 CodeQL 包中的位置来选择查询的方法。
对于您希望在 CodeQL 分析中频繁使用的查询,应该使用查询套件。您可以使用 GitHub 提供的内置查询套件,也可以自行创建。
内置 CodeQL 查询套件
内置的 CodeQL 查询套件 default 和 security-extended 由 GitHub 创建并维护。这两个查询套件在每种受 CodeQL 支持的语言的默认设置中均可使用。
组织所有者和安全管理员可以在整个组织中推荐使用默认设置的查询套件。如需了解更多信息,请参阅 大规模配置代码扫描的默认设置。
要查看每种语言中每个查询套件包含的完整查询列表,请参阅 CodeQL 分析的查询。
default 查询套件
default查询套件是 GitHub 上 CodeQL 代码扫描默认运行的一组查询。default查询套件中的查询精确度很高,产生的误报代码扫描结果很少。与security-extended查询套件相比,default套件返回的低置信度代码扫描结果更少。- 此查询套件可在代码扫描的默认设置中使用。
security-extended 查询套件
security-extended查询套件包括default查询套件中的所有查询,以及一些精确度和严重性稍低的额外查询。- 与
default查询套件相比,security-extended套件可能会返回更多的误报代码扫描结果。 - 此查询套件可在代码扫描的默认设置中使用,在 GitHub 上也称为“Extended”查询套件。
自定义查询套件
要使用自定义查询套件,必须为 CodeQL 代码扫描配置高级设置。如需了解更多信息,请参阅 配置代码扫描的高级设置。
查询套件定义存储在扩展名为 .qls 的 YAML 文件中。套件定义是一系列指令,每个指令是一个(通常只有单个键的)YAML 映射。指令会按照它们在查询套件定义中出现的顺序执行。所有指令执行完毕后,结果是一组已选中的查询。如需了解更多信息,请参阅 创建 CodeQL 查询套件。