[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-jira-chto-takoe-scriptrunner-i-kogda-ego-ispolzovat":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":18,"progress":19,"seo":20},1072,"chto-takoe-scriptrunner-i-kogda-ego-ispolzovat",27,"jira","Jira","📋","Что такое ScriptRunner и когда его использовать?","ScriptRunner — один из самых популярных плагинов для Jira Data Center, позволяющий расширять Jira без написания полноценного Java-плагина через Groovy-скрипты с полным доступом к внутреннему API Jira.\n\n> **Аналогия из жизни:** ScriptRunner — это как швейцарский нож для Jira-администратора. Вместо того чтобы заказывать специальный инструмент (писать Java-плагин), вы достаёте ножик и решаете задачу прямо на месте за минуты.\n\n### Возможности ScriptRunner для DC\n\n| Функция | Описание |\n|---|---|\n| Script Listeners | Реакция на события Jira |\n| Script Fields | Вычисляемые кастомные поля |\n| Behaviours | Динамическое управление формами |\n| Script Post-Functions | Workflow post-functions на Groovy |\n| Script Conditions | Workflow conditions |\n| Script Validators | Workflow validators |\n| Script Console | Выполнение Groovy-скриптов ad-hoc |\n| REST Endpoints | Создание REST API на Groovy |\n| Escalation Services | Периодические задания |\n\n### Пример: Script Listener\n\n```groovy\nimport com.atlassian.jira.component.ComponentAccessor\nimport com.atlassian.jira.event.issue.IssueEvent\nimport com.atlassian.jira.issue.MutableIssue\n\ndef event = event as IssueEvent\ndef issue = event.issue as MutableIssue\n\nif (issue.issueType.name == 'Bug' && issue.priority.name == 'Critical') {\n    def currentLabels = issue.labels\n    currentLabels.add('critical-auto')\n    issue.setLabels(currentLabels)\n    issueManager.updateIssue(event.user, issue,\n            com.atlassian.jira.event.type.EventDispatchOption.DO_NOT_DISPATCH, false)\n}\n```\n\n### Пример: Script Field (вычисляемое поле)\n\n```groovy\nimport java.time.LocalDate\nimport java.time.temporal.ChronoUnit\n\ndef created = issue.created.toInstant()\n        .atZone(java.time.ZoneId.systemDefault()).toLocalDate()\nreturn ChronoUnit.DAYS.between(created, LocalDate.now())\n```\n\n### Когда ScriptRunner достаточно vs когда нужен плагин\n\n| Критерий | ScriptRunner | Кастомный плагин |\n|---|---|---|\n| Сложность логики | Простая-средняя | Высокая |\n| UI | Минимальный | Полноценный |\n| Модель данных | Поля Jira \u002F PluginSettings | Active Objects (собственные таблицы) |\n| Тестирование | Ручное \u002F Script Console | JUnit, интеграционные тесты |\n| CI\u002FCD | Ограниченно | Полноценный |\n| Время разработки | Минуты-часы | Дни-недели |\n\n### Частые ошибки\n\n- Groovy-скрипты без error handling — ошибка в listener может сломать операции пользователей\n- Тяжёлая логика в Script Field — поле вычисляется при каждом отображении задачи\n- Использование ComponentAccessor без проверки результата на null\n- Скрипты, зависящие от имён полей\u002Fстатусов — ломаются при переименовании (используйте ID)\n\n### Как используется в 2026\n\n- ScriptRunner DC — по-прежнему самый популярный способ быстрой кастомизации\n- ScriptRunner Cloud значительно уступает DC-версии (JavaScript, нет Script Console, нет Behaviours)\n- Тренд: ScriptRunner для быстрого прототипирования, миграция на плагин при росте сложности\n- Для Cloud рекомендуют Jira Automation для простых сценариев вместо ScriptRunner Cloud\n\n> **На собеседовании:** подчеркните, что ScriptRunner покрывает 70-80% задач кастомизации без написания Java-плагина. Это инструмент номер один на Atlassian Marketplace. Для Cloud-версии возможности значительно ограничены. Ключевое правило: если задача решается ScriptRunner-скриптом за 20 минут — не пишите плагин.","","junior",[15,16,17,7],"groovy","scriptrunner","jira-plugin",[],null,{"title":21,"description":22,"ogTitle":23,"ogDescription":24,"keywords":25,"schemaAnswer":34,"featuredSnippetReady":35},"Что такое ScriptRunner и когда его использовать — Gymterview","ScriptRunner для Jira DC: Script Listeners, Fields, Behaviours, Post-Functions, REST Endpoints на Groovy. Когда ScriptRunner vs кастомный плагин.","ScriptRunner для Jira: Groovy-скриптинг vs кастомный плагин — Gymterview","ScriptRunner: №1 плагин Jira Marketplace. Listeners, Fields, Behaviours, REST на Groovy. Когда достаточно ScriptRunner, когда нужен Java-плагин.",[26,27,28,29,30,31,32,33],"ScriptRunner","Groovy","Script Listener","Script Field","Behaviours","Jira DC","кастомизация Jira","Adaptavist","ScriptRunner — №1 плагин Jira Marketplace для кастомизации DC через Groovy-скрипты: Script Listeners (события), Script Fields (вычисляемые поля), Behaviours (динамические формы), Post-Functions\u002FConditions\u002FValidators (workflow), REST Endpoints, Script Console. Покрывает 70-80% задач без Java-плагина. Cloud-версия ограничена (JavaScript, нет Behaviours, нет Console). Если задача решается за 20 минут — не пишите плагин.",true]