incoming_sync.groovy
import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.bc.issue.search.SearchService import com.atlassian.jira.web.bean.PagerFilter // access search services def searchService = ComponentAccessor.getComponent(SearchService.class) def jcl = ComponentAccessor.classLoader def jqlQueryParserClass = jcl.loadClass("com.atlassian.jira.jql.parser.JqlQueryParser") def jqlQueryParser = ComponentAccessor.getOSGiComponentInstanceOfType(jqlQueryParserClass) def nserv = com.atlassian.jira.component.ComponentAccessor.getOSGiComponentInstanceOfType(com.exalate.api.node.INodeService.class) if(firstSync){ if (replica.customFields."Target issue key"?.value) { // a target issue key is provided, so link to that issue (if you find it) def query = jqlQueryParser.parseQuery("key = ${replica.customFields."Target issue key"?.value}") def search = searchService.search(nserv.proxyUser, query, PagerFilter.getUnlimitedFilter()) if (search.results.size() != 1) { // in case there is no result found, just do nothing return } issue.id = search.results.get(0).id issue.typeName = "Task" } else { issue.projectKey = "AN" issue.typeName = nodeHelper.getIssueType(replica.typeName)?.name ?: "Task" } //debug.error("first sync - id ${issue.id}") }