如何使用webservice api从sonarqube中的特定版本获取指标

时间:2015-02-06 15:15:17

标签: sonarqube

对于我的发布自动化,我创建了一个包含sonarqube当前测量值的文档生成器。在本文档中,我想报告几个版本的代码之间的差异。 我设法获得版本列表没有任何问题使用     http://nemo.sonarqube.org/api/events?resource=org.codehaus.sonar:sonar&categories=Version 我还设法使用了当前代码状态的测量     http://nemo.sonarqube.org/api/resources?resource=org.codehaus.sonar:sonar&metrics=ncloc

任何人都可以帮我了解如何获得旧版本的ncloc,比如版本' 4.0'?

2 个答案:

答案 0 :(得分:1)

Web服务不允许查询此信息。

答案 1 :(得分:1)

解决方案很简单,但您可以根据版本获得所需的数据。

建议的解决方案:

  1. 从API获取特定于版本的详细信息。 http://nemo.sonarqube.org/api/events?resource=org.codehaus.sonar:sonar&categories=Version&format=json

    响应类似于:

    [{"id":"23761","rk":"helloworld","n":"1.1","c":"Version","dt":"2017-07-19T20:28:54-0500"},
    {"id":"23731","rk":"helloworld","n":"1.0","c":"Version","dt":"2017-07-18T14:51:20-0500"},
    {"id":"5107","rk":"helloworld","n":"1","c":"Version","dt":"2015-12-07T11:37:44-0600"}]
    

    “dt”值指定发布版本的时间点。

  2. 解析JSON并获取dt值。从获得的dt值中查找最小和最大日期值。

  3. 使用时间机器API使用API​​查询所需的指标 http://nemo.sonarqube.org/api/timemachine?resource=helloworld&metrics=coverage,ncloc&rfomDateTime=(min_dt_value)&toDateTime=(max_dt_value)

    您将获得时间戳之间的所有指标。

  4. 将我们针对特定版本的dt值与从上面的响应中获取的值进行比较,从而获得特定于版本的指标值。