From 699768ee1544b9aae8360855f288e75b802544ac Mon Sep 17 00:00:00 2001 From: vovanbravin Date: Thu, 7 May 2026 10:38:38 +0300 Subject: [PATCH 1/5] ci: add linter golang --- .github/workflows/build.yml | 3 ++- .github/workflows/linter.yml | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/linter.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 78e2bd7..ce17e2f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,7 +9,8 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - name: Checkout code + uses: actions/checkout@v4 - name: Build docker-compose run: | diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml new file mode 100644 index 0000000..b966e31 --- /dev/null +++ b/.github/workflows/linter.yml @@ -0,0 +1,22 @@ +name: linter.yml +on: + pull_request + +jobs: + go_linter: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup Go + uses: actions/setup-go@v5 + + - name: Run golangci-lint + uses: golangci/golangci-lint-action@v6 + + + + + From 72e1c18c6d04f2f15ac606cd0262cf78f19aae4c Mon Sep 17 00:00:00 2001 From: vovanbravin Date: Thu, 7 May 2026 10:42:25 +0300 Subject: [PATCH 2/5] fix version --- .github/workflows/linter.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index b966e31..e0bd8fe 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -12,6 +12,8 @@ jobs: - name: Setup Go uses: actions/setup-go@v5 + with: + version: '1.24' - name: Run golangci-lint uses: golangci/golangci-lint-action@v6 From 4fac4baf14f22a14a796e27f5c776af70f6b858e Mon Sep 17 00:00:00 2001 From: vovanbravin Date: Thu, 7 May 2026 10:47:00 +0300 Subject: [PATCH 3/5] =?UTF-8?q?fix=20version=20=E2=84=962?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/linter.yml | 4 ++-- go.mod | 17 ++++++++++------- go.sum | 9 +++++++-- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index e0bd8fe..eddfa1f 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -12,11 +12,11 @@ jobs: - name: Setup Go uses: actions/setup-go@v5 - with: - version: '1.24' - name: Run golangci-lint uses: golangci/golangci-lint-action@v6 + with: + version: latest diff --git a/go.mod b/go.mod index ed629d3..1438701 100644 --- a/go.mod +++ b/go.mod @@ -1,17 +1,20 @@ module EventSpace -go 1.26.1 +go 1.25.0 + +require ( + github.com/go-chi/chi/v5 v5.2.5 + github.com/golang-jwt/jwt/v5 v5.3.1 + github.com/google/uuid v1.6.0 + github.com/jackc/pgx/v5 v5.9.2 + github.com/pelletier/go-toml/v2 v2.3.1 + golang.org/x/crypto v0.50.0 +) require ( - github.com/go-chi/chi/v5 v5.2.5 // indirect - github.com/golang-jwt/jwt/v5 v5.3.1 // indirect - github.com/google/uuid v1.6.0 // indirect github.com/jackc/pgpassfile v1.0.0 // indirect github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect - github.com/jackc/pgx/v5 v5.9.2 // indirect github.com/jackc/puddle/v2 v2.2.2 // indirect - github.com/pelletier/go-toml/v2 v2.3.1 // indirect - golang.org/x/crypto v0.50.0 // indirect golang.org/x/sync v0.20.0 // indirect golang.org/x/text v0.36.0 // indirect ) diff --git a/go.sum b/go.sum index c07d29f..9901e05 100644 --- a/go.sum +++ b/go.sum @@ -1,4 +1,6 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/go-chi/chi/v5 v5.2.5 h1:Eg4myHZBjyvJmAFjFvWgrqDTXFyOzjj7YIm3L3mu6Ug= github.com/go-chi/chi/v5 v5.2.5/go.mod h1:X7Gx4mteadT3eDOMTsXzmI4/rwUpOwBHLpAfupzFJP0= github.com/golang-jwt/jwt/v5 v5.3.1 h1:kYf81DTWFe7t+1VvL7eS+jKFVWaUnK9cB1qbwn63YCY= @@ -15,17 +17,20 @@ github.com/jackc/puddle/v2 v2.2.2 h1:PR8nw+E/1w0GLuRFSmiioY6UooMp6KJv0/61nB7icHo github.com/jackc/puddle/v2 v2.2.2/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= github.com/pelletier/go-toml/v2 v2.3.1 h1:MYEvvGnQjeNkRF1qUuGolNtNExTDwct51yp7olPtrEc= github.com/pelletier/go-toml/v2 v2.3.1/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= golang.org/x/crypto v0.50.0 h1:zO47/JPrL6vsNkINmLoo/PH1gcxpls50DNogFvB5ZGI= golang.org/x/crypto v0.50.0/go.mod h1:3muZ7vA7PBCE6xgPX7nkzzjiUq87kRItoJQM1Yo8S+Q= golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4= golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= -golang.org/x/text v0.29.0 h1:1neNs90w9YzJ9BocxfsQNHKuAT4pkghyXc4nhZ6sJvk= -golang.org/x/text v0.29.0/go.mod h1:7MhJOA9CD2qZyOKYazxdYMF85OwPdEr9jTtBpO7ydH4= golang.org/x/text v0.36.0 h1:JfKh3XmcRPqZPKevfXVpI1wXPTqbkE5f7JA92a55Yxg= golang.org/x/text v0.36.0/go.mod h1:NIdBknypM8iqVmPiuco0Dh6P5Jcdk8lJL0CUebqK164= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= From f334fb0d30c0ba365dc09830b05ad70da79b96a5 Mon Sep 17 00:00:00 2001 From: vovanbravin Date: Thu, 7 May 2026 10:53:34 +0300 Subject: [PATCH 4/5] =?UTF-8?q?fix=20version=20=E2=84=963?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/linter.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index eddfa1f..1171414 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -14,7 +14,7 @@ jobs: uses: actions/setup-go@v5 - name: Run golangci-lint - uses: golangci/golangci-lint-action@v6 + uses: golangci/golangci-lint-action@v2 with: version: latest From 7115039bc378f01f4f93bf3366edf6c8b6f44bf5 Mon Sep 17 00:00:00 2001 From: vovanbravin Date: Thu, 7 May 2026 11:19:08 +0300 Subject: [PATCH 5/5] fix final --- .github/workflows/linter.yml | 12 +++++++++--- internal/auth/handler/http.go | 18 +++++++++++++++--- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index 1171414..3fd2209 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -12,11 +12,17 @@ jobs: - name: Setup Go uses: actions/setup-go@v5 + with: + go-version: "1.25" + + - name: Install dependencies + run: | + go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest + - name: Run golangci-lint - uses: golangci/golangci-lint-action@v2 - with: - version: latest + run: | + golangci-lint run diff --git a/internal/auth/handler/http.go b/internal/auth/handler/http.go index e8c1676..9d2e3ad 100644 --- a/internal/auth/handler/http.go +++ b/internal/auth/handler/http.go @@ -36,10 +36,14 @@ func (h *AuthHandler) RegisterHandler(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json") w.WriteHeader(http.StatusCreated) - json.NewEncoder(w).Encode(map[string]interface{}{ + err = json.NewEncoder(w).Encode(map[string]interface{}{ "access_token": tokens.AccessToken, "expires_at": tokens.ExpiresAt, }) + if err != nil { + log.Printf("json encode error: %v", err) + http.Error(w, err.Error(), http.StatusBadRequest) + } } func (h *AuthHandler) Login(w http.ResponseWriter, r *http.Request) { @@ -62,10 +66,14 @@ func (h *AuthHandler) Login(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json") w.WriteHeader(http.StatusCreated) - json.NewEncoder(w).Encode(map[string]interface{}{ + err = json.NewEncoder(w).Encode(map[string]interface{}{ "access_token": tokens.AccessToken, "expires_at": tokens.ExpiresAt, }) + if err != nil { + log.Printf("json encode error: %v", err) + http.Error(w, err.Error(), http.StatusBadRequest) + } } func (h *AuthHandler) Refresh(w http.ResponseWriter, r *http.Request) { @@ -87,10 +95,14 @@ func (h *AuthHandler) Refresh(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json") w.WriteHeader(http.StatusCreated) - json.NewEncoder(w).Encode(map[string]interface{}{ + err = json.NewEncoder(w).Encode(map[string]interface{}{ "access_token": tokens.AccessToken, "expires_at": tokens.ExpiresAt, }) + if err != nil { + log.Printf("json encode error: %v", err) + http.Error(w, err.Error(), http.StatusBadRequest) + } }