Bhavya-org / Scripts

0 stars 0 forks source link

subtask transition to done when parent move to done #31

Open Bhavya-ss opened 3 weeks ago

Bhavya-ss commented 3 weeks ago

// Define transition IDs for different statuses def todoTransitionId = 11 def inProgressTransitionId = 21 def doneTransitionId = 31 // Check the current status of the parent issue def parentStatus = issue.fields.status.name // Map parent statuses to corresponding subtask transition IDs def transitionMap = [ "To Do": todoTransitionId, "In Progress": inProgressTransitionId, "Done": doneTransitionId ] // Get the transition ID for the parent status def transitionId = transitionMap[parentStatus] // Transition subtasks based on the parent status transitionSubtasks(transitionId) // Function to transition subtasks def transitionSubtasks(transitionId) { // Get all subtasks below the parent issue def jqlQuery = "parent=${issue.key}" def allSubTasks = get("/rest/api/2/search") .queryString("jql", jqlQuery) .asObject(Map) assert allSubTasks.status >= 200 && allSubTasks.status <= 300 def subtaskIssues = allSubTasks.body.issues as List // Iterate over each subtask and transition subtaskIssues.each { subtask -> def transition = post("/rest/api/2/issue/" + subtask.key + "/transitions") .header("Content-Type", "application/json") .body([transition: [id: transitionId]]) .asObject(Map) assert transition.status >= 200 && transition.status <= 300 } }