Изменить поле статуса Epic при установке разрешения - malikovalibek/groovyForJira GitHub Wiki

Обзор С эпическими проблемами в Jira Cloud связано поле «Эпический статус». На панели эпиков на досках схватки видны только эпики со значением «Эпический статус», отличным от «Готово». Используйте этот скрипт для синхронизации значения поля «Эпический статус» с разрешением эпоса, чтобы оно автоматически устанавливалось при переходе разрешения эпоса.

пример С эпическими проблемами в Jira Cloud связано поле «Эпический статус». На панели эпиков на досках схватки видны только эпики со значением «Эпический статус», отличным от «Готово». Используйте этот скрипт для синхронизации значения поля «Эпический статус» с разрешением эпоса, чтобы оно автоматически устанавливалось при переходе разрешения эпоса.

Хорошо знать Установите сценарий в качестве прослушивателя для события «Проблема обновлена». Добавьте условие к слушателю, чтобы сценарий выполнялся только для эпических проблем. С участием ScriptRunner для Jira от Adaptavist

Создано 5 месяцев назад , Обновлено 4 месяца назад

Облачный код

Требования Jira Jira

// Add the next line as a condition to the script listener, so it gets executed only for epic issues, the line must be written uncommented: // issue.isEpic

// Check if the resolution has been changed def resolutionChange = changelog.items.find { (it as Map).field == 'resolution' } as Map logger.info("The resolution change of issue '${issue.key}': ${resolutionChange}.")

if (!resolutionChange) { logger.info("The resolution didn't change.") return }

// Compute the 'Epic Status' value to set based on the resolution value def newEpicStatusValue = (resolutionChange.toString == 'Done') ? 'Done' : 'To Do'

// Get the 'Epic Status' field ID final epicStatusField = get("/rest/api/2/field") .asObject(List) .body .find { (it as Map).name == 'Epic Status' } as Map def epicStatusFieldId = epicStatusField.id

logger.info("Updating Epic Status field (${epicStatusFieldId}) to '${newEpicStatusValue}'.") // Update the 'Epic Status' field value put("/rest/api/2/issue/${issue.key}") .queryString("overrideScreenSecurity", Boolean.TRUE) .header("Content-Type", "application/json") .body([ fields: [ (epicStatusFieldId): [value: newEpicStatusValue] ] ]) .asString()