sonarqube使用钉钉告警

说明:因项目需求,创建的是一个Jenkins自由项目,需要sonar代码扫描通过再继续maven构建、并且不发送钉钉告警,扫描不通过则停止构建、并发送钉钉告警。

1、安装告警插件

#下载release包 /releases/dingding-sonar-1.0-SNAPSHOT.jar

wget https://gitee.com/chejiangyi/dingding-sonar/repository/archive/master.zip
unzip master.zip

#运行jar包 sonar.url为sonar安装地址

cd dingding-sonar/releases

#启动服务

nohup java -jar dingding-sonar-1.0-SNAPSHOT.jar \ --server.port=8082 \ --sonar.url=http://192.168.0.129:9000 \ > /dev/null 2 >& 1 &

#检查部署成功 sonar-project-id 为sonar的项目id:task-dev

curl http://<your dingding-sonar-server IP>:8082/?projectname={sonar-project-id}

#返回结果

bug:0,漏洞:0,坏味道:58,覆盖率:0.0,重复:0.0,状态:OK

image-20200305135649539.png

2、发送告警通知

钉钉通知发布脚本内容示例:

#!/bin/bash
projectName=task-dev
projectId=task-dev
dingdingToken=a9c7f0dff01a01cefda6af09e5d0ec068a55d755008c2f559ec2598e9f377djl    #钉钉群组创建一个自由的webhook的token
sonarreport=$(curl -s http://192.168.0.121:8082/?projectname=${projectName})
sonar=$(curl -s http://192.168.0.121:8082/?projectname=task-dev |awk -F ":" '{print $7}'|tee dev.txt)
echo "$sonar"
if [[ "$sonar" == "ERROR" ]]
then
  echo ${sonarreport}
  curl -s "https://oapi.dingtalk.com/robot/send?access_token=${dingdingToken}" -H "Content-Type: application/json"  -d "{ \"msgtype\": \"markdown\", \"markdown\": { \"title\":\"sonar代码
质量\", \"text\": \"## Sonar代码质量报告 \n
>${projectName} \n
> [sonar地址](http://192.168.0.129:9000/dashboard?id=${projectId}) \n
> ${sonarreport} \n\"
}
}"
  exit 1
else
  echo ${sonarreport}
fi

参考文章:https://www.cnblogs.com/chejiangyi/p/10844232.html

猜你喜欢

转载自blog.51cto.com/14268033/2475712