The following two scripts can be used to work with issues on two separate instances connected with an App Link. It adds a field to the issue that shows all the issues that are linked through any issue link type. The first script does this purely for issues that are on a linked, but separate, Jira instance (like a Service Desk instance and a Dev instance, for example). The second script does the exact same thing for all linked issues on the same instance.
This script identifies issues on a separate Jira instance that have an issue link connecting them to any issues on this instance.
Be aware that in order for this script to work, these instances will need to be connected through an Application Link and the user running these scripts will need Jira administrator privileges on both instances.
package com.onresolve.jira.groovy.test.scriptfields.scripts
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.link.RemoteIssueLinkManager
def remoteLinkManager = ComponentAccessor.getComponent(RemoteIssueLinkManager)
def startHTML = '<a href="'
def endHTML = '">'
def remoteIs = remoteLinkManager.getRemoteIssueLinksForIssue(issue)
def remIs = new String[remoteIs.size()]
def count = 0
remoteIs.each {
remIs[count] = startHTML + it.getUrl() + endHTML + it.getTitle() + '</a>'
count++
}
remIs
?:null
This script will add a field to each issue that shows all the linked issues on this same instance.
package com.onresolve.jira.groovy.test.scriptfields.scripts
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.link.IssueLinkManager
def linkManager = ComponentAccessor.getComponent(IssueLinkManager)
def startHTML = '<a href="'
def baseUrl = 'http://myjirainstance.com/browse/'
def endHTML = '">'
def issueLinks = linkManager.getIssueLinks(issue.id)
def remIs = new String[remoteIs.size()]
def count = 0
def otherIssue
issueLinks.each {
if( issue.id == it.id ){
otherIssue = it.getDestinationObject()
} else {
otherIssue = it.getSourceObject()
}
remIs[count] = startHTML + baseUrl + otherIssue.getKey() + endHTML + otherIssue.getKey() + '</a>'
count++
}
remIs
?:null