sonarQube的Api调用总结

       最近公司开发涉及到对Sonar获取数据和创建用户等操作,Sonar为我们提供了web Api,同时,在sonar5.x版本之前还贴心的为我们提供了sonar-ws-client,但是由于之后版本迭代比较快,接口差异大,sonar-ws-client在较新的版本中已不在适用。

        有人说官网上不是提供了Api么,是的,我们需要自己再封装一下,本帖为扫盲贴,大神请绕道,首先在适用api之前,我们需要知道

1:我们需要做安全校验


sonar默认采用 Basic Auth 验证,需要在请求头中带上校验信息

2:我们需要注意传参格式


sonar传参不能讲参数放在我们之前习惯的head或者body,需要我们将参数拼接在url中,不管是get还是post

下面我们看看具体实现:

this.encoding = DatatypeConverter.printBase64Binary((username+":"+password).getBytes("UTF-8"));

httpPost.setHeader("Authorization", "Basic " + this.encoding);

如此将校验信息头加上


传参格式如图所示,如此所有接口都能轻松掉通

另外由于sonar在国内信息都不多,我这里再啰嗦几句

sonar有自己的回调接口,每次完成代码检查后会调用此接口,我们只需要在sonar上配置回调地址,默认可配置10个,每个接口都能收到sonar的回调


同时注意sonar的回调入参是一个json字符串对象,我们需要以此对象去接收,只需将此格式转为对象,spring的话用如下方式接收即可

@RequestBody SonarCallBackDto sonarCallBackDto

{
     "analysedAt" "2016-11-18T10:46:28+0100" ,
     "project" : {
         "key" "org.sonarqube:example" ,
         "name" "Example"
     },
     "properties" : {
     },
     "qualityGate" : {
         "conditions" : [
             {
                 "errorThreshold" "1" ,
                 "metric" "new_security_rating" ,
                 "onLeakPeriod" true ,
                 "operator" "GREATER_THAN" ,
                 "status" "OK" ,
                 "value" "1"
             },
             {
                 "errorThreshold" "1" ,
                 "metric" "new_reliability_rating" ,
                 "onLeakPeriod" true ,
                 "operator" "GREATER_THAN" ,
                 "status" "OK" ,
                 "value" "1"
             },
             {
                 "errorThreshold" "1" ,
                 "metric" "new_maintainability_rating" ,
                 "onLeakPeriod" true ,
                 "operator" "GREATER_THAN" ,
                 "status" "OK" ,
                 "value" "1"
             },
             {
                 "errorThreshold" "80" ,
                 "metric" "new_coverage" ,
                 "onLeakPeriod" true ,
                 "operator" "LESS_THAN" ,
                 "status" "NO_VALUE"
             }
         ],
         "name" "SonarQube way" ,
         "status" "OK"
     },
     "serverUrl" "<a href="http://localhost:9000/" "="" style="border-radius: 0px; border: 0px; bottom: auto; float: none; height: auto; left: auto; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; right: auto; top: auto; vertical-align: baseline; width: auto; box-sizing: content-box; min-height: inherit; color: rgb(0, 51, 102) !important; background: 0px 50%;">http://localhost:9000" ,
     "status" "SUCCESS" ,
     "taskId" "AVh21JS2JepAEhwQ-b3u"
}

都是些简单的道理,由于官方文档不够详细,所以都琢磨了一会,希望对大家有所帮助


评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值