feat(config): отключаемый Telegram-канал (telegram.enabled)
Some checks failed
CI / test (push) Failing after 1m20s
CI / build-and-package (amd64, linux) (push) Failing after 1m5s
CI / build-and-package (amd64, windows) (push) Successful in 31s

- TelegramCfg.Enabled (дефолт true); при false канал не создаётся и не крепится в Router, long-poll не стартует — нет сетевых вызовов к api.telegram.org
- Validate требует token/chat_id только при enabled
- Load пресетит enabled=true до unmarshal (applyDefaults для bool не различает явный false)
- тесты, README и config.yaml.example обновлены
This commit is contained in:
ki.sagidullin
2026-08-23 17:36:05 +05:00
parent 4c0dc80aa8
commit d731a7429d
7 changed files with 95 additions and 33 deletions

View File

@@ -35,6 +35,10 @@ func Load(path string) (*Config, error) {
}
}
cfg := &Config{}
// Telegram по умолчанию включён (если в YAML не указан enabled).
// Делаем до unmarshal: yaml.Unmarshal перезапишет поле, только если ключ
// есть в документе, поэтому отсутствующий enabled останется true.
cfg.Telegram.Enabled = true
if !noFile {
expanded := os.Expand(string(raw), envLookup)
if err := yaml.Unmarshal([]byte(expanded), cfg); err != nil {