// 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
// 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