Hi All,
I am struggling with Issue Linking using groovy, I have an Inward Issue Links, So i need to capture that issue link and then using that issue link i need to perform some operations, like setting a status for that associated issue link.So any idea,I have written a piece of code. but its giving me the current issue ID and name.
def public OpenPositionFinalVersion(MutableIssue issue) { componentManager = ComponentManager.getInstance() customFieldManager = componentManager.getCustomFieldManager() issueFactory = componentManager.getIssueFactory() issueManager =ComponentAccessor.getIssueManager() jiraAuthenticationContext = componentManager.getJiraAuthenticationContext() issueWorkflowManager = ComponentAccessor.getComponentOfType(IssueWorkflowManager.class); issueFactory = ComponentManager.getInstance().getIssueFactory() IssueLinkManager linkManager = ComponentManager.getInstance().getIssueLinkManager() IssueLinkTypeManager issueLinkTypeManager = (IssueLinkTypeManager) ComponentManager.getComponentInstanceOfType(IssueLinkTypeManager.class) IssueIndexManager issueIndexManager =ComponentAccessor.getIssueIndexManager() workflowManager = ComponentAccessor.getWorkflowManager(); issueLinkTypeManager= ComponentManager.getInstance().getIssueLinkManager() // This will log the error for this file def Category log = Category.getInstance("com.onresolve.jira.groovy.OpenPositionFinalVersion"); log.warn("Current Issue is : " + issue) List<IssueLink> allInIssueLink = linkManager.getInwardLinks(issue.getId()); for (Iterator<IssueLink> inIterator = allInIssueLink.iterator(); inIterator.hasNext();) { IssueLink issueLink = (IssueLink) inIterator.next(); log.warn("Issue Link Type is : " +issueLink.getIssueLinkType().getId()); log.warn("Issue Link Name : " + issueLink.getIssueLinkType().getName()) Issue issue1= issueLink.getDestinationObject() } Collection<IssueLinkType> issueLinkTypes = ((IssueLinkTypeManager) ComponentManager .getComponentInstanceOfType(IssueLinkTypeManager.class)).getIssueLinkTypes(); String linkID=null; for (IssueLinkType linktype : issueLinkTypes) { String name=linktype.getName(); if(name.equals("Open Position - Candidate Ticket")){ linkID=linktype.getId(); break; } } } OpenPositionFinalVersion(issue)
I think it might be because links are directional.
Let's say you link issue ABC-123 TO issue ABC-456 with a link type of "depends on". So 123 "depends on" 456, and 456 "is a dependency of" 123. Another way to say it might be "ABC-123" is the "source" and "ABC-456" is the "destination".
So, when your code iterates through the "inward links", it's getting a list of links where the "destination" is the current issue. Asking the link what the destination is, will always return the current issue.
I think you want to look for "source object" instead, for inward links (and destination object on outward links)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.