Listing All JIRA Transitions via API

前端 未结 3 2090
长情又很酷
长情又很酷 2021-01-13 05:27

I\'m looking to set up smart commits in JIRA, but my developers want to know all the options for their transitions. In order to help them, I\'d like to print a cheat-sheet

3条回答
  •  误落风尘
    2021-01-13 05:49

    public void changeStatus(IssueRestClient iRestClient,
            List JiraStatuses, String key) {
        String status = "To Do";
        for (Statuses statuses : vOneToJiraStatuses) {
            if (1 == statuses.compareTo(status)) {
                try {
                    String _transition = statuses.getTransition();
                    Issue issue = iRestClient.getIssue(key).get();
                    Transition transition = getTransition(iRestClient, issue,
                            _transition);
                    if (!(isBlankOrNull(transition))) {
    
                        if (!(issue.getStatus().getName()
                                .equalsIgnoreCase(_transition)))
                            transition(transition, issue, null, iRestClient,
                                    status);
                    }
                } catch (Exception e) {
                    Constants.ERROR.info(Level.INFO, e);
    
                }
                break;
            }
        }
    
    }
    

    List is a pojo implementation where statuses and transitions defined in xml are injected through setter/constructor.

    private void transition(Transition transition, Issue issue,
            FieldInput fieldInput, IssueRestClient issueRestClient,
            String status) throws Exception {
    
        if (isBlankOrNull(fieldInput)) {
            TransitionInput transitionInput = new TransitionInput(
                    transition.getId());
    
                    issueRestClient.transition(issue, transitionInput).claim();
            Constants.REPORT.info("Status Updated for : " + issue.getKey());
        } else {
            TransitionInput transitionInput = new TransitionInput(
                    transition.getId());
            issueRestClient.transition(issue, transitionInput).claim();
            Constants.REPORT.info("Status Updated for : " + issue.getKey());
    
        }
    }
    
    public Transition getTransition(IssueRestClient issueRestClient,
            Issue issue, String _transition) {
    
            Promise> ptransitions = issueRestClient
                .getTransitions(issue);
        Iterable transitions = ptransitions.claim();
        for (Transition transition : transitions) {
    
            if (transition.getName().equalsIgnoreCase(_transition)) {
                return transition;
            }
        }
        return null;
    }
    

    In Short using Transition API of JIRA we can fetch all the transitions to set statuses

提交回复
热议问题