6

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

我已经用 Postman (POST raw 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 版本,我不知道这个问题可能来自哪里:(

@SonarQube 开发团队:你能修复 thaaaat 吗?

4

2 回答 2

3

application/x-www-form-urlencoded或 form-data 形式发送数据。SonarQube Web API 不处理原始 JSON 格式的 POST 正文。请参阅这个关于Java ServletRequest 的问题以了解更多信息(Tomcat 在后台使用)。

于 2018-01-05T15:36:11.030 回答
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"
)
于 2019-02-14T08:32:34.117 回答