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