2016-07-05 8 views
3

Ich versuche, die Gesamtzahl der nicht behobenen Fehler und Schwachstellen in dem jeweiligen Projekt mit sonar-ws-5.6.jar zu erhalten.Sonar WS: So erhalten Sie die Gesamtzahl der nicht aufgelösten Fehler mit Sonar Webservice

Ich habe versucht, die Typ als BUG an die Suchanfrage übergeben. Aber ich bekomme immer noch alles ungelöste Zeug. Es nimmt nicht den Parametertyp an.

Wie erhalten Sie die genaue Anzahl der Fehler und Sicherheitslücken mit Webservice?

Hier ist mein Code, um mit Sonar zu verbinden und die Daten zu erhalten.

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(); 
     } 
    } 
} 

Hinweis: Ich verwende Sonarqube 5.6 mit Java 1.8

Ab jetzt habe ich die Antwort bin Iterieren und bekommen die Zählung

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

Antwort

1

ich ComponentWsRequest bin mit der Gesamtzahl erhalten von Bugs

Wir können den metrischen Schlüssel übergeben, um den erforderlichen Wert zu erhalten.

Hier ist der Code, der mir die Gesamtzahl der Fehler gibt.

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); 
} 

Wir können jede der metrischen Schlüssel verwenden, um die entsprechenden Werte zu erhalten:

"quality_gate_details", "reliability_rating", "reliability_remediation_effort", "Schwachstellen", "security_rating", "security_remediation_effort" , "code_smells", "sqale_rating", "sqale_dett_ratio", "supporting_to_reach_maintainability_rating_a", "sqale_index", "ncloc", "linien", "statements", "funktionen", "klassen", "files", "directories", " duplicated_lines_density "," duplicated_blocks "," duplicated_lines "," duplicated_files "," complexity "," function_complexity "," file_complexity "," class_complexity "," comment_lines_density "," comment_lines "," public_api "," public_docum ented_api_density“, "public_undocumented_api", "Verletzungen", "open_issues", "reopened_issues", "confirmed_issues", "false_positive_issues", "wont_fix_issues"

1

Nun, gefangen Sie einen Fehler! Ich benutzte Ihren Code und fand heraus, dass der types Parameter nicht ordnungsgemäß von der WSClient an die tatsächliche HTTP-Abfrage übergeben wurde.

Also vielen Dank für Ihr Problem, SONAR-7871 geöffnet ist, um es adressiert zu haben.

+0

Vielen Dank für Ihre Antwort. Ich konnte das setParam ("types", inlineMultipleParamValue (request.getTypes())) in der Suchmethode nicht finden. Vielleicht war das das Problem. – Unknown

Verwandte Themen