connect issues over a transition

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}")
}