如何通过API从SonarQube项目中检索分支信息?

时间:2018-06-12 15:36:33

标签: git api sonarqube branch

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

SonarQube项目(PC_civil-affairs)有三个分支,master(main),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中检索相同的信息?

2 个答案:

答案 0 :(得分:0)

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

<强> project_analyses /搜索

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

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

设置/值

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

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

<强> qualitygates / project_status

不幸的是,我没有找到任何方法来获得质量门状态。

答案 1 :(得分:0)

存在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'

这将为主分支状态返回“ ERROR”。