Azure Devops - Jira Cloud POC

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


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