2
1
0
- Francis Martens (Exalate)
- Apr 01, 2020
I have a local connection between two Jira Software projects.
Whenever an issue is exalated, I would like to have a normal issue link between the twins.
How?
Source: Jira Server/Datacenter
- connector-onpremise-jira
- Comment
CommentAdd your comment...
1 answer
- 210
The method to create such a link is
Ensure that the outgoing message contains the id of the issue under sync
replica.customKeys.issueId = issue.id
Ensure that during the first sync, the syncBackAfterProcessing is called
This is necessary because at during the firstSync the issue is not yet created, and the issue.id is required to build a linkif (firstSync) { if(replica.project.key == "HAS"){ issue.projectKey = "AN" issue.typeName = nodeHelper.getIssueType(replica.type?.name, issue.projectKey)?.name ?: "Task" } if(replica.project.key == "AN"){ issue.projectKey = "HAS" issue.typeName = nodeHelper.getIssueType(replica.type?.name, issue.projectKey)?.name ?: "Task" } syncHelper.syncBackAfterProcessing() }
Whenever getting an incoming message, ensure that a link is created if not yet existing
if (!firstSync) { /*********************************** ISSUE LINK ******************* * Make sure there is an issue link to the other side ********************/ def nserv = com.atlassian.jira.component.ComponentAccessor.getOSGiComponentInstanceOfType(com.exalate.api.node.INodeService.class) def proxyUser = nserv?.getProxyUser() def ilm = com.atlassian.jira.component.ComponentAccessor.getIssueLinkManager() def RELATES = 10003L // 10003 is the 'relates' issue link type Long localId = Long.parseLong(issue.id) Long remoteId = Long.parseLong(replica.customKeys.issueId) // check if the link exists def linkExists = ilm.getInwardLinks(RELATES).find { it.sourceId == remoteId } || ilm.getOutwardLinks(RELATES).find { it.destinationId == remoteId } if (!linkExists) ilm.createIssueLink(localId, remoteId, RELATES, null, proxyUser) }
Give it a try
CommentAdd your comment...
Overview
Content Tools
search
attachments
weblink
advanced