Rohan
Rohan

Reputation: 703

New code coverage metrics not returning values from SonarQube 5.3 API

I need to fetch unit test coverage data for new code changes via the api. The metrics. I can see the data in SonarQubeDashboard but the api is not returning any values for the metrics like:

  1. new_coverage
  2. new_line_coverage (etc)

I am invoking the api :

https:///api/resources?format=json&metrics=ncloc,line_coverage,new_line_coverage

Even the Public Nemo Instance does not return these metric values:

https://nemo.sonarqube.org/api/resources?format=json&metrics=ncloc,line_coverage,new_line_coverage,new_coverage

The above API is returning only ncloc and line_coverage for each and every project.

Please dont tell me to check if these metrics are not available in the version. They are, if you invoke the API:

https://nemo.sonarqube.org/api/metrics/search

Upvotes: 1

Views: 2947

Answers (1)

Nicolas B.
Nicolas B.

Reputation: 7321

The modern way (api/measures/component)

SonarQube's api/resources Web API is deprecated, you should use api/measures/component instead (since 5.4).

Using this project as an example:

https://nemo.sonarqube.org/api/measures/component?componentKey=org.sonarsource.php%3Aphp&metricKeys=ncloc,line_coverage,new_line_coverage,new_coverage&additionalFields=metrics,periods

The old way (api/resources)

If you're really stuck with api/resources (e.g. old SonarQube version), then keep in mind that for new metrics there is a notion of time delta (new since when ?), so you have to add includetrends=true to your request. Let's do that with your example:

https://nemo.sonarqube.org/api/resources?format=json&metrics=ncloc,line_coverage,new_line_coverage,new_coverage&includetrends=true

This gives you new_coverage and new_line_coverage (for the projects which do have coverage and SCM information available).

Upvotes: 6

Related Questions