通过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 "http://localhost:9000/api/issues/search?componentKeys=${projectKey}&types=BUG&severities=BLOCKER,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)

print data['total']

然后在shell中直接调用上面的脚本获取数据,并标记job的成功和失败:

totalBugNo=`python parseScanReport.py`
if [ $totalBugNo > 0 ]; then
    echo "BLOCKER&CRITICAL&MAJOR bug number is: $totalBugNo"
    exit -1
fi

记录之。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值