Skip to content

13Hz/gitlab-telegram-bot

Repository files navigation

image

Actions GitHub issues GitHub commit activity GitHub Telegram

Русский | English

Телеграм-бот для оповещения об операциях, совершенных в установленных Gitlab репозиториях. Мгновенно отправляет уведомления в приватные и общие чаты.

Возможности

Перечень триггеров из Gitlab:

  • Push events
  • Tag push events
  • Comments
  • Confidential comments
  • Issues events
  • Confidential issues events
  • Merge request events
  • Job events
  • Pipeline events
  • Wiki page events
  • Deployment events
  • Feature flag events
  • Releases events

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

/add - Добавить гитлаб репозиторий для получения уведомлений
/list - Вывод списка добавленных репозиториев
/help - Список доступных команд
/start - Регистрация чата и запуск бота

Основной командой для настройки связанных Gitlab репозиториев считается /list, кроме вывода списка можно удалять репозитории #5 и устанавливать фильтрацию получаемых уведомлений по типу триггеров #12

image

Установка и настройка

  1. Скопировать репозиторий
git clone https://github.com/13Hz/gitlab-telegram-bot
  1. Установить composer зависимости
composer install
  1. Создать .env файл
cp .env.example .env
  1. Создать телеграм-бот с помощью @BotFather
  2. В Gitlab репозитории переходим в раздел Webhooks и создаем вебхук. Ссылка должна быть следующего формата: https://example.com/hook. Здесь же нужно настроить триггеры и установить секретный токен
  3. Настроить .env файл, указав актуальные данные для подключения к БД, параметры созданного бота (токен, имя), а так же токен Gitlab вебхука
  4. Сгенерировать ключ
php artisan key:generate
  1. Создать символическую ссылку на каталог хранилища
php artisan storage:link
  1. Создать таблицы
php artisan migrate --seed
  1. Установить ссылку на вебхук для бота (ВАЖНО! для работы вебхука обязателен ssl сертификат).
php artisan telegram:webhook

После настройки серверной части можно приступать добавлению чатов и ссылок на репозитории для оповещений. Для этого можно воспользоваться командой /add <ссылка>

Эта команда установит связь текущего чата и репозитория по указанной ссылке, теперь, если вебхук Gitlab был настроен правильно, бот начнет писать в установленном чате о произошедших действиях

Локальный запуск

Что бы запустить бота локально и потестировать его функционал можно воспользоваться ngrok для открытия вашего локального веб-сервера в общий доступ. Плюсом использования ngrok станет https соединение, необходимое для организации Webhook работы Telegram api

About

Telegram bot for sending notifications from Gitlab

Topics

Resources

License

Stars

Watchers

Forks

Languages