Планирование наше ВСЁ!
Те, кому не достаточно планирования в Jira с использованием спринтов, те, кому важно сделать планирование более детальным, но в тоже время не забивать голову запоминанием запланированных дат, переносом задач в нужные статусы с наступлением этих дат и т.п - эта статья для вас.
Заявка звучит так: Необходимо чтобы задачи в которых я являюсь исполнителем "лежали" в статусе "Отложено" до определенной даты, с наступлением которой, задачи автоматически попадают в статус "Начать работу".
Далее без лишних слов пошаговая инструкция по решению поставленной задачи:
Шаг 1 для Jira админа на пути к исполнению мечты заказчика - это создание кастомного поля ( Тип поля ‘Date Picker’ назовём «Вернуть в работу») и добавления его на экраны нужных нам типов задач.
Шаг 1.1 Можно сразу создать тестовую задачу(2,3) заполнив поле "Вернуть в работу" сегодняшней датой, чтобы протестить волшебство в реальном времени (либо увидеть ошибки и сразу поправить)))
Шаг 2 Пишем JQL который будет основой дальнейшей автоматизации. В нашем случае это будет выглядеть так:
project = "PROJECT" AND assignee = USER AND status = Отложена AND "Вернуть в работу" = startOfDay() . Данный запрос отбирает задачи, в которых Датой "Вернуть в работу" будет сегодня.
Шаг 3 Технические настройки волшебства ;)
Настройка MyGroovy scheduled tasks
-Add Task
-Скрипт автоматизации вставить в поле Script code* изменив значение строки "def actionId = " на идентефикатор перехода актуальный для вашего Бизнес процесса (где найти ID смотрите ниже)
import com.atlassian.jira.bc.issue.IssueService
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.IssueInputParametersImpl
def currentUser = ComponentAccessor.getJiraAuthenticationContext().loggedInUser
doTransition(issue, currentUser) addComment ("Задача возвращена в работу", issue, currentUser)
def addComment (commentText, issue, currentUser) {
def commentManager = ComponentAccessor.getCommentManager() commentManager.create(issue, currentUser,commentText, true) }
def doTransition(issue, currentUser) { IssueService issueService = ComponentAccessor.getIssueService() def actionId = 41
def transitionValidationResult
def transitionResult transitionValidationResult = issueService.validateTransition(currentUser, issue.id, actionId,new IssueInputParametersImpl())
if (transitionValidationResult.isValid()) {
transitionResult = issueService.transition(currentUser, transitionValidationResult)
if (transitionResult.isValid()){
log.debug("Transitioned issue $issue through action $actionId")
} else {
log.debug("Transition result is not valid") }
} else { log.debug("The transitionValidation is not valid") }
}
ID перехода (actionID) смотреть так:
Шаг 4 Нажимаем кнопочку Cоздать.
Иии если ваш JQL нашел задачи, соответствующие параметрам, волшебство под названием Автоматизация свершится )
ВАЖНО! Пользователь, от чьего имени будет совершаться переход, должен имть ПРАВА на совершение перехода (Смотри и настраивай раздел Permissions (Разрешения)
НЕ МЕНЕЕ ВАЖНО Удали тестовые задачи после удачного опыта!
Благодарю за внимание! Круто, если тебе пригодится