通过java程序,实现在jira上增删改查项目、issue等操作。
一、使用curl的方式直接调用jira api(非本文重点)
参考资料:https://docs.atlassian.com/software/jira/docs/api/REST/7.7.1/#api/2
上面记录了各种操作的需要调用的url 以及请求类型。
使用方式就像这样:
public static String getIssue(String issueKey) throws IOException {
String command = "curl -D- -u " + user + ":" + pwd
+ " -X GET -H \"Content-Type: application/json\" \"" + uri
+ "/rest/api/2/issue/" + issueKey + "\"";
String issueSt = executeShell(command);
return issueSt;
}
public static String getProject(String projectKey) throws IOException{
String command = "curl -D- -u " + user + ":" + pwd
+ " -X GET -H \"Content-Type: application/json\" \"" + uri
+ "/rest/api/2/project/" + projectKey + "\"";
String projectSt = executeShell(command);
return projectSt;
}
相当于直接在命令执行命令:
curl --request GET \
--url '/rest/api/2/project/{projectIdOrKey}' \
--user 'email@example.com:<api_token>' \
--header 'Accept: application/json'
这种方式网上有类似的工具类,但是使用起来感觉不是很方便,尤其是一些创建更新操作,需要很多参数,这种拼装的方式很容易出错,好在jira提供了java版的客户端。
二、使用jira-rest-java-client操作jira
1、引入依赖
<properties>
<jira-client.version>5.1.6</jira-client.version>
<alibaba-fastjson.version>1.2.68</alibaba-fastjson.version>
<atlassian-fugue.version>4.7.2</atlassian-fugue.version>
<guava.version>26.0-jre</guava.version>
</properties>
<!--jira java-->
<dependency>
<groupId>com.atlassian.jira</groupId>
<artifactId>jira-rest-java-client-core</artifactId>
<version>${
jira-client.version}</version>
</dependency>
<dependency>
<groupId>io.atlassian.fugue</groupId>
<artifactId>fugue</artifactId>
<version>${
atlassian-fugue.version}</version>
</dependency>
<!-- http client-->
<dependency>
<groupId>com.mashape.unirest</groupId>
<artifactId>unirest-java</artifactId>
<version>1.4.9</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${
alibaba-fastjson.version}</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${
guava.version}</version>
</dependency>
2、基本操作
通过java client使用起来也很简单
先通过jira地址,用户名,密码创建要给JiraRestClient。
private static JiraRestClient loginJira(String url,String userName,String pwd){
AsynchronousJiraRestClientFactory asynchronousJiraRestClientFactory = new AsynchronousJiraRestClientFactory();
JiraRestClient jiraRestClient = asynchronousJiraRestClientFactory.createWithBasicHttpAuthentication(URI.create(url), userName,pwd)