通过Shell命令调⽤api获取sonarQube中代码静态扫描结果中的bug数据
通过Shell命令调⽤api获取sonarQube中代码静态扫描结果中的bug数据
问题由来
公司质量管理部制定了⼀个临时的静态代码扫描通过标准,就是要求静态代码扫描结果中BLOCKER, CRITICAL, MAJOR级别的bug数为0即可。 因为评价标准特殊,不能直接使⽤jenkins的插件sonar-quality-gates-plugin来直接判定job的失败,原因是SonarQube中质量标准⽆法配置出来上⾯三个bug类型。 所以只能通过api调⽤来获取上述数据。
解决⽅案
调⽤下⾯的api接⼝获取扫描结果中的BLOCKER,CRITICAL,MAJOR级别的bug数量。
-u:参数后⾯跟的是sonarQube访问的token;
curl -u 280f41fec8336367e189a79e9aeb077a1497130a "localhost:9000/api/issues/search?componentKeys=${projectKey}&types=BUG&severities=B LOCKER,CRITICAL,MAJOR&resolved=false"|tee report.json
获取到数据后,将数据输⼊到report.json⽂件中,下⾯还需要写个简单的脚本解析这个report来获取我们希望的数据。⽅便起见,就⽤python了:
cat parseScanReport.py
#!/usr/bin/python
import json
with open('report.json', 'r') as f:
data = json.load(f)
shell代码print data['total']
然后在shell中直接调⽤上⾯的脚本获取数据,并标记job的成功和失败:
totalBugNo=`python parseScanReport.py`
if[$totalBugNo> 0 ];then
echo"BLOCKER&CRITICAL&MAJOR bug number is: $totalBugNo"
exit -1
fi
记录之。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论