chore(lint): настроить golangci-lint v2, gofumpt и форматирование в make

- .golangci.yml: набор линтеров под требования §14 (gosec, gocritic, sloglint,
  noctx, revive, depguard для запрета циклических зависимостей internal/*)
- gofumpt вынесен из formatters golangci-lint v2.13 (сообщал о расхождениях,
  которые сам же не устранял) и применяется отдельным инструментом
- make fmt/go-lint: проверка gofumpt + golangci-lint fmt --diff
- scripts/gitleaks-scan.sh: поддержка gitleaks 8.19+ (dir) и старых версий (detect)
- исправлены замечания линтеров: обработка ошибок Close, контекст в логах,
  NewRequestWithContext в тестах, комментарий к blank-import драйвера SQLite
This commit is contained in:
2026-09-19 18:25:20 +03:00
parent 4bd1770cb5
commit 2bf7101f2d
7 changed files with 64 additions and 37 deletions
+3 -4
View File
@@ -2,7 +2,6 @@ package httpx
import (
"encoding/json"
"errors"
"log/slog"
"net/http"
)
@@ -29,6 +28,8 @@ type errorEnvelope struct {
func (e Error) HTTPStatus() int {
switch e.Code {
case CodeInternalError:
return http.StatusInternalServerError
case CodeNotFound:
return http.StatusNotFound
case CodeBadRequest:
@@ -54,7 +55,7 @@ func WriteJSON(w http.ResponseWriter, status int, body any) {
return
}
if err := json.NewEncoder(w).Encode(body); err != nil {
slog.Error("write json response", "error", err)
slog.Error("write json response", slog.Any("error", err))
}
}
@@ -67,5 +68,3 @@ func WriteErrorStatus(w http.ResponseWriter, status int, code ErrorCode, message
}
func StatusForCode(code ErrorCode) int { return NewError(code, "").HTTPStatus() }
var errBodyTooLarge = errors.New("request body too large")