首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >声纳WS :如何使用获取未解决的bug总数

声纳WS :如何使用获取未解决的bug总数
EN

Stack Overflow用户
提问于 2016-07-05 06:54:24
回答 2查看 1.1K关注 0票数 4

我正在尝试使用sonar-ws-5.6.jar获取特定项目中未解决的bug和漏洞的总数。

我试图将类型作为BUG传递给搜索查询。但我还是得到了所有未解决的东西。它不采用参数类型。

如何使用Webservice获得错误和漏洞的确切数量?

这是我的代码,连接到声纳并获取数据。

代码语言:javascript
复制
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();
        }
    }
}

注意:我使用的是声呐5.6和Java1.8

到目前为止,我正在迭代响应并得到计数。

代码语言:javascript
复制
List<Issue> issueList = issuesResponse.getIssuesList();
int bugCount = 0;
for(Issue issue : issueList){
   if(issue.getType() == RuleType.BUG){
          bugCount ++;
   }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-05 09:44:23

我使用ComponentWsRequest来获取bug的总数。

我们可以传递度量键来获得所需的值。

下面是代码,它给出了bug的总数。

代码语言:javascript
复制
List<String> VALUE_METRIC_KEYS = Arrays.asList("bugs");
ComponentWsRequest componentWsRequest = new ComponentWsRequest();
componentWsRequest.setComponentKey(resourceKey);
componentWsRequest.setMetricKeys(VALUE_METRIC_KEYS);
ComponentWsResponse componentWsResponse = wsClient.measures().component(componentWsRequest);
List<Measure>measureList = componentWsResponse.getComponent().getMeasuresList();
for(Measure measure : measureList){
       System.out.println(measure);
}

我们可以使用任意一个度量键来获取相应的值:

"quality_gate_details“、"reliability_rating”、"reliability_remediation_effort“、”漏洞“、"security_rating”、"security_remediation_effort“、"code_smells”、"sqale_rating“、"sqale_debt_ratio”、"effort_to_reach_maintainability_rating_a“、"sqale_index”、"ncloc“、”行“、”语句“、”函数“、”类“、”文件“、”目录“,"duplicated_lines_density“、"duplicated_blocks”、"duplicated_lines“、"duplicated_files”、“复杂性”、"function_complexity“、"file_complexity”、"class_complexity“、"comment_lines_density”、"comment_lines“、"public_api”、"public_documented_api_density“、"public_undocumented_api”、“违规”、"open_issues“、"reopened_issues”、"confirmed_issues","false_positive_issues","wont_fix_issues“

票数 1
EN

Stack Overflow用户

发布于 2016-07-05 12:56:57

好吧,你染上了窃听器!我使用了您的代码,发现types参数没有正确地从WSClient传递到实际的WSClient查询。

因此,感谢您分享您的问题,声纳-7871是开放的,使它得到解决。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38196989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档