# Настройка Telegram уведомлений для Drone CI ## 📱 Как настроить Telegram уведомления Если вы хотите получать уведомления о сборках в Telegram, следуйте этой инструкции. ### 1. Создание Telegram бота 1. Найдите [@BotFather](https://t.me/botfather) в Telegram 2. Отправьте команду `/newbot` 3. Следуйте инструкциям для создания бота 4. Сохраните **токен бота** (например: `123456789:ABCdefGHIjklMNOpqrSTUvwxyz`) ### 2. Получение Chat ID **Способ 1 - Личные сообщения:** 1. Напишите вашему боту любое сообщение 2. Откройте: `https://api.telegram.org/bot/getUpdates` 3. Найдите `"chat":{"id":123456789}` - это ваш Chat ID **Способ 2 - Групповой чат:** 1. Добавьте бота в группу 2. Дайте боту права администратора (если нужно) 3. Напишите в группе: `/start` 4. Откройте: `https://api.telegram.org/bot/getUpdates` 5. Найдите Chat ID группы (обычно отрицательное число) ### 3. Настройка секретов в Drone Добавьте следующие секреты в ваш Drone CI репозиторий: ```bash # Токен бота telegram_token: 123456789:ABCdefGHIjklMNOpqrSTUvwxyz # Chat ID (можно несколько через запятую) telegram_chat_id: 123456789,987654321 ``` ### 4. Добавление в .drone.yml Добавьте этот пайплайн в ваш `.drone.yml`: ```yaml --- kind: pipeline type: docker name: telegram-notify steps: - name: telegram image: appleboy/drone-telegram settings: token: from_secret: telegram_token to: from_secret: telegram_chat_id format: markdown message: | {{#success build.status}} ✅ *Build Success* {{else}} ❌ *Build Failed* {{/success}} 📁 *Repository:* {{repo.name}} 🌿 *Branch:* {{build.branch}} 👤 *Author:* {{build.author}} 📝 *Commit:* `{{truncate build.commit 8}}` ⏱️ *Duration:* {{since build.started}} 🔗 [View Build]({{build.link}}) trigger: status: - success - failure depends_on: - catlink-ci ``` ### 5. Тестирование 1. Сделайте коммит в репозиторий 2. Проверьте логи Drone CI 3. Убедитесь, что уведомление пришло в Telegram ### 🛠️ Расширенные настройки #### Уведомления только для определенных событий ```yaml trigger: status: - success - failure branch: - master - main event: exclude: - pull_request ``` #### Кастомное сообщение с больше информации ```yaml message: | {{#success build.status}} 🎉 *Сборка прошла успешно!* {{else}} 💥 *Сборка упала!* {{/success}} 📦 *Проект:* {{repo.name}} 🌿 *Ветка:* {{build.branch}} 👨‍💻 *Автор:* {{build.author}} 📝 *Коммит:* `{{build.commit}}` ⏱️ *Время:* {{datetime build.finished "02/01/2006 15:04:05" "Europe/Moscow"}} {{#success build.status}} ✅ Все тесты прошли 🚀 Готово к деплою {{else}} ❌ Проверьте логи: {{build.link}} {{/success}} ``` ### 🔧 Устранение неполадок #### Ошибка: "missing telegram token or user list" **Причина:** Не настроены секреты в Drone **Решение:** 1. Проверьте, что секреты добавлены в настройках репозитория 2. Убедитесь в правильности названий секретов 3. Перезапустите сборку #### Ошибка: "Bad Request: chat not found" **Причина:** Неправильный Chat ID **Решение:** 1. Убедитесь, что бот добавлен в чат 2. Проверьте Chat ID через getUpdates API 3. Для групп используйте отрицательный ID #### Бот не отвечает **Причина:** Неправильный токен или бот заблокирован **Решение:** 1. Проверьте токен бота 2. Убедитесь, что бот не заблокирован 3. Создайте нового бота если необходимо ### 📱 Альтернативы Если Telegram не подходит, вы можете использовать: - **Slack**: `plugins/slack` - **Discord**: `appleboy/drone-discord` - **Email**: `drillster/drone-email` - **Microsoft Teams**: `kibble-cabal/drone-teams` --- **Примечание:** В текущей конфигурации Telegram уведомления отключены чтобы избежать ошибок. Включите их только после настройки секретов.