SonarQube 规则执行代理
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/sonarqube-rule-enforcement-agent
技能介绍
解决的问题
在合并请求阶段,代码质量检查常常依赖人工 review。即使团队引入了 SonarQube,分析结果也往往停留在仪表盘上。一旦关键的代码异味、安全热点或重复率超标,没有自动拦截手段时,这些信号很容易被忽略,最终进入主干。
核心能力
该技能通过 SonarQube Web API 与 sonar-scanner CLI 协同工作,把质量门禁嵌入拉取请求流程。核心步骤包括:
- 扫描变更代码:调用
sonar-scanner对当前分支或差异进行静态分析 - 提取质量指标:通过 Web API 获取关键异味、安全热点与重复率等指标
- 阈值判定:依据可配置的阈值,判断是否触发阻断条件
- 合并拦截:发现超标项时,直接阻止合并操作,直到问题被修复
适用边界与注意点
使用前需要确保环境具备完整依赖。根据上游文档,Native Git 必须已安装并在 PATH 中可用。构建方面要求 Java 17 和 npm,二者缺一不可。
如果贡献中包含 UI 变更,流程会更复杂。需要先克隆 sonarqube-webapp 仓库,在其中完成修改并本地构建,再通过 WEBAPP_BUILD_PATH 环境变量构建 SonarQube 主仓库。
测试环节可以通过在 gradle 命令中添加 -x test 来跳过,这在只做构建验证时比较有用。当前版本未提及对自托管实例或私有化部署的特殊适配,接入前建议先验证 API 兼容性。
使用场景
- 在GitHub合并请求中,需要自动阻断SonarQube检测到关键代码异味的分支进入主干
- 团队成员提交含高重复率代码的PR时,希望系统自动阻止合并直至问题修复完成
- CI/CD流水线集成SonarQube分析结果,自动拦截不满足质量阈值的代码合并操作
- 需要根据项目自定义规则,在拉取请求阶段强制执行SonarQube质量标准
适合人员
- 负责合并PR的开发工程师,需要在代码审查流程中自动化拦截不达标变更
- 维护项目质量标准的技术负责人,希望通过自动化门禁确保代码符合SonarQube规则
- 使用SonarQube进行代码分析的团队,需要在合并前自动阻断质量不达标的分支
- 在CI/CD流水线中集成代码质量检查的开发团队,需要实现拉取请求阶段的自动拦截