如何通过Jira REST Java客户端获取项目的所有问题?

如何通过Jira REST Java客户端获取项目的所有问题?,jira,jira-rest-api,jira-rest-java-api,Jira,Jira Rest Api,Jira Rest Java Api,我正在尝试获取项目的所有问题,然后找出哪些问题已完成,但我不知道如何完成。 我将用户连接到Jira,然后想得到他的所有项目和所有问题。然后我想找出,哪些问题已经解决了。有人能帮我吗 我有这个: Iterable allProj; this.yourUsername=用户名; this.yourPassword=密码; this.jiraServerUri=新URI(“https://applifting.atlassian.net"); this.factory=new JerseyJiraRe

我正在尝试获取项目的所有问题,然后找出哪些问题已完成,但我不知道如何完成。
我将用户连接到Jira,然后想得到他的所有项目和所有问题。然后我想找出,哪些问题已经解决了。有人能帮我吗

我有这个:

Iterable allProj;
this.yourUsername=用户名;
this.yourPassword=密码;
this.jiraServerUri=新URI(“https://applifting.atlassian.net");
this.factory=new JerseyJiraRestClientFactory();;
this.restClient=factory.createWithBasicHttpAuthentication(jiraServerUri、用户名、密码);
最终的NullProgressMonitor pm=新的NullProgressMonitor();
allProj=this.restClient.getProjectClient().getAllProjects(pm);
for(迭代器i=allProj.Iterator();i.hasNext();){
基本项目项目=i.next();
Project ActualProject=this.restClient.getProjectClient().getProject(proj.getKey(),pm);
ComponentRestClient cm=
}

我认为在这个
循环中,当我拥有所有项目时,我应该得到所有问题。

如果你有一个指定搜索条件的JQL,你可以调用:

有关代码示例,请查看以下内容:

一个有效的例子:(这里也有:)

package com.example.jirasandbox;
导入com.atlassian.jira.rest.client.api.JiraRestClient;
导入com.atlassian.jira.rest.client.api.JiraRestClientFactory;
导入com.atlassian.jira.rest.client.api.domain.BasicProject;
导入com.atlassian.jira.rest.client.api.domain.Issue;
导入com.atlassian.jira.rest.client.api.domain.SearchResult;
导入com.atlassian.jira.rest.client.api.domain.User;
导入com.atlassian.jira.rest.client.internal.async.AsynchronousJiraRestClientFactory;
导入com.atlassian.util.concurrent.Promise;
导入java.net.URI;
公共类CustomJiraRestClient{
私有静态最终字符串JIRA_URL=”http://jira-dev:8080";
私有静态最终字符串JIRA_ADMIN_USERNAME=“ADMIN”;
私有静态最终字符串JIRA_ADMIN_PASSWORD=“ADMIN”;
公共静态void main(字符串[]args)引发异常{
//构建JRJC客户端
System.out.println(String.format(“使用用户名“%s”和密码“%s”登录到%s,JIRA_URL,JIRA_ADMIN_用户名,JIRA_ADMIN_密码));
JiraRestClientFactory=new AsynchronousJiraRestClientFactory();
URI=新URI(JIRA_URL);
JiraRestClient client=factory.createWithBasichtpAuthentication(uri、JIRA_ADMIN_用户名、JIRA_ADMIN_密码);
//调用JRJC客户端
Promise Promise=client.getUserClient().getUser(“admin”);
User=promise.claim();
对于(基本项目:client.getProjectClient().getAllProjects().claim()){
System.out.println(project.getKey()+”:“+project.getName());
}
Promise searchJqlPromise=client.getSearchClient().searchJql(“项目=MyPurrJet,状态为受让人的(已完成、已完成、已解决的)订单,resolutiondate”);
针对(问题:searchJqlPromise.claim().getIssues()){
System.out.println(issue.getSummary());
}
//打印结果
System.out.println(String.format(“您的管理员用户的电子邮件地址是:%s\r\n”,user.getEmailAddress());
//完成
System.out.println(“示例完成。现在退出”);
系统出口(0);
}
}

非常感谢,在这个工作示例中,字符串URL是我的jira,对吗?和Promise searchjqlclomise=client.getSearchClient().searchJql(“project=mypurrjet,状态为受让人的(已完成、已完成、已解决的)订单,resolutiondate”);-您如何知道如何指定它?您与jira的连接位于
这个.restClient
对象中。使用
restClient.getSearchClient().searchJql(JQLquery)
函数和JQL查询来获取您想要的问题。要将JQL查询登录到Jira并在问题导航器中搜索您想要的问题,然后使用JQL切换到高级搜索,这就是您的JQL查询。是的,Jira_URL指向您的Jira。另外,@ThePavolC做对了,您可以在那里的站点上发出JQL查询。顶部的“问题”菜单,然后是“搜索问题”菜单项,然后单击“高级”链接。您的意思是要包括现在驻留在pastebin中的内容?Hi@Koshinae-我们确实需要REST api设置,还是我可以使用Jira REST java client jar来获取Jira问题?我们正在使用JIRA云。我是否只需要使用jira管理员凭据?请帮帮我。我不熟悉这个功能。
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);
    }
}