How to get all issues of project via Jira REST Java Client?

Jitka Hodná picture Jitka Hodná · Mar 23, 2015 · Viewed 25.9k times · Source

I'm trying to get all issues of project and then find which are done, but I don't know how.
I connected user to Jira and than wanted to get all of his project and all of issue on him. Then I want to find, which issues from that are done. Can anybody help me, please?

I've got this:

Iterable <BasicProject> allProj;
this.yourUsername = userName;
this.yourPassword = password;

this.jiraServerUri = new URI("https://applifting.atlassian.net");
this.factory = new JerseyJiraRestClientFactory();;
this.restClient = factory.createWithBasicHttpAuthentication(jiraServerUri, yourUsername, yourPassword);
final NullProgressMonitor pm = new NullProgressMonitor();
allProj = this.restClient.getProjectClient().getAllProjects(pm);

for(Iterator<BasicProject> i = allProj.iterator(); i.hasNext(); ) {
    BasicProject proj = i.next();
    Project ActualProject = this.restClient.getProjectClient().getProject(proj.getKey(), pm);
    ComponentRestClient cm =

}

I thought in this for cycle I should get all issues when I have all project.

Answer

Koshinae picture Koshinae · Mar 23, 2015

If you have a JQL that specifies your search criteria, you can invoke that: https://docs.atlassian.com/jira/REST/latest/#d2e2716

For a code example, please take a look here: https://answers.atlassian.com/questions/192961/answers/4049301

A working example: (also here: http://pastebin.com/WUMZ0vZa)

package com.example.jirasandbox;

import com.atlassian.jira.rest.client.api.JiraRestClient;
import com.atlassian.jira.rest.client.api.JiraRestClientFactory;
import com.atlassian.jira.rest.client.api.domain.BasicProject;
import com.atlassian.jira.rest.client.api.domain.Issue;
import com.atlassian.jira.rest.client.api.domain.SearchResult;
import com.atlassian.jira.rest.client.api.domain.User;
import com.atlassian.jira.rest.client.internal.async.AsynchronousJiraRestClientFactory;
import com.atlassian.util.concurrent.Promise;
import java.net.URI;

public class CustomJiraRestClient {

    private static final String JIRA_URL = "http://jira-dev:8080";
    private static final String JIRA_ADMIN_USERNAME = "admin";
    private static final String JIRA_ADMIN_PASSWORD = "admin";

    public static void main(String[] args) throws Exception {
        // Construct the JRJC client
        System.out.println(String.format("Logging in to %s with username '%s' and password '%s'", JIRA_URL, JIRA_ADMIN_USERNAME, JIRA_ADMIN_PASSWORD));
        JiraRestClientFactory factory = new AsynchronousJiraRestClientFactory();
        URI uri = new URI(JIRA_URL);
        JiraRestClient client = factory.createWithBasicHttpAuthentication(uri, JIRA_ADMIN_USERNAME, JIRA_ADMIN_PASSWORD);

        // Invoke the JRJC Client
        Promise<User> promise = client.getUserClient().getUser("admin");
        User user = promise.claim();

        for (BasicProject project : client.getProjectClient().getAllProjects().claim()) {
            System.out.println(project.getKey() + ": " + project.getName());
        }

        Promise<SearchResult> searchJqlPromise = client.getSearchClient().searchJql("project = MYPURRJECT AND status in (Closed, Completed, Resolved) ORDER BY assignee, resolutiondate");

        for (Issue issue : searchJqlPromise.claim().getIssues()) {
            System.out.println(issue.getSummary());
        }

        // Print the result
        System.out.println(String.format("Your admin user's email address is: %s\r\n", user.getEmailAddress()));

        // Done
        System.out.println("Example complete. Now exiting.");
        System.exit(0);
    }
}