连接 JIRA 并检索信息

Connect JIRA and retrieve Information

我有一个任务是通过 Java 从 JIRA 帐户中检索一些信息。我下载了与 Java 一起工作的 Jira API,但我不知道如何让它工作。我必须在某个地方传递我的用户名和密码才能登录,然后才能从我想要的项目中检索我想要的信息。

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");


// Here I am getting the error!!
User user = promise.claim();
///////////////////////////////////////

// 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);

上面的代码不起作用,因为无论是我传递了错误的密码还是错误的用户名都会显示相同的结果。我必须知道如何正确连接到 JIRA 并从那里检索 JSON 中的一些信息!感谢您的宝贵时间!

这里是错误

Caused by: com.atlassian.jira.rest.client.api.RestClientException: org.codehaus.jettison.json.JSONException: A JSONObject text must begin with '{' at character 9 of 

我唯一能想到的就是你发送的信用不正确。尝试使用电子邮件地址,而不仅仅是 "admin".

下面是一些可能有用的代码:https://github.com/somaiah/jrjc

我检查了一个问题,但获取用户信息会类似。

我认为您没有访问 Jira 的必要权限,您必须使用具有正确权限的帐户连接 jira!

您可以使用下面的代码获取 results.Remember 我在我的 gradle 项目中使用它,我正在下载 JRCJ

的所有依赖项
import com.atlassian.jira.rest.client.api.JiraRestClientFactory
import com.atlassian.jira.rest.client.api.domain.User
import com.atlassian.jira.rest.client.internal.async.AsynchronousJiraRestClientFactory
import com.atlassian.util.concurrent.Promise

/**
 * TODO: Class description
 *
 * on 20 Jul 2017
 */
class Jira {
  private static final String JIRA_URL = "https://JIRA.test.com"
  private static final String JIRA_ADMIN_USERNAME = "ABCDE"
  private static final String JIRA_ADMIN_PASSWORD = "******"

  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(JIRA_ADMIN_USERNAME)
    User user = promise.claim()

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

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