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

Узнайте, как использовать правила автоматизации 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: 

Замените «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. 

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

Рекомендовано для вас

Сообщество DevOps

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

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