# 为拉取请求设置代码质量阈值

为拉取请求创建 Code Quality 门控，以提高合并到存储库的代码质量。

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

## 介绍

可以通过将 **“要求代码质量结果** ”分支规则添加到规则集并指定所需的严重性级别来阻止不符合代码质量标准的拉取请求。 如果拉取请求未达到此阈值，则无法合并请求。

## 先决条件

* Code Quality 已启用。 请参阅“[启用 GitHub Code Quality](/zh/code-security/code-quality/how-tos/enable-code-quality)”
* 支持的语言中的代码。 请参阅 [支持的语言](/zh/code-security/code-quality/concepts/about-code-quality#supported-languages)。

> \[!NOTE]
> 仅当存储库具有一个或多个受支持语言的代码时，阈值才会产生影响，请参阅 [启用 GitHub Code Quality](/zh/code-security/code-quality/how-tos/enable-code-quality)。

## 确认 Code Quality 在拉取请求上成功运行

在添加或更新规则集以包含 Code Quality 的阈值之前，请确认 代码质量 工作流正在运行并向拉取请求返回结果。 否则，规则集可能会阻止**所有**拉取请求的合并。

1. 打开最近的拉取请求，滚动到拉取请求底部的“检查”摘要。
2. 确认“CodeQL - 代码质量”检查已成功运行并报告其状态。

有关详细信息，请参阅“[基于 CodeQL 的代码质量分析](/zh/code-security/code-quality/reference/codeql-detection)”。

## 添加或更新规则集以包含 Code Quality

1. 导航到存储库的“设置”选项卡。
2. 在左侧边栏的“代码和自动化”下，展开 <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-repo-push" aria-label="repo-push" role="img"><path d="M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0V1.5h-8a1 1 0 0 0-1 1v6.708A2.493 2.493 0 0 1 4.5 9h2.25a.75.75 0 0 1 0 1.5H4.5a1 1 0 0 0 0 2h4.75a.75.75 0 0 1 0 1.5H4.5A2.5 2.5 0 0 1 2 11.5Zm12.23 7.79h-.001l-1.224-1.224v6.184a.75.75 0 0 1-1.5 0V9.066L10.28 10.29a.75.75 0 0 1-1.06-1.061l2.505-2.504a.75.75 0 0 1 1.06 0L15.29 9.23a.751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018Z"></path></svg> **规则**，然后单击“规则集”\*\*\*\*。
3. 如果还没有用于保护默认分支的规则集，请展开 **“新建规则集** ”，然后单击“ **新建分支规则集**”。 或者，打开默认分支的现有规则集并移动到步骤 5。
4. 如果要创建新的规则集：
   * 定义规则集的名称。
   * 将“强制状态”设置为“活动”。
   * 在“目标分支”下，添加“包括默认分支”的目标。
5. 在“分支规则”下，启用“要求代码质量结果”。
6. 设置“严重级别”以定义拉取请求合并到默认分支之前必须解决的代码质量结果的最低严重级别。 例如：
   * 将“错误”设置为阻止含有未解决代码质量**错误**的拉取请求合并。
   * 设置“警告及以上”以阻止包含未解决的代码质量**警告**或**错误**的拉取请求合并。
   * 设置“注释和更高”以阻止未解析的代码质量**注释**、**警告**或**错误**的拉取请求被合并。
   * 设置“All”以阻止包含**任何**未解决的代码质量问题的拉取请求被合并。
7. 完成定义或编辑规则集后，单击“ **创建** ”或“ **保存更改**”。

## 后续步骤

了解 GitHub Code Quality 如何在拉取请求上工作，以防止代码质量问题进入默认分支。 请参阅“[在合并拉取请求之前修复代码质量问题](/zh/code-security/code-quality/tutorials/fix-findings-in-prs)”。