我将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,我不知道这个问题可能来自哪里:(
答案 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"
)