Статьи
Обучающие материалы
Интерактивные руководства
Автоматическое управление инцидентами с помощью 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 (Задача).

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

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

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

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

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

Для настройки действия 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 (Редактировать задачу).

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

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

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

В этом правиле мы снова видим такой компонент, как действие Send web request (Отправить веб-запрос). Оно с некоторыми изменениями было скопировано из предыдущего правила.
Значение поля Webhook URL (URL-адрес веб-хука) было дополнено строкой «/{{issue.incident_id}}». Для извлечения из задачи значения пользовательского поля Incident ID (Идентификатор инцидента) и его передачи в Statuspage в качестве целевого объекта веб-запроса используются интеллектуальные значения.
Теперь в поле HTTP method (HTTP-метод) установлено значение PATCH вместо POST. Это означает, что Statuspage обновит существующий инцидент вместо создания нового.
В поле Custom data (Пользовательские данные) добавлен код с интеллектуальными значениями. С их помощью тело комментария будет извлечено из задачи и добавлено в тело инцидента.


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

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

Поле Custom data (Пользовательские данные) было изменено таким образом, чтобы инцидент перешел в статус «Решено». Это единственное отличие от предыдущего правила для комментариев.
Правила готовы к использованию. Вы можете их протестировать: создайте задачи с типом «Инцидент» и выполните триггерные действия. Отслеживать поведение правил можно в журнале автоматизации. В нем ведется регистрация правил и содержатся сведения об их поведении. Описанные в руководстве правила автоматизации служат отличными примерами расширенных правил с использованием веб-запросов к API.
Ознакомьтесь с сотнями других примеров в нашей библиотеке шаблонов автоматизации.
Поделитесь этой статьей
Следующая тема
Рекомендуемые статьи
Добавьте эти ресурсы в закладки, чтобы изучить типы команд DevOps или получать регулярные обновления по DevOps в Atlassian.

Сообщество DevOps

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