Reputation: 423
I need sample java client code for accessing the issues of a project in sonar Qube?
I will pass the project key as input and get the list of issues in output.
Upvotes: 0
Views: 704
Reputation: 113
Updated Sourcecode for Sonarqube 8.2.blarghminorversion. Only minor changes were needed to use the fine example delivered by Maxence Lecointe...
19.08.2022 -- Updated for Sonarqube 9.6.0.blarghminorversion. No changes needed
import java.util.ArrayList;
import java.util.List;
import org.sonarqube.ws.Issues.Issue;
import org.sonarqube.ws.Issues.SearchWsResponse;
import org.sonarqube.ws.client.HttpConnector;
import org.sonarqube.ws.client.HttpConnector.Builder;
import org.sonarqube.ws.client.WsClient;
import org.sonarqube.ws.client.WsClientFactories;
import org.sonarqube.ws.client.issues.SearchRequest;
public class SimpleClient {
public static void main(String[] args) {
Builder builder = HttpConnector.newBuilder();
builder.url("http://xxxx:9000/");
builder.token("sUp3rZ3cr37-t0k3n");
builder.connectTimeoutMilliseconds(10000);
HttpConnector httpConnector = builder.build();
SearchRequest searchWsRequest = new org.sonarqube.ws.client.issues.SearchRequest();
List<String> componentKeys = new ArrayList<String>(1);
componentKeys.add("project_key");
searchWsRequest.setComponentKeys(componentKeys);
final WsClient wsClient = WsClientFactories.getDefault().newClient(httpConnector);
SearchWsResponse response = wsClient.issues().search(searchWsRequest);
System.out.println("Total found: " + response.getTotal());
List<Issue> issues = wsClient.issues().search(searchWsRequest).getIssuesList();
for (Issue issue : issues) {
System.out.println("===================================");
System.out.println(issue.toString());
}
}
}
<dependency>
<groupId>org.sonarsource.sonarqube</groupId>
<artifactId>sonar-ws</artifactId>
<version>9.6.0.59041</version>
</dependency>
Upvotes: 1
Reputation: 238
you can use sonarqube client lib :
Builder builder = HttpConnector.newBuilder();
builder.url("http://xxxx:9000/sonar/");
builder.connectTimeoutMilliseconds(10000);
HttpConnector httpConnector = builder.build();
SearchWsRequest searchWsRequest = new org.sonarqube.ws.client.issue.SearchWsRequest();
List<String> projectKeys = new ArrayList<String>(1);
projectKeys.add("project_key");
searchWsRequest.setProjectKeys(projectKeys);
final WsClient wsClient = WsClientFactories.getDefault().newClient(httpConnector);
List<Issue> issues = wsClient.issues().search(searchWsRequest).getIssuesList();
and use
<dependency>
<groupId>org.sonarsource.sonarqube</groupId>
<artifactId>sonar-ws</artifactId>
<version>5.6</version>
</dependency>
Upvotes: 1