我正在使用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中检索相同的信息?
答案 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”。