【问题标题】:SonarQube 6.7 LTS group permissions API doesn't workingSonarQube 6.7 LTS 组权限 API 不起作用
【发布时间】:2018-05-08 13:19:06
【问题描述】:

我正在将 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 版本,我不知道这个问题可能来自哪里:(

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

【问题讨论】:

  • 如果您认为自己发现了错误,groups.google.com/forum/#!forum/sonarqube 会给您更多关注
  • 请不要在 StackOverflow 和 Google Group 上交叉发帖

标签: sonarqube sonarqube-api


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    // 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"
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-18
      • 2018-05-04
      • 2015-10-01
      • 2018-05-29
      • 2018-06-04
      • 1970-01-01
      相关资源
      最近更新 更多