Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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.

like image 731
Jitka Hodná Avatar asked Dec 11 '22 00:12

Jitka Hodná


1 Answers

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);
    }
}
like image 51
Koshinae Avatar answered Mar 06 '23 22:03

Koshinae