SonarQube 6.7 LTS组权限API不起作用

时间:2017-11-24 13:51:41

标签: sonarqube sonarqube-api

我将SonarQube从5.6版迁移到6.7版。我在我的Jenkins作业中使用SonarQube API,问题是群组权限的API不适用于6.7版本...

我已尝试手动使用Postman(POST原始JSON):

{
    "groupName": "project-name-admin",
    "permission": "admin",
    "projectKey": "project-name"
}

返回的结果是:

{
    "errors": [
        {
            "msg": "Group name or group id must be provided"
        }
    ]
}

如果我使用它也是一样的:

{
    "groupId": 53,
    "permission": "admin",
    "projectKey": "project-name"
}

{
    "groupId": 53,
    "groupName": "project-name-admin",
    "permission": "admin",
    "projectKey": "project-name"
}

它使用6.5版本的verison,我不知道这个问题可能来自哪里:(

@SonarQube开发团队:你能解决问题吗?

2 个答案:

答案 0 :(得分:2)

application/x-www-form-urlencoded或表格数据的形式发送数据。 SonarQube Web API不以原始JSON格式处理POST主体。有关Java ServletRequest的更多信息,请参阅此question(Tomcat在引擎盖下使用)。

答案 1 :(得分:0)

这是一段代码,用于使用身份验证和发布将项目分配给门。注意身体和内容类型!

// format post, sonarqube only knows form encoded
def body = sprintf("gateId=%s&projectKey=%s", ["${gateId}", "${projectKey}"])

// post to associate project with gate
result = httpRequest (
    consoleLogResponseBody: true,
    authentication: '<My Jenkins Credential>', 
    contentType: 'APPLICATION_FORM',
    httpMode: 'POST', 
    ignoreSslErrors: true, 
    requestBody: "${body}", 
    url: "http://<sonarqube.url>/api/qualitygates/select"
)