Gymterview
junior

Что такое ScriptRunner и когда его использовать?

ScriptRunner — один из самых популярных плагинов для Jira Data Center, позволяющий расширять Jira без написания полноценного Java-плагина через Groovy-скрипты с полным доступом к внутреннему API Jira.

Аналогия из жизни: ScriptRunner — это как швейцарский нож для Jira-администратора. Вместо того чтобы заказывать специальный инструмент (писать Java-плагин), вы достаёте ножик и решаете задачу прямо на месте за минуты.

Возможности ScriptRunner для DC

Функция Описание
Script Listeners Реакция на события Jira
Script Fields Вычисляемые кастомные поля
Behaviours Динамическое управление формами
Script Post-Functions Workflow post-functions на Groovy
Script Conditions Workflow conditions
Script Validators Workflow validators
Script Console Выполнение Groovy-скриптов ad-hoc
REST Endpoints Создание REST API на Groovy
Escalation Services Периодические задания

Пример: Script Listener

Пример
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.event.issue.IssueEvent
import com.atlassian.jira.issue.MutableIssue

def event = event as IssueEvent
def issue = event.issue as MutableIssue

if (issue.issueType.name == 'Bug' && issue.priority.name == 'Critical') {
    def currentLabels = issue.labels
    currentLabels.add('critical-auto')
    issue.setLabels(currentLabels)
    issueManager.updateIssue(event.user, issue,
            com.atlassian.jira.event.type.EventDispatchOption.DO_NOT_DISPATCH, false)
}

Пример: Script Field (вычисляемое поле)

Пример
import java.time.LocalDate
import java.time.temporal.ChronoUnit

def created = issue.created.toInstant()
        .atZone(java.time.ZoneId.systemDefault()).toLocalDate()
return ChronoUnit.DAYS.between(created, LocalDate.now())

Когда ScriptRunner достаточно vs когда нужен плагин

Критерий ScriptRunner Кастомный плагин
Сложность логики Простая-средняя Высокая
UI Минимальный Полноценный
Модель данных Поля Jira / PluginSettings Active Objects (собственные таблицы)
Тестирование Ручное / Script Console JUnit, интеграционные тесты
CI/CD Ограниченно Полноценный
Время разработки Минуты-часы Дни-недели

Частые ошибки

  • Groovy-скрипты без error handling — ошибка в listener может сломать операции пользователей
  • Тяжёлая логика в Script Field — поле вычисляется при каждом отображении задачи
  • Использование ComponentAccessor без проверки результата на null
  • Скрипты, зависящие от имён полей/статусов — ломаются при переименовании (используйте ID)

Как используется в 2026

  • ScriptRunner DC — по-прежнему самый популярный способ быстрой кастомизации
  • ScriptRunner Cloud значительно уступает DC-версии (JavaScript, нет Script Console, нет Behaviours)
  • Тренд: ScriptRunner для быстрого прототипирования, миграция на плагин при росте сложности
  • Для Cloud рекомендуют Jira Automation для простых сценариев вместо ScriptRunner Cloud

На собеседовании: подчеркните, что ScriptRunner покрывает 70-80% задач кастомизации без написания Java-плагина. Это инструмент номер один на Atlassian Marketplace. Для Cloud-версии возможности значительно ограничены. Ключевое правило: если задача решается ScriptRunner-скриптом за 20 минут — не пишите плагин.