user3302323
user3302323

Reputation: 423

Sample client for accessing sonar Qube issues of a project

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

Answers (2)

Daniel
Daniel

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

Maxence Lecointe
Maxence Lecointe

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

Related Questions