# 基于 CodeQL 的代码质量分析

有关 Code Quality 的 CodeQL 支持的分析如何工作、使用的工作流以及拉取请求报告的状态检查的信息。

> \[!NOTE]
> GitHub Code Quality 当前正处于 公共预览版 阶段，并可能会发生变化。
> 在 公共预览版期间，Code Quality 不会计费，尽管 Code Quality 扫描将使用 GitHub Actions 分钟。

## CodeQL 支持的分析

```
          Code Quality 使用 CodeQL 对拉取请求和默认分支进行基于规则的分析。
```

* **默认分支**的结果显示在存储库“常规发现”仪表板下的 **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-shield" aria-label="shield" role="img"><path d="M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg> Security and quality** 选项卡下。

* ```
          **拉取请求**的结果以`github-code-quality[bot]`的注释形式显示。

          Copilot自动修复 针对发现提供建议（如有可能）。
  ```

### 支持语言的查询列表

每个 Code Quality 规则都编写为 CodeQL 中的查询，并使用 GitHub Actions 运行。

规则由 GitHub 和开源开发人员不断完善。

* ```
          [AUTOTITLE](/code-security/code-quality/reference/codeql-queries/csharp-queries)
  ```
* ```
          [AUTOTITLE](/code-security/code-quality/reference/codeql-queries/go-queries)
  ```
* ```
          [AUTOTITLE](/code-security/code-quality/reference/codeql-queries/java-queries)
  ```
* ```
          [AUTOTITLE](/code-security/code-quality/reference/codeql-queries/javascript-queries)
  ```
* ```
          [AUTOTITLE](/code-security/code-quality/reference/codeql-queries/python-queries)
  ```
* ```
          [AUTOTITLE](/code-security/code-quality/reference/codeql-queries/ruby-queries)
  ```

有关项目的详细信息 CodeQL ，请参阅 <https://codeql.github.com/>。

## 用于代码质量分析的工作流

可以在存储库的“操作”选项卡上看到 Code Quality 的所有工作流运行。\*\*\*\* 动态工作流称为“代码质量”。

默认情况下，工作流 代码质量 在标准 GitHub 运行程序上运行，但你可以配置为 Code Quality 使用具有特定标签的运行程序。 这些可以由 GitHub 或自托管。

如果组织配置了专用注册表的缓存，这些注册表将可用于代码质量分析，以用于解析依赖项。

有关详细信息，请参见:

* ```
          [AUTOTITLE](/code-security/code-quality/how-tos/enable-code-quality)
  ```
* ```
          [AUTOTITLE](/code-security/securing-your-organization/enabling-security-features-in-your-organization/giving-org-access-private-registries#code-quality-access-to-private-registries)
  ```

## 拉取请求状态检查

当对拉取请求运行代码质量分析时，"CodeQL - 代码质量 / Analyze" 检查显示在拉取请求底部的“检查”部分。

由扫描识别的任何代码问题都在合并请求的注释中报告。 评论由 `github-code-quality[bot]` 提出，并包含 Copilot自动修复 的建议。

### 状态验证失败

工作流无法运行。 例如，你的 Actions 分钟数预算已用尽。 请参阅 [查看日志来诊断故障](/zh/enterprise-cloud@latest/actions/how-tos/monitor-workflows/use-workflow-run-logs#viewing-logs-to-diagnose-failures)。

### 合并被阻止：检测到代码质量问题

扫描发现代码中的问题超出了存储库的代码质量分支规则设置的质量门。 在合并拉取请求之前，您需要解决这些问题。 请参阅“[解决拉取请求中的阻塞](/zh/enterprise-cloud@latest/code-security/code-quality/how-tos/unblock-your-pr)”。