如何为新的声纳项目设置非默认质量门

时间:2016-07-30 21:17:36

标签: jenkins sonarqube

我们使用jenkins,sonarqube 5.5,maven和git。当开发人员创建一个新的git分支并推送它时,jenkins也会对分支进行分析,因此开发人员可以在合并之前修复所有内容。为了避免这种开发分支分析与主分支分析混合,jenkins将分支名称传递给分析。导致sonarqube为每个分支创建一个新项目。到目前为止还可以。

但最近我们从所有项目的一个默认质量门切换到正在开发的项目和刚刚维护的项目的不同质量门。

那么我们如何在为新分支创建新项目时告诉声纳哪个质量门要使用?在某些版本之前,有一个可以设置的sonar.qualitygate属性。但现在这已被弃用了。那么为新创建的项目定义适当质量门的新方法是什么?

1 个答案:

答案 0 :(得分:4)

您可以使用Sonar提供的其余API。

步骤1.创建门

        def result = ["curl", "--user", auth, "-X", "POST", "-H", "Content-Type: application/json", "-d", "{'name':'" + qualityGateName + "'}", "https://yoursonarserver/api/qualitygates/create"].execute().text

步骤2将项目绑定到门

    ["curl", "--user", auth, "-X", "POST", "-H", "Content-Type: application/json", "-d", "{'gateId':'"+qualityGateId+"','projectId':'"+projectId+"'}", "https://yoursonarserver/qualitygates/select"].execute().text

关于如何获取projectId和qualityGateId,您可以使用以下两个apis

获取项目ID

        String result = ["curl", "--user", auth , "-X", "GET", "-H", "Accept: application/json", "https://yoursonarserver/api/projects/index", "-d", "search=" + projectName ].execute().text

获取质量门槛

        def result = ["curl", "--user", auth, "-X", "GET", "-H", "Accept: application/json", "https://yoursonarserver/api/qualitygates/list"].execute().text

以上两个api将获得一个id列表,因此您需要根据项目名称解析它们。

BR,