Skip to main content

解决拉取请求中的阻塞

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

谁可以使用此功能?

具有写入访问权限的用户

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

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

有两种类型的块:

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

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

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

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

拉取请求的“检查”部分中合并块横幅的屏幕截图。

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

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

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

解决覆盖率阈值阻塞问题

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

  • “覆盖率 22.0% 低于最低要求 50.0%”:你的拉取请求分支覆盖率低于规则集中配置的最低覆盖率百分比。
  • “覆盖率下降了 2.5%,最大允许下降为 1.0%”:你的更改导致覆盖率相对于默认分支的降幅超过了允许范围。

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

  1. 查看拉取请求的覆盖率摘要注释,以确定哪些文件或区域缺少覆盖范围。
  2. 添加或更新测试以提高执行覆盖率。 Copilot 可以帮助你编写和更新测试。 请参阅“测试代码”。
  3. 推送更改。 覆盖率检查将自动重新运行。

后续步骤