java - Sonar WS : How to get the total unresolved bugs count using Sonar Webservice

标签 java sonarqube

我正在尝试使用 sonar-ws-5.6.jar 获取特定项目中 Unresolved 错误和漏洞的总数。

我试图将 type 作为 BUG 传递给搜索查询。但我仍然得到所有 Unresolved 问题。它不采用参数类型。

如何使用Webservice获取准确的bug和漏洞数量?

这是我连接 Sonar 并获取数据的代码。

import java.util.ArrayList;
import java.util.List;

import org.sonarqube.ws.Issues.SearchWsResponse;
import org.sonarqube.ws.client.HttpConnector;
import org.sonarqube.ws.client.WsClient;
import org.sonarqube.ws.client.WsClientFactories;
import org.sonarqube.ws.client.issue.SearchWsRequest;

public class SonarTest {
    static String resourceKey = "com.company.projectname:parent";
    public static void main(String[] args) {                
        try {       
            // Get Issue
            HttpConnector httpConnector = HttpConnector.newBuilder().url("http://localhost:9000").credentials("admin", "admin").build();
            SearchWsRequest issueSearchRequest = new SearchWsRequest();
            issueSearchRequest.setPageSize(1000);
            issueSearchRequest.setResolved(false);
            List<String> bugTypesList = new ArrayList<String>();
            bugTypesList.add("BUG");
            issueSearchRequest.setTypes(bugTypesList);
            WsClient wsClient = WsClientFactories.getDefault().newClient(httpConnector);
            SearchWsResponse issuesResponse =  wsClient.issues().search(issueSearchRequest);
            System.out.println(issuesResponse.getIssuesList());

            System.out.println("DONE");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

注意:我使用的是 sonarqube 5.6 和 Java 1.8

截至目前,我正在迭代响应并获取计数

List<Issue> issueList = issuesResponse.getIssuesList();
int bugCount = 0;
for(Issue issue : issueList){
   if(issue.getType() == RuleType.BUG){
          bugCount ++;
   }
}

最佳答案

好吧,你发现了一个错误!我使用了您的代码,发现 types 参数没有从 WSClient 正确传递到实际的 HTTP 查询。

非常感谢您分享您的问题,SONAR-7871打开以解决它。

关于java - Sonar WS : How to get the total unresolved bugs count using Sonar Webservice,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38196989/

相关文章:

Java 内存泄漏 - 在程序终止时清除?

java - Alfresco Activiti - 如何在 Alfresco Activiti 中获取附件 id?

sonarqube - 如何从 Sonar 仪表板获取代码覆盖率

ant - SONAR - 如何排除在 "sonar.test"下定义的包

java - Android GPS 尖峰问题

java - 我们需要 Builder 模式中的 .build() 方法吗?

java - 使用 jenkins 插件检查 java 编码风格

maven - 在当前项目和插件组中找不到前缀为 'sonar' 的插件

java - 如果在构建作业中设置了 MAVEN_OPTS,Hudson SonarPlugin 将失败

java - @SuppressWarnings 在 SonarQube 中损坏了吗?