Close

Автоматическое управление инцидентами с помощью Jira и Statuspage

Фотография: Кев Зеттлер
Кев Зеттлер

Специалист по комплексной веб-разработке, DevOps

Узнайте, как использовать правила автоматизации Jira для автоматической синхронизации Statuspage с задачами Jira.

Время

5 минут на прочтение.

Аудитория

Вы опытный пользователь Jira Software с аккаунтом Statuspage.

Обязательные условия

Вам понадобится активный проект Jira с настроенным пользовательским типом заданий Incident (Инцидент) и пользовательским полем Incident ID (Идентификатор инцидента). Начните работу с Jira здесь.

Вам понадобится аккаунт Statuspage с доступом к API, а также ключ API и код страницы в Statuspage для настройки следующих правил автоматизации. Чтобы найти ключи API Statuspage, ознакомьтесь с руководством по API Statuspage. Начните работу со Statuspage здесь.

Шаг 1. Добавьте автоматизацию

Нажмите кнопку Add automation (Добавить автоматизацию) и выберите вариант Issue (Задача).

Нажмите: Add automation (Добавить автоматизацию); выберите: Issue (Задача)

Найдите и выберите пункт Issue created (Создана задача).

Новый триггер. Триггеры запускают выполнение правила. Триггеры могут реагировать на события или запускаться по расписанию.

Нажмите кнопку Save (Сохранить), чтобы продолжить.

Создана задача. Правило запускается при создании задачи. Этот триггер не требует настройки.

Шаг 2. Создайте новое условие

Далее найдите и выберите пункт Issue fields condition (Условие «Поля задачи»).

Выберите Issue fields condition (Условие «Поля задачи») в разделе New condition (Новое условие). Это условие проверяет, соответствует ли поле задачи заданным критериям.

Используйте вариант Issue fields condition (Условие «Поля задачи») для проверки соответствия типа задачи значению Incident (Инцидент) и выполнения необходимых действий. Настройте Issue fields condition (Условие «Поля задачи») таким образом, чтобы поле Issue Type (Тип задачи) было равно значению Incident (Инцидент). Нажмите Save (Сохранить), чтобы продолжить.

Используйте вариант Issue fields condition (Условие «Поля задачи») для проверки соответствия типа задачи значению Incident (Инцидент) и выполнения необходимых действий. Настройте Issue fields condition (Условие «Поля задачи») таким образом, чтобы поле Issue Type (Тип задачи) было равно значению Incident (Инцидент). Нажмите Save (Сохранить), чтобы продолжить.

Шаг 3. Отправьте веб-запрос

Выберите Send web request (Отправить веб-запрос), чтобы обновить Statuspage.

Новое действие. Выберите Send web request (Отправить веб-запрос)

Для настройки действия Send web request (Отправить веб-запрос) вам потребуется ключ API и код страницы в Statuspage. Эти значения можно найти в документации по Statuspage. Send web request (Отправить веб-запрос) — это расширенное действие, имеющее конфиденциальные входные значения. Далее в руководстве оно будет использовано в дополнительных правилах с повторением этой конфигурации.

В поле Webhook URL (URL-адрес веб-хука) укажите URL-адрес для конечной точки с инцидентами Statuspage:
https://api.StatusPage.io/v1/pages/your-page-code/incidents

Замените «your-page-code» на код страницы Statuspage. Заполните два поля в разделе заголовков: укажите Authorization:OAuth и ключ API.

Установите для параметра HTTP Method (HTTP-метод) значение POST. Для параметра Webhook body (Тело веб-хука) укажите Custom Data (Пользовательские данные).

Обязательно установите флажок Wait for Response (Ожидать ответа), так как значения из ответа на веб-запрос будут использоваться в дополнительных компонентах.

Поле Custom Data (Пользовательские данные) содержит код, который определяет полезную нагрузку инцидента для API в Statuspage. Интеллектуальные значения в коде позволяют извлечь описание задачи и добавить его к полезной нагрузке. На следующем снимке экрана показана завершенная конфигурация действия Send web request (Отправить веб-запрос). Нажмите Save (Сохранить), чтобы продолжить.

Отправить веб-запрос

Шаг 4. Создайте действие Edit Issue (Редактировать задачу)

Наконец, найдите и выберите действие Edit Issue (Редактировать задачу).

New action (Новое действие): Edit issue (Редактировать задачу)

Действие Edit Issue (Редактировать задачу) извлекает идентификатор инцидента из запроса Statuspage и сохраняет его в пользовательском поле Incident ID (Идентификатор инцидента). Извлечение идентификатора инцидента выполняется с помощью интеллектуальных значений. На следующем снимке экрана показана настройка компонента Edit Issue (Редактировать задачу).

Редактировать задачу. Укажите значения для полей задачи

На следующем снимке экрана показано окончательное описание правила.

Окончательное описание правила

Правило готово. Укажите для него название и нажмите кнопку Turn it on (Включить). Описанные далее автоматизации будут созданы на основе данных этого правила.

Обновление Statuspage при комментировании задачи

Правило запускается при комментировании задачи с типом «Инцидент». В Statuspage отправляется веб-запрос, который добавляет содержимое комментария в соответствующий инцидент. Компоненты правила описаны на следующем изображении.

Комментарий Statuspage к инциденту

В этом правиле мы снова видим такой компонент, как действие Send web request (Отправить веб-запрос). Оно с некоторыми изменениями было скопировано из предыдущего правила.

Значение поля Webhook URL (URL-адрес веб-хука) было дополнено строкой «/{{issue.incident_id}}». Для извлечения из задачи значения пользовательского поля Incident ID (Идентификатор инцидента) и его передачи в Statuspage в качестве целевого объекта веб-запроса используются интеллектуальные значения.

Теперь в поле HTTP method (HTTP-метод) установлено значение PATCH вместо POST. Это означает, что Statuspage обновит существующий инцидент вместо создания нового.

В поле Custom data (Пользовательские данные) добавлен код с интеллектуальными значениями. С их помощью тело комментария будет извлечено из задачи и добавлено в тело инцидента.

Комментарий Statuspage к инциденту
Отправить веб-запрос

Закрытие инцидента Statuspage при переходе задачи в статус «Готово»

Последнее правило связывает все воедино. Оно сообщает Statuspage о разрешении инцидента при переходе соответствующей задачи Jira в статус «Готово». Описание правила показано на следующем изображении.

Комментарий Statuspage к инциденту

Компонент веб-запроса снова был скопирован из предыдущих правил и изменен.

Отправить веб-запрос

Поле Custom data (Пользовательские данные) было изменено таким образом, чтобы инцидент перешел в статус «Решено». Это единственное отличие от предыдущего правила для комментариев.

Правила готовы к использованию. Вы можете их протестировать: создайте задачи с типом «Инцидент» и выполните триггерные действия. Отслеживать поведение правил можно в журнале автоматизации. В нем ведется регистрация правил и содержатся сведения об их поведении. Описанные в руководстве правила автоматизации служат отличными примерами расширенных правил с использованием веб-запросов к API.

Ознакомьтесь с сотнями других примеров в нашей библиотеке шаблонов автоматизации.

Kev Zettler
Kev Zettler

Kev — ведущий специалист по комплексной веб-разработке и серийный предприниматель более чем с десятилетним опытом создания продуктов и команд по методикам Agile. Он с большим энтузиазмом участвует в создании и развитии новых технологий с открытым исходным кодом, таких как DevOps, криптовалюта, виртуальная и дополненная реальность, а также преподает знания по этим технологиям. В свободное время Kev участвует в джемах по разработке инди-игр.


Поделитесь этой статьей
Следующая тема

Рекомендуемые статьи

Добавьте эти ресурсы в закладки, чтобы изучить типы команд DevOps или получать регулярные обновления по DevOps в Atlassian.

Рисунок: DevOps

Сообщество DevOps

Рисунок: DevOps

Образовательные программы DevOps

Рисунок схемы

Начните работу бесплатно

Подпишитесь на информационную рассылку по DevOps

Thank you for signing up