JC Outgoing
replica."formattingtest" = nodeHelper.getHtmlField(issue, "customfield_10051") replica.key = issue.key replica.type = issue.type replica.assignee = issue.assignee replica.reporter = issue.reporter replica.summary = issue.summary replica.description = issue.description replica.labels = issue.labels replica.comments = nodeHelper.getHtmlComments(issue) replica.resolution = issue.resolution replica.status = issue.status replica.parentId = issue.parentId replica.priority = issue.priority replica.attachments = issue.attachments replica.project = issue.project replica.project.versions = [] replica.project.components = [] Epic.send() replica.due = issue.due replica.stepsResults = issue."Expected Results" replica.fixVersions = issue.fixVersions replica.affectedVersions = issue.affectedVersions replica.actualResults = issue."Actual Results" replica.severity = issue."Severity"?.value replica.steps = issue."Expected Results" replica.systemEnvironment = issue."System Environment"
ADO Outgoing
replica.key = workItem.key replica.assignee = workItem.assignee replica.summary = workItem.summary replica.description = nodeHelper.stripHtml(workItem.description) replica.type = workItem.type replica.status = workItem.status replica.labels = workItem.labels replica.comments = workItem.comments replica.attachments = workItem.attachments replica.project = workItem.project replica.areaPath = workItem.areaPath replica.iterationPath = workItem.iterationPath replica.severity = workItem."Microsoft.VSTS.Common.Severity" replica.priority = workItem.priority replica.steps = nodeHelper.stripHtml(workItem."Microsoft.VSTS.TCM.Steps") replica.reproSteps = nodeHelper.stripHtml(workItem."Microsoft.VSTS.TCM.ReproSteps") replica.createdBy = workItem."System.CreatedBy" replica.assignedTo = workItem."System.AssignedTo" replica.systemInfo = nodeHelper.stripHtml(workItem."Microsoft.VSTS.TCM.SystemInfo") replica.integrationBuild = workItem."Microsoft.VSTS.Build.IntegrationBuild" replica.dueDate = workItem."Microsoft.VSTS.Scheduling.DueDate" replica."formattingtest" = workItem."Custom.formattingtest"
ADO Incoming
import java.text.SimpleDateFormat if(firstSync){ workItem.typeName = nodeHelper.getIssueType(replica.type?.name)?.name ?: "Task"; } def sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss") if (replica.due){ workItem."Microsoft.VSTS.Scheduling.DueDate" = sdf.format(replica.due) } workItem."Microsoft.VSTS.Build.IntegrationBuild" = replica?.fixVersions[0]?.name workItem.labels = replica.labels workItem.priority = replica.priority workItem.summary = replica.summary workItem.description = replica.description //replica.description = nodeHelper.stripHtml(workItem.description) workItem.attachments = attachmentHelper.mergeAttachments(workItem, replica) issue.comments = commentHelper.mergeComments(issue, replica) workItem."Custom.formattingtest" = replica."formattingtest" if (replica.parentId) { def localParent = syncHelper.getLocalIssueKeyFromRemoteId(replica.parentId.toLong()) if (localParent) { workItem.parentId = localParent.id } } def statusMapping = ["open":"New", "In Review":"Active", "In Progress":"Active", "Resolved":"Resolved", "Cancelled":"Resolved", "Defer":"Resolved", "Reopened":"Active", "Pending with Customer":"Active", "QC Closed":"Closed"] def remoteStatusName = replica.status.name workItem.setStatus(statusMapping[remoteStatusName] ?: remoteStatusName) //priority def PriorityMap = [ "High" : "1", "Medium" : "2", "Low" : "3", "Lowest" : "4" ] def targetPriority = PriorityMap[replica.priority?.name] ?: "4" workItem.priority = nodeHelper.getPriority(targetPriority) //customFields workItem."Microsoft.VSTS.Common.Severity" = replica?.severityName workItem."Microsoft.VSTS.TCM.Steps" = replica?.StepsResults workItem."Microsoft.VSTS.TCM.Steps" = replica?.steps workItem."Microsoft.VSTS.TCM.ReproSteps" = replica?.actualResults //workItem.assignee = nodeHelper.getUserByEmail("roman.melnychenko@idalko.com") def defaultUser = nodeHelper.getUserByEmail("mathieu.lepoutre@idalko.com") workItem."System.AssignedTo" = nodeHelper.getUserByEmail(replica.AssignedTo) ?: defaultUser workItem."Microsoft.VSTS.TCM.SystemInfo" = replica?.systemEnvironment
JC Incoming
import java.text.SimpleDateFormat if(firstSync){ issue.projectKey = "COM" issue.typeName = nodeHelper.getIssueType(replica.type?.name, issue.projectKey)?.name ?: "Bug" if(issue.typeName == "Bug"){ issue."Bugs CF" = "yes" } } issue.customFields."formattingtest" = nodeHelper.toMarkDownFromHtml(replica.customFields."formattingtest") issue.summary = replica.summary issue.description = replica.description issue.comments = nodeHelper.toMarkDownComments(commentHelper.mergeComments(issue, replica)) issue.attachments = attachmentHelper.mergeAttachments(issue, replica) issue.labels = replica.labels def sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); if(replica.dueDate){ issue.due = sdf.parse(replica.dueDate) } def statusMapping = ["New":"open", "Active":"In Review", "Active":"In Progress", "Resolved":"Resolved", "Resolved":"Cancelled", "Resolved":"Defer", "Active":"Reopened", "Active":"Pending with Customer", "Closed":"QC Closed"] def remoteStatusName = replica.status.name issue.setStatus(statusMapping[remoteStatusName] ?: remoteStatusName) //priority def priorityMapping = [ // remote side priority <-> local side priority "1" : "High", "2":"Medium","3":"Low","4":"Lowest" ] def priorityName = priorityMapping[replica.priority?.name] issue.priority = nodeHelper.getPriority(priorityName) issue."Serverity" = replica?.serverity //Change default user! def defaultUser = nodeHelper.getUserByEmail("mathieu.lepoutre@idalko.com") issue.assignee = nodeHelper.getUserByEmail(replica.assignee?.email) ?: defaultUser issue.fixVersions = [nodeHelper.createVersion(issue, replica.integrationBuild, "Default description")] issue."Actual Results" = replica?.reproSteps issue."Severity" = replica?.severity issue."Expected Results" = replica?.steps issue."System Environment" = replica?.systemInfo issue."External Issue ID" = replica.key