我正在尝试使用sonar-ws-5.6.jar获取特定项目中未解决的bug和漏洞的总数。
我试图将类型作为BUG传递给搜索查询。但我还是得到了所有未解决的东西。它不采用参数类型。
如何使用Webservice获得错误和漏洞的确切数量?
这是我的代码,连接到声纳并获取数据。
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
到目前为止,我正在迭代响应并得到计数。
List<Issue> issueList = issuesResponse.getIssuesList();
int bugCount = 0;
for(Issue issue : issueList){
if(issue.getType() == RuleType.BUG){
bugCount ++;
}
}发布于 2016-07-05 09:44:23
我使用ComponentWsRequest来获取bug的总数。
我们可以传递度量键来获得所需的值。
下面是代码,它给出了bug的总数。
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“
发布于 2016-07-05 12:56:57
好吧,你染上了窃听器!我使用了您的代码,发现types参数没有正确地从WSClient传递到实际的WSClient查询。
因此,感谢您分享您的问题,声纳-7871是开放的,使它得到解决。
https://stackoverflow.com/questions/38196989
复制相似问题