# Настройка 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<TOKEN>/getUpdates`
3. Найдите `"chat":{"id":123456789}` - это ваш Chat ID

**Способ 2 - Групповой чат:**
1. Добавьте бота в группу
2. Дайте боту права администратора (если нужно)
3. Напишите в группе: `/start`
4. Откройте: `https://api.telegram.org/bot<TOKEN>/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 уведомления отключены чтобы избежать ошибок. Включите их только после настройки секретов.