通过SonarQube API访问质量门状态

15

我的问题:

我想通过SonarQube网页API获得我的项目的质量门限的当前状态,但是在文档中没有发现可以用作可用度量标准的质量门限。有什么最佳方法可以访问这些信息并包含在报告中?

背景:

我正在使用SonarQube API访问有关项目分析的信息,API的输出用于生成每周报告。我可以使用以下SonarQube API调用访问有关每个项目的信息。

http://my-sonar-site/api/resources/index/?resource=$PROJECT_KEY&metrics=$METRIC_LIST

度量列表来自SonarQube API文档,网址为

http://docs.sonarqube.org/display/SONAR/Metric+definitions

这个可以让我得到所有想要的东西,除了质量门的状态。

我的尝试:

  • 我查看了上述链接中的指标文档,但未能在api的那部分找到质量门的状态。
  • 我还查看了在http://nemo.sonarqube.org/api_documentation#api/qualitygates记录的质量门API-但质量门API似乎用于创建和管理质量门和项目关联,而不是获取每个项目质量门的当前状态。
4个回答

39

可以从不同的分支获取结果,例如: ?branch=master&projectKey=projectname - Pwnstar
嗨Pwnstart,想知道你是否知道如何从分支运行它?谢谢。 - jay

3
您可以使用“quality_gate_details”指标检索所需内容。例如,在Nemo上:http://nemo.sonarqube.org/api/resources/index/?resource=org.codehaus.sonar:sonar&metrics=quality_gate_details
[{"id":48569,"key":"org.codehaus.sonar:sonar","name":"SonarQube","scope":"PRJ","qualifier":"TRK","date":"2014-11-30T16:13:17+0000","creationDate":null,"lname":"SonarQube","version":"5.0-SNAPSHOT","description":"Open source platform for continuous inspection of code quality","msr":[{"key":"quality_gate_details","data":"{\"level\":\"ERROR\",\"conditions\":[{\"metric\":\"blocker_violations\",\"op\":\"GT\",\"error\":\"0\",\"actual\":\"3.0\",\"level\":\"ERROR\"},{\"metric\":\"critical_violations\",\"op\":\"GT\",\"error\":\"0\",\"actual\":\"15.0\",\"level\":\"ERROR\"},{\"metric\":\"test_failures\",\"op\":\"GT\",\"warning\":\"0\",\"error\":\"\",\"actual\":\"0.0\",\"level\":\"OK\"},{\"metric\":\"skipped_tests\",\"op\":\"GT\",\"warning\":\"0\",\"actual\":\"0.0\",\"level\":\"OK\"},{\"metric\":\"coverage\",\"op\":\"LT\",\"warning\":\"\",\"error\":\"80\",\"actual\":\"81.5\",\"level\":\"OK\"},{\"metric\":\"test_errors\",\"op\":\"GT\",\"warning\":\"0\",\"error\":\"\",\"actual\":\"0.0\",\"level\":\"OK\"},{\"metric\":\"sqale_effort_to_grade_a\",\"op\":\"GT\",\"warning\":\"\",\"error\":\"0\",\"actual\":\"0.0\",\"level\":\"OK\"}]}"}]}]

目前,您可以浏览“指标”数据库表以获取完整的指标列表。 随意查看https://jira.codehaus.org/browse/SONAR-5378,这应该会使详细的指标列表直接在SonarQube Web界面上可用。


1
很遗憾,自Sonarqube 5.4版本起,api/resources API已被弃用。 - Leszek Jasek

1

这个curl命令获取特定项目的键和分支的响应,并将其写入JSON文件:

curl -u $YOUR_TOKEN: -G --data-urlencode "branch=$YOUR_BRANCH" --data-urlencode "projectKey=$YOUR_PROJECT_KEY" ${SONAR_HOST}/api/qualitygates/project_status > result.json

0

不确定上述API是如何工作的。应该是 curl -k -u ${TOKEN}: -G --data-urlencode --data-urlencode https://${SONAR_HOST}/api/qualitygates/project_status?projectKey=${PROJECT_KEY}

另外,您可以通过添加 | jq '.' 进行漂亮的打印。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接