package logging import ( "errors" "net/url" ) // SanitizeErr убирает из ошибки HTTP-транспорта URL запроса и возвращает только // первопричину. Ошибки клиента net/http — `*url.Error`, чей текст встраивает // полный URL, а URL может нести секрет: токен бота Telegram в пути // (`…/bot/`) или api_key TMDB в query // (`…/search/movie?api_key=&…`). Логировать или оборачивать такую ошибку // как есть нельзя — секрет утечёт в логи (инвариант «секреты не в логи», см. // logging.md, раздел «Безопасность»). // // Логическая операция при этом не теряется: она пишется отдельным полем // (`ext.operation`) на границе клиента. Не `*url.Error` — возвращаем как есть. func SanitizeErr(err error) error { var ue *url.Error if errors.As(err, &ue) { return ue.Err } return err }