Как с помощью Script Runner автоматически назначить исполнителя определенной роли при создании задачи

Назначение исполнителя на определенную задачу является неотъемлемой частью процесса работы в JIRA. Это настолько привычная операция, что мы даже не замечаем как часто мы это делаем. Также мы не замечаем, что вокруг множество шаблонных ситуаций, когда приходится назначать одного и того же исполнителя в типичных ситуациях. Человеческий фактор никто не отменял. Забыли назначить кого нужно — сотрудник не вовремя увидел задачу. Не вовремя увидел задачу — потеряли драгоценное время, сорвали сроки и т.д.

Рассмотрим простой пример.
Согласно процесса каждая Story должна быть назначена на менеджера проекта. Очевидно, что было бы очень удобно, если бы при создании Story выполнялось автоматическое назначение PM-а. Стоит обратить внимание, что в данном кейсе назначение должно выполняться именно по роли, а не на конкретного человека. С помощью плагина Script Runner эта задача вполне решаемая. В workflow при создании Story можно создать постфункцию в виде groovy скрипта.

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.security.roles.ProjectRoleManager
import com.atlassian.jira.user.ApplicationUser

def projectRoleManager = ComponentAccessor.getComponent(ProjectRoleManager)

//1. Получаем объект роли PM
def PMrole = projectRoleManager.getProjectRole(«Project Manager»)

if (PMrole == null)
return

//2.Получаем список участников роли PM в заданном проекте
def PMRoleActors = projectRoleManager.getProjectRoleActors(PMrole, issue.projectObject)
def PMUsers = PMRoleActors.getApplicationUsers()

//3. Получаем первого участника роли PM (менеджер как правило один в проекте)
ApplicationUser assignee = null
if ((PMUsers != null)&&((PMUsers as List

).size()>0))
{
assignee = PMUsers.first()
}

//4. Назначение PM-а в качестве исполнителя
if (assignee != null)
{
issue.setAssignee(assignee)
issue.store()
}

Похожим способом можно формировать различные стратегии автоматического назначения исполнителей при различных переходах и при создании различных типов задач.