# 解决拉取请求中的阻塞

找出并解决拉取请求中因代码质量或覆盖率阈值未达标而导致的阻碍，以便合并所做的更改。

## 了解拉取请求被阻止的原因

仓库管理员和组织所有者可以使用 GitHub Code Quality 设置质量门禁。 当你创建拉取请求时，检查会自动运行以根据这些标准评估您的更改。

有两种类型的块：

* **代码质量发现**：更改引入了低于所需质量阈值的问题。
* **覆盖率阈值**：更改会导致代码覆盖率低于所需的最小值，或者导致代码覆盖率相对于默认分支的允许数量下降超过允许的量。

这些检查有助于保持健康、可维护的代码库，并防止技术债务累积。

## 解决代码质量调查结果中的阻止问题

如果你的拉取请求引入了未达到所需质量阈值的代码，你会在拉取请求底部的“Checks”部分看到一条阻止合并的横幅提示：“合并被阻止：检测到代码质量问题。”

![拉取请求的“检查”部分中合并块横幅的屏幕截图。](/assets/images/help/code-quality/code-quality-merge-block.png)

由您的仓库管理员或组织所有者设置的质量门规定了**会阻止合并的最低严重级别**。 在合并之前，必须修复或消除该严重级别或更高级别的所有发现。 如果阻止合并操作横幅未指定严重性级别，则存储库需要解决**所有调查结果**问题。

要取消阻止拉取请求，您需要修复或忽略达到或超过阻止严重性的调查结果：

1. 查看 `github-code-quality[bot]` 在你的拉取请求中留下的评论。 每个注释都按严重性（**错误**、 **警告**、 **注释**）进行标记。
2. 修复或消除相关发现。 有关详细说明，请参阅“[修复拉取请求中的代码质量问题](/zh/code-security/how-tos/maintain-quality-code/fix-pr-findings)”。
3. 验证拉取请求的“检查”部分中是否不再显示阻止合并操作横幅。

## 解决覆盖率阈值阻塞问题

如果您的拉取请求被覆盖率阈值规则阻止，那么您将在“检查”部分中看到阻止合并操作横幅，其中包含一条消息，描述了未达到哪个阈值。 例如：

* “行覆盖率 22.0% 低于最小值 50.0%”：你的拉取请求分支上的行覆盖率低于规则集中配置的最小行覆盖率百分比。
* “行覆盖率降低了 2.5%，允许的最大降幅为 1.0%”：你所做的更改导致行覆盖率相对于默认分支的下降幅度超过了允许范围。

若要取消阻止拉取请求，需要添加或修改测试，以便执行更多代码库行：

1. 查看拉取请求的覆盖率摘要注释，以确定哪些文件或区域缺少覆盖范围。
2. 添加或更新测试以增加线路覆盖率。
   Copilot 可以帮助你编写和更新测试。 请参阅“[测试代码](/zh/copilot/tutorials/copilot-cookbook/testing-code)”。
3. 推送更改。 覆盖率检查将自动重新运行。

## 后续步骤

* [修复代码库待办事项中的代码质量问题](/zh/code-security/how-tos/maintain-quality-code/fix-backlog-findings)