使用Java client调用jira api创建任务

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

前言

1.引入pom依赖

2.获取JiraRestClient

3.client里面有操作jira的各种客户端

4.代码演示创建

5.获取代码演示

总结


前言

使用java client 去调用api创建epic、story、sub-Task 等

1.引入pom依赖

<dependency>
    <groupId>com.atlassian.jira</groupId>
    <artifactId>jira-rest-java-client-core</artifactId>
    <version>5.1.6</version>
</dependency>

<dependency>
    <groupId>com.atlassian.jira</groupId>
    <artifactId>jira-rest-java-client-api</artifactId>
    <version>5.1.6</version>
</dependency>
<dependency>
    <groupId>io.atlassian.fugue</groupId>
    <artifactId>fugue</artifactId>
    <version>4.7.2</version>
    <scope>provided</scope>
</dependency>

<dependency>
    <groupId>com.fasterxml.jackson.datatype</groupId>
    <artifactId>jackson-datatype-joda</artifactId>
    <version>2.12.3</version>
</dependency>

<dependency>
    <groupId>org.codehaus.jettison</groupId>
    <artifactId>jettison</artifactId>
    <version>1.1</version>
</dependency>

​​​​​​​<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.3</version>
</dependency>

2.获取JiraRestClient

使用jira地址、账号和密码去获取Client

private  String JIRA_URL = "http://www.com"

private JiraRestClient jiraRestClient;

public void login(String userName, String passWord) {
        URI jiraServerUri = URI.create(JIRA_URL);
        
        JiraRestClientFactory factory = new AsynchronousJiraRestClientFactory();
        AuthenticationHandler authHandler = new BasicHttpAuthenticationHandler(userName, passWord);
        jiraRestClient = factory.createWithAuthenticationHandler(jiraServerUri,authHandler);
    }

3.client里面有操作jira的各种客户端

//创建jira
jiraRestClient.getIssueClient().createIssue()

//获取jira
jiraRestClient.getIssueClient().getIssue()

//修改jira
jiraRestClient.getIssueClient().transition()

4.代码演示创建

 @Override
    public BasicIssue createEpic(CreateInput createInput) throws ExecutionException, InterruptedException {
        login(createInput.getUserName(),createInput.getPassWord());
        IssueInputBuilder issueInputBuilder = new IssueInputBuilder();
        issueInputBuilder.setProjectKey(createInput.getProjectKey());
        issueInputBuilder.setFieldValue("summary", createInput.getSummary());
        if (StringUtils.isNotEmpty(createInput.getDescription())){
            issueInputBuilder.setFieldValue("description", createInput.getDescription());
        }
        issueInputBuilder.setFieldValue("customfield_10005", createInput.getEpicName());
        if (StringUtils.isNotEmpty(createInput.getTeam())){
            issueInputBuilder.setFieldValue("customfield_10501", createInput.getTeam());
        }
        if (ObjectUtils.isNotEmpty(createInput.getSprintId())){
            issueInputBuilder.setFieldValue("customfield_10004", createInput.getSprintId());
        }
        issueInputBuilder.setFieldInput(new FieldInput(IssueFieldId.ISSUE_TYPE_FIELD, ComplexIssueInputFieldValue.with("name", createInput.getIssueType())));
        if (StringUtils.isNotEmpty(createInput.getAssignee())){
            issueInputBuilder.setFieldInput(new FieldInput(IssueFieldId.ASSIGNEE_FIELD,ComplexIssueInputFieldValue.with("name", createInput.getAssignee())));
        }
        if (StringUtils.isNotEmpty(createInput.getPriority())){
            issueInputBuilder.setFieldInput(new FieldInput(IssueFieldId.PRIORITY_FIELD,ComplexIssueInputFieldValue.with("name", createInput.getPriority())));
        }
        IssueInput issueInput = issueInputBuilder.build();
        return jiraRestClient.getIssueClient().createIssue(issueInput).get();
    }

注:参数很多可以按需去补充

5.获取代码演示

 @Override
    public Issue getIssue(String issueKey,String userName,String passWord) throws ExecutionException, InterruptedException {
        login(userName,passWord);
        Promise<Issue> issue = jiraRestClient.getIssueClient().getIssue(issueKey);
        Issue claim = issue.claim();

        return claim;
    }

总结

以上就是今天要讲的内容,本文仅仅简单介绍了使用client方式调用api操作jira

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值