/** * Method that gets all the issues ids that are being blocked by Jira Issue. * @param jiraIssue Jira Issue from which extract blocked issues. * @return list of Issues ids that are being blocked by the Issue. */ private Set<String> getBlockedIssuesById(com.atlassian.jira.rest.client.api.domain.Issue jiraIssue) { Set<String> blocked = new HashSet<>(); for (IssueLink link : jiraIssue.getIssueLinks()) { IssueLinkType type = link.getIssueLinkType(); if (type.getName().equals("Blocks") && type.getDirection() == Direction.OUTBOUND) { blocked.add(link.getTargetIssueKey()); } } return blocked; }
private List<LinkIssuesInput> calculateNewLinks(Issue issue, com.atlassian.jira.rest.client.api.domain.Issue jiraIssue) { // When jiraIssueLinks is null, this means that issue links have been disabled, so return an empty list Iterable<IssueLink> jiraIssueLinks = jiraIssue.getIssueLinks(); if (jiraIssueLinks == null) return new ArrayList<>(); // Process the existing IssueLinks and retrieve their Issue keys List<IssueLink> tmp = StreamSupport.stream(jiraIssueLinks.spliterator(), false).collect(Collectors.toList()); List<String> inbound = getExistingIssueLinkKeys(tmp, Direction.INBOUND); List<String> outbound = getExistingIssueLinkKeys(tmp, Direction.OUTBOUND); return Stream.concat( createIssueLinks(issue, inbound, e -> new LinkIssuesInput(e, jiraIssue.getKey(), "Dependency")), createIssueLinks(issue, outbound, e -> new LinkIssuesInput(jiraIssue.getKey(), e, "Dependency"))) .collect(Collectors.toList()); }
setIssueAffectedVersions(issue, jiraIssue); setIssueReleases(issue, jiraIssue); setIssueDependencies(url, issue, jiraIssue.getIssueLinks()); setIssueComments(issue, jiraIssue); setCreationTime(issue, jiraIssue);