Телеграм-бот для оповещения об операциях, совершенных в установленных 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
- Скопировать репозиторий
git clone https://github.com/13Hz/gitlab-telegram-bot
- Установить
composer
зависимости
composer install
- Создать
.env
файл
cp .env.example .env
- Создать телеграм-бот с помощью @BotFather
- В Gitlab репозитории переходим в раздел
Webhooks
и создаем вебхук. Ссылка должна быть следующего формата:https://example.com/hook
. Здесь же нужно настроить триггеры и установить секретный токен - Настроить
.env
файл, указав актуальные данные для подключения к БД, параметры созданного бота (токен, имя), а так же токен Gitlab вебхука - Сгенерировать ключ
php artisan key:generate
- Создать символическую ссылку на каталог хранилища
php artisan storage:link
- Создать таблицы
php artisan migrate --seed
- Установить ссылку на вебхук для бота (ВАЖНО! для работы вебхука обязателен ssl сертификат).
php artisan telegram:webhook
После настройки серверной части можно приступать добавлению чатов и ссылок на репозитории для оповещений. Для этого можно воспользоваться командой /add <ссылка>
Эта команда установит связь текущего чата и репозитория по указанной ссылке, теперь, если вебхук Gitlab был настроен правильно, бот начнет писать в установленном чате о произошедших действиях
Что бы запустить бота локально и потестировать его функционал можно воспользоваться ngrok для открытия вашего локального веб-сервера в общий доступ. Плюсом использования ngrok
станет https соединение, необходимое для организации Webhook работы Telegram api