Compare commits

...

25 Commits

Author SHA1 Message Date
Unbound Release 481951de0e chore(release): prepare for v0.0.17 2025-08-14 20:45:51 +02:00
Renovate 7ee2317140 chore(deps): update dependency go to v1.25.0 2025-08-14 14:58:37 +00:00
Renovate 94fcb060d3 fix(deps): update kubernetes packages to v0.33.4 2025-08-14 09:54:54 +02:00
Renovate 1161820b94 chore(deps): update golang docker tag to v1.25.0 2025-08-14 09:54:08 +02:00
Renovate e4d3d8841a chore(deps): update pre-commit hook golangci/golangci-lint to v2.4.0 2025-08-13 20:58:57 +00:00
Renovate fb20a6a806 chore(deps): update golang:1.24.6 docker digest to 958bfd1 2025-08-12 22:58:19 +00:00
Renovate 328fabe3b5 chore(deps): update pre-commit hook pre-commit/pre-commit-hooks to v6 2025-08-09 19:58:16 +00:00
Renovate 11d51f6fdf chore(deps): update golang docker tag to v1.24.6 2025-08-07 08:24:21 +02:00
Renovate ec59963e86 chore(deps): update dependency go to v1.24.6 2025-08-06 18:58:16 +00:00
Renovate 6b8a91184d chore(deps): update pre-commit hook golangci/golangci-lint to v2.3.1 2025-08-02 21:58:35 +00:00
Renovate d0e61803c7 chore(deps): update golang:1.24.5 docker digest to 0a156a4 2025-07-22 04:57:41 +00:00
Renovate a9b4316b9e chore(deps): update pre-commit hook golangci/golangci-lint to v2.3.0 2025-07-21 14:57:48 +00:00
Renovate 4a6dfee862 fix(deps): update module github.com/alecthomas/kong to v1.12.1 2025-07-21 03:57:56 +00:00
Unbound Release 878b7183f7 chore(release): prepare for v0.0.16 2025-07-16 15:49:36 +00:00
Renovate 2beecabd67 fix(deps): update kubernetes packages to v0.33.3 2025-07-16 05:02:28 +00:00
Renovate b2e5cb0136 chore(deps): update pre-commit hook golangci/golangci-lint to v2.2.2 2025-07-11 12:54:35 +00:00
Renovate ce6b366df2 chore(deps): update golang docker tag to v1.24.5 2025-07-09 18:55:36 +00:00
Renovate 0305a116a7 chore(deps): update dependency go to v1.24.5 2025-07-08 17:54:40 +00:00
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 76 additions and 33 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
+2 -2
View File
@@ -2,7 +2,7 @@
# See https://pre-commit.com/hooks.html for more hooks
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
rev: v6.0.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
@@ -36,6 +36,6 @@ repos:
- id: go-vet
- id: gofumpt
- repo: https://github.com/golangci/golangci-lint
rev: v2.1.6
rev: v2.4.0
hooks:
- id: golangci-lint
+19 -17
View File
@@ -1,40 +1,52 @@
# Changelog
## [0.0.17] - 2025-08-14
All notable changes to this project will be documented in this file.
### 🐛 Bug Fixes
- *(deps)* Update module github.com/alecthomas/kong to v1.12.1
- *(deps)* Update kubernetes packages to v0.33.4
## [0.0.16] - 2025-07-16
### 🐛 Bug Fixes
- *(deps)* Update kubernetes packages to v0.33.3
## [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
- *(deps)* Update kubernetes packages to v0.33.2
## [0.0.13] - 2025-05-16
### 🐛 Bug Fixes
- *(deps)* Update module github.com/alecthomas/kong to v1.11.0
- *(deps)* Update kubernetes packages to v0.33.1
## [0.0.12] - 2025-04-24
### 🐛 Bug Fixes
- *(deps)* Update kubernetes packages to v0.33.0
## [0.0.11] - 2025-04-23
### 🐛 Bug Fixes
- *(deps)* Update module github.com/alecthomas/kong to v1.10.0
- *(deps)* Update kubernetes packages to v0.32.4
## [0.0.10] - 2025-03-12
### 🐛 Bug Fixes
- *(deps)* Update module github.com/alecthomas/kong to v1.9.0
- *(deps)* Update kubernetes packages to v0.32.3
## [0.0.9] - 2025-03-03
### 🐛 Bug Fixes
@@ -45,14 +57,12 @@ All notable changes to this project will be documented in this file.
- *(deps)* Update kubernetes packages to v0.32.2
- *(deps)* Update module github.com/alecthomas/kong to v1.8.1
- *(docker)* Use amd64 golang base image for build
## [0.0.8] - 2025-01-17
### 🐛 Bug Fixes
- *(deps)* Update module github.com/alecthomas/kong to v1.6.1
- *(deps)* Update kubernetes packages to v0.32.1
## [0.0.7] - 2024-12-28
### 🐛 Bug Fixes
@@ -68,7 +78,6 @@ All notable changes to this project will be documented in this file.
- Simplify CI configuration by removing unused variables
- *(golangci)* Increase timeout to 5 minutes
## [0.0.6] - 2024-11-21
### 🐛 Bug Fixes
@@ -80,13 +89,11 @@ All notable changes to this project will be documented in this file.
### ⚙️ Miscellaneous Tasks
- Remove pre-commit stage and include Go pre-commit template
## [0.0.5] - 2024-10-24
### 🐛 Bug Fixes
- *(deps)* Update kubernetes packages to v0.31.2
## [0.0.4] - 2024-10-06
### 🐛 Bug Fixes
@@ -177,7 +184,6 @@ All notable changes to this project will be documented in this file.
### 🛡️ Security
- *(deps)* [security] bump golang.org/x/net from 0.13.0 to 0.17.0
## [0.0.3] - 2022-09-27
### 🚀 Features
@@ -188,17 +194,13 @@ All notable changes to this project will be documented in this file.
- *(deps)* Bump k8s.io/client-go from 0.25.0 to 0.25.1
- *(deps)* Bump k8s.io/client-go from 0.25.1 to 0.25.2
## [0.0.2] - 2022-09-09
### 🐛 Bug Fixes
- Add CA certificates
## [0.0.1] - 2022-09-09
### 🚀 Features
- Initial commit
<!-- generated by git-cliff -->
+1 -1
View File
@@ -1,4 +1,4 @@
FROM amd64/golang:1.24.4@sha256:3494bbe140127d12656113203ec91b8e3ff34e8a2b06a0a22bb0d8a41cc69e53 as build
FROM amd64/golang:1.25.0@sha256:36e95221032d4c929d001ae5c1059ba1fbe1dec3b1f5c74d2708583d3141e151 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{
+5 -5
View File
@@ -2,16 +2,16 @@ module gitlab.com/unboundsoftware/gitlab-cleanup-handler
go 1.24.0
toolchain go1.24.4
toolchain go1.25.0
require (
github.com/alecthomas/kong v1.11.0
github.com/alecthomas/kong v1.12.1
github.com/apex/log v1.9.0
github.com/stretchr/testify v1.10.0
gitlab.com/unboundsoftware/apex-mocks v0.2.0
k8s.io/api v0.33.2
k8s.io/apimachinery v0.33.2
k8s.io/client-go v0.33.2
k8s.io/api v0.33.4
k8s.io/apimachinery v0.33.4
k8s.io/client-go v0.33.4
)
require (
+8 -8
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.1 h1:iq6aMJDcFYP9uFrLdsiZQ2ZMmcshduyGv4Pek0MQPW0=
github.com/alecthomas/kong v1.12.1/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=
@@ -195,12 +195,12 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C
gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c/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=
k8s.io/api v0.33.2 h1:YgwIS5jKfA+BZg//OQhkJNIfie/kmRsO0BmNaVSimvY=
k8s.io/api v0.33.2/go.mod h1:fhrbphQJSM2cXzCWgqU29xLDuks4mu7ti9vveEnpSXs=
k8s.io/apimachinery v0.33.2 h1:IHFVhqg59mb8PJWTLi8m1mAoepkUNYmptHsV+Z1m5jY=
k8s.io/apimachinery v0.33.2/go.mod h1:BHW0YOu7n22fFv/JkYOEfkUYNRN0fj0BlvMFWA7b+SM=
k8s.io/client-go v0.33.2 h1:z8CIcc0P581x/J1ZYf4CNzRKxRvQAwoAolYPbtQes+E=
k8s.io/client-go v0.33.2/go.mod h1:9mCgT4wROvL948w6f6ArJNb7yQd7QsvqavDeZHvNmHo=
k8s.io/api v0.33.4 h1:oTzrFVNPXBjMu0IlpA2eDDIU49jsuEorGHB4cvKupkk=
k8s.io/api v0.33.4/go.mod h1:VHQZ4cuxQ9sCUMESJV5+Fe8bGnqAARZ08tSTdHWfeAc=
k8s.io/apimachinery v0.33.4 h1:SOf/JW33TP0eppJMkIgQ+L6atlDiP/090oaX0y9pd9s=
k8s.io/apimachinery v0.33.4/go.mod h1:BHW0YOu7n22fFv/JkYOEfkUYNRN0fj0BlvMFWA7b+SM=
k8s.io/client-go v0.33.4 h1:TNH+CSu8EmXfitntjUPwaKVPN0AYMbc9F1bBS8/ABpw=
k8s.io/client-go v0.33.4/go.mod h1:LsA0+hBG2DPwovjd931L/AoaezMPX9CmBgyVyBZmbCY=
k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff h1:/usPimJzUKKu+m+TE36gUyGcf03XZEP0ZIKgKj35LS4=