Bhavya-org / Scripts

0 stars 0 forks source link

fixversion set #33

Open sani-d opened 3 weeks ago

sani-d commented 3 weeks ago

def issueKey = issue.key logger.info(issueKey)

def toStatusArray = [ "In Progress", "CODE REVIEW", "PR APPROVED", "READY FOR TESTING", "IN TESTING", "DEPLOYING", "BUSINESS REVIEW", "RELEASE PAYLOAD", "DEPLOYED TO PROD", "MANUAL REGRESSION", "DONE", "CLOSED", "BLOCKED", "READY (DOR)", "DRAFT", "IN REFINEMENT", "INVESTIGATION", "PRIORITISED" ]

def issueType = issue.fields.issuetype?.name def component = issue.fields.components?.collect { it.name }?.join(", ") // Handle components as a list def fixVersion = issue.fields.fixVersions?.collect { it.name }?.join(", ") // Handle fixVersions as a list

logger.info("Issue Type: ${issueType}") logger.info("Component: ${component}") logger.info("Fix Version: ${fixVersion}")

for (item in changelog.items) { logger.info("Field: ${item.field}") if (item.field == "status") { def fromStatus = item.fromString def toStatus = item.toString logger.info("From: ${fromStatus}, To: ${toStatus}")

    def statusTransitionCheck = toStatusArray.contains(toStatus)
    logger.info("Status Transition Check: ${statusTransitionCheck}")
    logger.info("Issue Type Check: ${issueType == 'Story'}")
    logger.info("Component Check: ${component == 'Backend'}")
    logger.info("Fix Version Check: ${fixVersion == null || fixVersion.isEmpty()}")

    if (statusTransitionCheck && issueType == "Story" && component == "Backend" && (fixVersion == null || fixVersion.isEmpty())) {
        def response = put("/rest/api/3/issue/${issueKey}")
            .header('Content-Type', 'application/json')
            .body([
                fields: [
                    fixVersions: [[name: "BACKEND_CONTINUOUS_DELIVERY"]]
                ]
            ])
            .asObject(Map)

        // Handle response
        if (response.status == 200 || response.status == 204) {
            logger.info("Fix version updated successfully.")
        } else {
            logger.error("Failed to update fix version. Status code: ${response.status}, Response body: ${response.body}")
        }
    }
}

}