feat: пример конфига, README; чистка и тесты BuildNotifiers

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Vladimir V Maksimov
2026-06-14 11:16:42 +03:00
parent a21bb73175
commit 1a54862e91
9 changed files with 115 additions and 74 deletions

View File

@@ -61,13 +61,8 @@ type Notifier interface {
- **`telegramNotifier{bot *notify.Bot, chatID int64}`**
Форматирует тело в ` ``` `-блок (как сейчас), отправляет `bot.SendTextMessage`
(ParseMode Markdown).
- **`pachcaNotifier{webhookURL string, client *http.Client}`**
Использует **входящий вебхук** Pachca (incoming webhook), а не API-токен.
Форматирует в markdown ` ``` `-блок и POST-ит `{"message": text}` (JSON,
`Content-Type: application/json`) на `webhook_url`. Токен/chat_id не нужны —
идентификатор в URL и есть авторизация; сообщение уходит во все групповые чаты,
где состоит бот. Библиотечный `notify.Pachca` (Bearer API + chat_id) для этого
НЕ используется. Проверено: тестовый POST вернул `200`.
- **`pachcaNotifier{client *notify.Pachca, chatID int64}`**
Форматирует в markdown ` ``` `-блок, отправляет `client.SendMessage(chatID, text)`.
- **`emailNotifier{auth notify.SmtpAuth, from mail.Address, to []mail.Address, subject string}`**
Форматирует тело в `<pre>…</pre>` с HTML-экранированием содержимого, отправляет
`notify.SendEmailHTML(auth, body, subject, from, to...)`.
@@ -93,7 +88,8 @@ telegram:
disable_ipv6: true # опционально, по умолчанию true
pachca:
webhook_url: "https://api.pachca.com/webhooks/XXXX" # входящий вебхук
token: "*****"
chat_id: 12345
email:
smtp_addr: "smtp.example.com:587"
@@ -123,7 +119,8 @@ type ConfigTelegram struct {
}
type ConfigPachca struct {
WebhookURL string `yaml:"webhook_url"` // входящий вебхук Pachca
Token string `yaml:"token"`
ChatID int64 `yaml:"chat_id"`
}
type ConfigEmail struct {