# CodeQL 查询套件

可以从不同的内置 CodeQL 查询套件中进行选择，以在 CodeQL code scanning设置中使用。

## 什么是查询套件？

使用查询套件，可将多个查询传递给 CodeQL，而无需单独指定每个查询文件的路径。 它们提供了一种根据文件名、元数据属性或磁盘上或 CodeQL 包中的位置选择查询的方法。

对于要在 CodeQL 分析中频繁使用的查询，应使用查询套件。 可以使用 GitHub 提供的内置查询套件，也可以创建自己的查询套件。

## 内置 CodeQL 查询套件

内置 CodeQL 查询套件 `default` 和 `security-extended` 由 GitHub 创建和维护。 这两个查询套件都可以为每种 CodeQL 支持的语言提供默认设置。

组织所有者和安全经理可以推荐一个查询套件，以便在整个组织中使用默认设置。 有关详细信息，请参阅“[配置大规模代码扫描的默认设置](/zh/enterprise-server@3.20/code-security/code-scanning/enabling-code-scanning/configuring-default-setup-for-code-scanning-at-scale)”。

有关每个语言的每个查询套件中包含的查询的完整列表，请参阅 [CodeQL 分析查询](/zh/enterprise-server@3.20/code-security/code-scanning/reference/code-ql-built-in-queries)。

###

```
          `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 配置高级设置。 有关详细信息，请参阅“[配置代码扫描的高级设置](/zh/enterprise-server@3.20/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/configuring-advanced-setup-for-code-scanning)”。

查询套件定义存储在扩展名为 `.qls` 的 YAML 文件中。 套件定义是一系列指令，其中每条指令都是带有（通常）单个键的 YAML 映射。 指令按它们在查询套件定义中的显示顺序执行。 执行套件定义中所有指令后，结果为一组选定的查询。 有关详细信息，请参阅“[创建 CodeQL 查询套件](/zh/enterprise-server@3.20/code-security/tutorials/customize-code-scanning/creating-codeql-query-suites)”。

## 延伸阅读

* ```
          [AUTOTITLE](/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/creating-codeql-query-suites)
  ```