The Atlassian Community Forums are currently in read-only mode. We will be relaunching on a new platform on September 22 (read more here). We apologize for the extended downtime. For concerns or questions, please email communitymanagers@atlassian.com. See you on the other side, on the new Atlassian Community Forums! :)

×

Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Issue Linking

AKASHB
Contributor
July 28, 2013

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)

1 answer

Comments for this post are closed

Community moderators have prevented the ability to post new answers.

1 vote
Nic Brough -Adaptavist-
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Champions.
July 28, 2013

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)

TAGS
AUG Leaders

Atlassian Community Events