Подключаем webhooks для репозитория

Вебхуки (Webhooks) позволяют настроить репозиторий для отправки различных запросов и сообщений на удалённый сервер при возникновении на репозитории определённых событий.

Вебхук состоит из следующих компонентов:

  • Субъект — ресурс, в котором создаётся вебхук, то есть собственно репозиторий.
  • Одно или несколько событий — события, посылаемые вебхуком при срабатывании триггера (у большинства репозиториев событием по умолчанию является push).
  • URL — конечная точка, куда вебхук должен отправить данные.

После создания вебхука для определенного события, каждый раз, когда это событие будет происходить, вебхук будет срабатывать и отправлять информацию на заданный URL. Таким образом, можно рассматривать вебхуки как систему уведомлений.

Создание сервера

Перед тем, как создать вебхук в репозитории, нам нужен сервер, который будет принимать данные. Особенность вебхуков заключается в том, что их можно интегрировать в различные приложения или сервисы (Telegram, Битрикс24 и так далее).

Для примера воспользуемся месседжером Discord, который также поддерживает интеграцию вебхуков. Создадим в нём новый сервер, который будет получать данные от репозитория.

Затем на созданном сервере нажмём на его название и в открывшемся меню выберем Настройки сервера.

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

В появившемся окне будет предложено задать следующие данные для вебхука:

  • Имя вебхука, которое будет отображаться в сообщениях.
  • Канал, в который будут приходить сообщения (по умолчанию, в Discord создаётся канал #general, при желании вы можете создать новый канал специально для вебхука и задать его в параметрах).
  • Иконка для вебхука.

В поле URL вебхука автоматически сгенерируется URL, который нужно скопировать. Этот URL затем будет использоваться в качестве конечной точки при отправки вебхука.

Введя все нужные данные, сохраняем и завершаем создание вебхука. После этого вебхук будет отображаться в списке вебхуков, где его можно будет отредактировать.

Создание вебхука на репозитории

Теперь нужно создать вебхук на стороне репозитория, который будет отправлять данные на сервер. Воспользуемся для этого репозиторием GitHub.

В уже имеющемся проекте откроем вкладку Settings. Зайдём в раздел Webhooks и нажмём Add webhook, чтобы создать новый вебхук.

Здесь, аналогично созданию вебхука на сервере, нужно задать значения следующим полям:

  • Payload URL — собственно конечная точка, адрес сервера, куда нужно отправлять данные. Сюда нужно скопировать URL, который был сгенерирован в Discord при создании вебхука.
    Примечание: в официальной документации говорится, что для взаимодействия между Discord и GitHub крайне важно добавить в конец URL ‘/github‘. Например:

    https://discordapp.com/api/webhooks/424423662137901059/45LkPViOlhf7HEtpG_Pm8C-_B7Q_9ykWp9luUxP35XrM3kl8BVxPzKG3-oq-gzGzJksF/github
  • Content type — вид данных, которые будут отправляться на сервер. Выберем application/json, чтобы получать данные в формате JSON.
  • Which events would you like to trigger this webhook? — здесь следует выбрать, на каких событиях должен срабатывать триггер вебхука. Можно выбрать отправку данных только при push, при любых событиях или выбрать из списка те события, которые нужно отслеживать.

Введя все необходимые данные, сохраним вебхук, нажав Add webhook. Если всё сделано правильно, в списке вебхуков рядом с созданным вебхуком появится галочка, означающая, что соединение с сервером работает.

На этом подключение вебхуков завершено. Теперь, когда мы будем выполнять push в этот репозиторий, в Discord будут приходить соответствующие сообщения.

Добавление вебхука через Telegram

В Telegram существует большое количество ботов для автоматизации выполнения определённых операций. Одним из таких ботов является Integram, который позволяет интегрировать в Telegram различные сервисы в пару кликов.

Подключив Integram, можно увидеть диалог, предлагающий выбрать, что именно необходимо подключить.

Выберем GitHub, после чего откроется диалог с одноимённым ботом, который предложит ряд команд для работы с ним.

Пропишем команду /connect. Бот сгенерирует ссылку, по которой нужно пройти, чтобы связать бота с аккаунтом на GitHub.

После того, как соединение между ними будет установлено, нужно ввести команду /newintegration для того, чтобы интегрировать вебхук в нужный репозиторий.

Здесь будет предложено выбрать, какой репозиторий необходимо подключить. Далее нужно будет выбрать, куда отправлять данные: в личные сообщения или в группу.

После завершения интеграции можно увидеть сообщение о том, что репозиторий подключен. Если зайти в его настройки на GitHub, то в списке вебхуков будет созданный ботом вебхук.

В результате в Telegram будут приходить уведомления, отправленные этим вебхуком.

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *