Compare commits

..

7 Commits

Author SHA1 Message Date
Unbound Release fce6d63e6d chore(release): prepare for v0.0.15 2025-07-01 14:23:43 +02:00
argoyle 44c05fece4 fix(client): handle error responses with detailed messages
Adds error handling for non-OK HTTP status codes in the client.
Implements custom error messages by reading the response body
when the status code indicates an error, ensuring better
debugging and clarity during failures.
Enhances unit tests to cover unauthorized access and incorrect 
body length scenarios, validating the error handling mechanism.
2025-07-01 08:27:58 +02:00
Renovate a6450faf0b chore(deps): update golang:1.24.4 docker digest to 9f820b6 2025-07-01 05:54:43 +00:00
Renovate a8c79c3337 chore(deps): update pre-commit hook golangci/golangci-lint to v2.2.1 2025-06-29 21:54:10 +00:00
Renovate 58c406980b chore(deps): update pre-commit hook golangci/golangci-lint to v2.2.0 2025-06-28 20:54:27 +00:00
Renovate 30ce3662a2 fix(deps): update module github.com/alecthomas/kong to v1.12.0 2025-06-25 00:55:09 +00:00
argoyle c409daacf7 chore(ci): update CI configuration for pipeline templates
Add additional CI templates for more flexible workflows. 
Include the Defaults.gitlab-ci.yml to standardize 
settings and add another project reference for 
enhanced release management. This improves 
project consistency and maintainability across 
different environments.
2025-06-23 13:44:24 +02:00
8 changed files with 57 additions and 5 deletions
+2
View File
@@ -1,5 +1,7 @@
include:
- template: 'Workflows/MergeRequest-Pipelines.gitlab-ci.yml'
- project: unboundsoftware/ci-templates
file: Defaults.gitlab-ci.yml
- project: unboundsoftware/ci-templates
file: Release.gitlab-ci.yml
- project: unboundsoftware/ci-templates
+1 -1
View File
@@ -36,6 +36,6 @@ repos:
- id: go-vet
- id: gofumpt
- repo: https://github.com/golangci/golangci-lint
rev: v2.1.6
rev: v2.2.1
hooks:
- id: golangci-lint
+11
View File
@@ -2,6 +2,17 @@
All notable changes to this project will be documented in this file.
## [0.0.15] - 2025-07-01
### 🐛 Bug Fixes
- *(deps)* Update module github.com/alecthomas/kong to v1.12.0
- *(client)* Handle error responses with detailed messages
### ⚙️ Miscellaneous Tasks
- *(ci)* Update CI configuration for pipeline templates
## [0.0.14] - 2025-06-20
### 🐛 Bug Fixes
+1 -1
View File
@@ -1,4 +1,4 @@
FROM amd64/golang:1.24.4@sha256:3494bbe140127d12656113203ec91b8e3ff34e8a2b06a0a22bb0d8a41cc69e53 as build
FROM amd64/golang:1.24.4@sha256:9f820b68683e8849cf596068952dfa062478c6664e6ae7f2a8888c25e885bce9 as build
WORKDIR /build
ENV CGO_ENABLED=0
ADD . /build
+6
View File
@@ -69,6 +69,12 @@ func (r *RestClient) projectApiCall(method, project string, api string, body io.
if resp.StatusCode == http.StatusOK && response != nil {
decoder := json.NewDecoder(resp.Body)
err = decoder.Decode(response)
} else if resp.StatusCode != http.StatusOK {
buff, err2 := io.ReadAll(resp.Body)
if err2 != nil {
return fmt.Errorf("error reading body: %w", err2)
}
return fmt.Errorf("status %d: %s", resp.StatusCode, string(buff))
}
return err
}
+33
View File
@@ -80,6 +80,39 @@ func TestRestClient_GetTags(t *testing.T) {
return assert.EqualError(t, err, "invalid character 'a' looking for beginning of value")
},
},
{
name: "unauthorized",
args: args{
project: "unboundsoftware/dummy",
},
handler: func(t *testing.T) http.HandlerFunc {
return func(writer http.ResponseWriter, request *http.Request) {
writer.WriteHeader(http.StatusUnauthorized)
_, _ = writer.Write([]byte("token expired"))
}
},
want: nil,
wantErr: func(t assert.TestingT, err error, i ...interface{}) bool {
return assert.EqualError(t, err, "status 401: token expired")
},
},
{
name: "error body length incorrect",
args: args{
project: "unboundsoftware/dummy",
},
handler: func(t *testing.T) http.HandlerFunc {
return func(writer http.ResponseWriter, request *http.Request) {
writer.Header().Set("Content-Length", "230")
writer.WriteHeader(http.StatusUnauthorized)
_, _ = writer.Write([]byte("token expired"))
}
},
want: nil,
wantErr: func(t assert.TestingT, err error, i ...interface{}) bool {
return assert.EqualError(t, err, "error reading body: unexpected EOF")
},
},
{
name: "success",
args: args{
+1 -1
View File
@@ -5,7 +5,7 @@ go 1.24.0
toolchain go1.24.4
require (
github.com/alecthomas/kong v1.11.0
github.com/alecthomas/kong v1.12.0
github.com/apex/log v1.9.0
github.com/stretchr/testify v1.10.0
gitlab.com/unboundsoftware/apex-mocks v0.2.0
+2 -2
View File
@@ -1,7 +1,7 @@
github.com/alecthomas/assert/v2 v2.11.0 h1:2Q9r3ki8+JYXvGsDyBXwH3LcJ+WK5D0gc5E8vS6K3D0=
github.com/alecthomas/assert/v2 v2.11.0/go.mod h1:Bze95FyfUr7x34QZrjL+XP+0qgp/zg8yS+TtBj1WA3k=
github.com/alecthomas/kong v1.11.0 h1:y++1gI7jf8O7G7l4LZo5ASFhrhJvzc+WgF/arranEmM=
github.com/alecthomas/kong v1.11.0/go.mod h1:p2vqieVMeTAnaC83txKtXe8FLke2X07aruPWXyMPQrU=
github.com/alecthomas/kong v1.12.0 h1:oKd/0fHSdajj5PfGDd3ScvEvpVJf9mT2mb5r9xYadYM=
github.com/alecthomas/kong v1.12.0/go.mod h1:p2vqieVMeTAnaC83txKtXe8FLke2X07aruPWXyMPQrU=
github.com/alecthomas/repr v0.4.0 h1:GhI2A8MACjfegCPVq9f1FLvIBS+DrQ2KQBFZP1iFzXc=
github.com/alecthomas/repr v0.4.0/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4=
github.com/apex/log v1.9.0 h1:FHtw/xuaM8AgmvDDTI9fiwoAL25Sq2cxojnZICUU8l0=