【问题标题】:How to retrieve branch information by the API from a SonarQube project?如何通过 API 从 SonarQube 项目中检索分支信息?
【发布时间】:2018-11-22 01:47:18
【问题描述】:

我正在使用 SonarQube 分支插件 (1.0 (build 507)) 并希望从分支中检索信息。我的 SonarQube 版本是 6.7。

SonarQube 项目(PC_civil-affairs)有三个分支,master(主)、develop、feature_branch。这些都是长寿的分支。

下一个调用从主分支检索信息 https://website.com/sonar/api/project_analyses/search?project=PC_civil-affairs https://website.com/sonar/api/settings/values?component=PC_civil-affairs&keys=sonar.leak.period https://website.com/sonar/api/qualitygates/project_status?projectKey=PC_civil-affairs

我应该如何调整上述调用以从 develop 和 feature_branch 检索相同的信息?

【问题讨论】:

    标签: git api sonarqube branch


    【解决方案1】:

    branches list 端点存在,每个分支都有质量门状态: https://website.com/sonar/api/project_branches/list?project=$projectKey。它给出了一个响应示例,例如:

      {
        "branches": [
        {
          "name": "feature/foo",
          "isMain": false,
          "type": "SHORT",
          "mergeBranch": "master",
          "status": {
            "qualityGateStatus": "OK",
            "bugs": 1,
            "vulnerabilities": 0,
            "codeSmells": 0
          },
          "analysisDate": "2017-04-03T13:37:00+0100"
        },
        {
          "name": "master",
          "isMain": true,
          "type": "LONG",
          "status": {
            "qualityGateStatus": "ERROR"
          },
          "analysisDate": "2017-04-01T01:15:42+0100"
        }
      ]
    }
    

    如果您要查找特定分支的状态,可以将其通过管道传输到 jq 之类的工具中,然后使用以下内容进行过滤:

    | jq '.branches | .[] | {name: .name, status: .status.qualityGateStatus} | select(.name=="master") | .status'
    

    这应该为主分支状态返回“错误”。

    【讨论】:

      【解决方案2】:

      我在 SonarQube 7.1 上测试了以下解决方案。

      project_analysiss/search

      您必须添加branch 参数。示例:

      https://website.com/sonar/api/project_analyses/search?project=PC_civil-affairs&branch=xyz
      

      设置/值

      所有分支的设置都相同,因此您的 URL 是正确的:

      https://website.com/sonar/api/settings/values?component=PC_civil-affairs&keys=sonar.leak.period
      

      质量门/项目状态

      很遗憾,我没有找到任何获得质量门的方法。

      【讨论】:

      • 谢谢!发现当我按下“显示内部 API”时,此 Web 服务描述可用。
      猜你喜欢
      • 2017-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-11
      • 2018-06-25
      • 2020-08-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多