代码规范检测,是对代码的可靠性、安全性、可维护性、代码重复率、代码量大小进行检测和评判,生成质量报告,反馈给开发人员进行代码优化。
该解决方案使用SonarQube作为核心检测工具,通过1
开发人员push/merge代码=》2
执行SonarQube代码规范检测=》3
企业微信通知=》4
反馈开发人员代码检测结果,形成闭环。
整个解决方案刚刚实施,使用软校验的形式进行代码检测,对不规范的代码不强制限制提交,起督促监督作用。后期可针对重点项合理划分检测阈值,逐步提升至硬校验。
后端开发人员push/merge代码到dev
分支时,触发gitlab-ci,启动gitlab-runner执行gitlab-ci.yml脚本,执行sonar-scanner代码规范扫描命令,扫描结果推送至SonarQube(可在Web-UI界面查看检测结果详情),检测结束之后触发SonarQube-WebHooks发送统计结果到PushMessageServer服务,解析转换Json结果集并调用企业微信机器人通知Rest Api,对检测结果进行消息推送至企业微信。开发人员可以通过消息链接看到SonarQube-Web-UI的详细检测结果。
image.png
合计388条规则
image.png
阈值可配置,暂时针对代码可靠性(A)-bugs,代码安全性(A)-漏洞,代码可维护性(异样),代码重复率(10%)。进行代码检测是否通过的评判项。
暂时只针对dev分支进行检测
不强制拒绝提交代码,软校验功能,检测不通过@人进行修改,通过只提示检测通过。但是,提交通过也不表示没有bug,有可能是严重程度没有达到阈值,需要长期关注。
针对检测项,及评判阈值,进行合理的修改。
image.png
image.png
http://192.168.102.27:9000
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png