Как внутренние баги автоматически скрывать от клиента или заказчика в JIRA

Подключение в проекты JIRA представителей клиента или заказчика является распространенной ситуацией. Клиент вовлекается в процесс разработки, может следить за ходом выполнения задач, видеть оценку трудозатрат и фактически потраченное время. Для этого, как правило, в проекте создают отдельную роль с названием Client или Customer. У заказчика все как на ладони. Ведь по умолчанию, любая роль на проекте может просматривать все issues, что не всегда желательно. Возможность просмотра issues означает, что пользователь видит все детали запроса, включая переписку в комментариях или статистику трудозатрат.
Как полностью скрыть некоторые типы запросов от клиента? Под «полностью скрыть» понимается невозможность просмотреть issue ни по прямой ссылке, ни в фильтрах, ни в отчетах.
Для этих целей можно воспользоваться уровнями безопасности (securty levels). Уровень безопасности — это специальный набор правил, который определяет список групп, ролей или пользователей, которые могут видеть запрос. Стоит сделать акцент на том, что эти уровни позволяют управлять именно видимостью запросов. Внутри запроса, если соответствующим образом настроены Field Configuration Scheme и Screen Schemes, уровень безопасности можно указать в одноименном атрибуте Security Level.
Предположим, процесс необходимо построить таким образом, чтобы баги не были видны клиентам. По умолчанию, при создании каждого бага понадобилось бы вручную задавать определенный уровень безопасности, который исключает роль «Клиент» из списка допустимых. Пусть, например, этот уровень называется «Some Secure Level». Возникает очевидное желание настроить процесс так, чтобы при каждом создании бага соответствующий уровень безопасности устанавливался автоматически.
Для этого можно в workflow для бага на шаге создания добавить постфункцию в виде groovy-скрипта Script Runner

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.user.ApplicationUser
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.issue.security.IssueSecurityLevelManager

def user = ComponentAccessor.getJiraAuthenticationContext().getUser()
def issueSecurityLevelManager = ComponentAccessor.getComponent(IssueSecurityLevelManager)

def securityLevels = issueSecurityLevelManager.getUsersSecurityLevels(issue, user)
def securityLevel = securityLevels.find {it.name == «Some Secure Level»}
issue.setSecurityLevelId(securityLevel.id)
issue.store()