Agent Skills
返回列表
💻

SonarQube PR 门禁

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/sonarqube-pr-gate-skill。

技能介绍

要解决的问题

Pull Request 合并前的代码质量检查,常常停留在“CI 绿了就合”的层面。SonarQube 虽然已经算出了 quality gate 结果,但这个结论往往只躺在 Web 界面里,并没有真正卡住合并动作。结果就是:重复代码、代码异味、覆盖率不足这些问题被反复合入主干,修复成本越拖越高。

核心能力与工作方式

@user_3c6cb52e/sonarqube-pr-gate-skill 做的事情,是把 SonarQube 的质量门禁结论直接挂到 PR 流程上,让“检查不通过就不许合并”成为可执行的硬约束。

它的关键步骤是:

  • 调用 SonarQube Web API 的 /api/qualitygates/project_status,拉取当前项目的门禁状态;
  • 对代码异味、重复率、覆盖率阈值等维度逐一判断,只要有一项不达标,就拦截这次合并;
  • 通过 GitHub Checks API 把问题以 inline annotations 的形式贴回 PR 的具体代码行上,让评审者直接看到哪几行引入了问题。

相比只在 PR 描述里贴一张静态报告,内联注释让作者和 reviewer 都能在讨论上下文里定位问题。

适用边界与注意点

  • 本机必须能直接调用 Native Git,且已加入 PATH,否则技能无法驱动仓库操作;
  • 如果改动涉及 UI 部分,需要额外克隆 sonarqube-webapp 仓库,在其中完成修改和本地构建,再通过 WEBAPP_BUILD_PATH 环境变量让 SonarQube 主仓库使用这个构建产物;
  • 构建侧依赖 Java 17 和 npm,缺一不可;
  • 只想快速构建、暂时不想跑测试时,可以在 gradle 命令后加 -x test 跳过,但这不适用于需要完整验证的 PR。

使用场景

  • 在 GitHub PR 上做合并评审,需要确认 SonarQube 质量门禁是否通过,并对失败项添加行内注解
  • 编写 CI 工作流,要求代码异味、重复或覆盖率阈值不达标时阻止当前 PR 被合并
  • 维护 SonarQube 仓库并涉及 webapp UI 改动,需要先在 webapp 仓库完成改动和构建,再回到主仓库继续构建
  • 在缺少测试依赖或想跳过测试的场景下,使用 `-x test` 构建 SonarQube 相关项目以验证编译结果

适合人员

  • 维护 SonarQube 或其相关工具仓库的后端工程师,需要在 PR 合并前执行质量门禁检查
  • 搭建或调整 CI/CD 流水线的工程师,需要把 SonarQube 质量门禁与 GitHub PR 检查状态打通
  • 负责 SonarQube webapp UI 改动的前端或全栈工程师,需要按仓库要求分别构建 webapp 和主项目
  • 参与 SonarQube 项目构建配置的开发者,需要处理 Java、npm、Gradle 和测试开关等构建要求