Sonarqube Webhook自定义参数

Posted june

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sonarqube Webhook自定义参数相关的知识,希望对你有一定的参考价值。

在sonarqube系统中,可以通过webhook实现代码分析结果的通知。比如我们希望将分析结果发送到钉钉群,那么可以新建一个web应用,编写发送消息到钉钉群的逻辑,然后提供一个http接口,设置到sonarqube的webhook中。这样,当sonarqube分析完代码,会调用设置的http接口。这样就实现了代码质量分析结果通知到钉钉群的功能。

jenkins执行命名示例

mvn clean compile -Dmaven.test.failure.ignore=true \\
sonar:sonar -Dsonar.host.url=http://10.0.0.1:9000 -Dsonar.login=xxxxxxx

sonarqube分析结果json示例

{
    "serverUrl": "http://localhost:9000",
    "taskId": "AVh21JS2JepAEhwQ-b3u",
    "status": "SUCCESS",
    "analysedAt": "2016-11-18T10:46:28+0100",
    "revision": "c739069ec7105e01303e8b3065a81141aad9f129",
    "project": {
        "key": "myproject",
        "name": "My Project",
        "url": "https://mycompany.com/sonarqube/dashboard?id=myproject"
    },
    "branch": {
        "name": "master",
        "url": "http://10.0.0.10:9000/dashboard?id=xxxx
    },
    "properties": {
    },
    "qualityGate": {
        "conditions": [
            {
                "errorThreshold": "1",
                "metric": "new_security_rating",
                "onLeakPeriod": true,
                "operator": "GREATER_THAN",
                "status": "OK",
                "value": "1"
            },
        ],
        "name": "SonarQube way",
        "status": "OK"
    }
}

因为开源版的sonarqube不支持代码多分支管理,分析结果的json中,branch始终为master。为了解决这个问题,我们可以使用sonarqube的自定义参数来解决。方法是在sonar扫描时指定自定义参数,如下:

mvn clean compile sonar:sonar -Dsonar.analysis.branch=test

参考

https://docs.sonarqube.org/latest/project-administration/webhooks/

以上是关于Sonarqube Webhook自定义参数的主要内容,如果未能解决你的问题,请参考以下文章

SonarQube 不会向 Discord webhook 发送通知

如何开发自定义 SonarQube 插件?

SonarQube添加自定义规则:实践验证

sonarqube怎么自定义Java代码规则

服务器无法访问到 Jenkins 的 SonarQube Webhook

SonarQube配置自定义的CheckStyle代码规则