Compare commits

...

69 Commits

Author SHA1 Message Date
releaser 2447df48d6 chore(release): prepare for v0.1.4 (#387)
Release / release (push) Successful in 1m11s
gitlab-cleanup-handler / test (push) Successful in 1m48s
gitlab-cleanup-handler / vulnerabilities (push) Successful in 3m53s
gitlab-cleanup-handler / build (push) Successful in 32m45s
## [0.1.4] - 2026-03-06

### 🐛 Bug Fixes

- *(deps)* Update kubernetes packages to v0.35.2 (#379)

### ⚙️ Miscellaneous Tasks

- *(deps)* Update pre-commit hook golangci/golangci-lint to v2.10.1 (#375)
- *(deps)* Update golang:1.26.0 docker digest to 9835fb4 (#377)
- *(deps)* Update dependency go to v1.26.1 (#381)
- *(deps)* Update golang docker tag to v1.26.1 (#382)
- *(deps)* Update pre-commit hook golangci/golangci-lint to v2.11.0 (#384)
- *(deps)* Update pre-commit hook golangci/golangci-lint to v2.11.1 (#386)

<!-- generated by git-cliff -->

---

**Note:** Please use **Squash Merge** when merging this PR.

Reviewed-on: #387
Co-authored-by: Unbound Releaser <releaser@unbound.se>
Co-committed-by: Unbound Releaser <releaser@unbound.se>
2026-03-06 20:00:04 +00:00
renovate 422e543187 chore(deps): update pre-commit hook golangci/golangci-lint to v2.11.1 (#386)
Release / release (push) Successful in 1m6s
gitlab-cleanup-handler / test (push) Successful in 2m13s
gitlab-cleanup-handler / vulnerabilities (push) Successful in 2m14s
gitlab-cleanup-handler / build (push) Successful in 6m15s
2026-03-06 18:39:59 +00:00
renovate 8a02f8a34b chore(deps): update pre-commit hook golangci/golangci-lint to v2.11.0 (#384)
Release / release (push) Successful in 1m14s
gitlab-cleanup-handler / test (push) Successful in 2m8s
gitlab-cleanup-handler / vulnerabilities (push) Successful in 2m7s
gitlab-cleanup-handler / build (push) Successful in 6m42s
2026-03-06 14:28:38 +00:00
renovate 0e7933be3f chore(deps): update golang docker tag to v1.26.1 (#382)
Release / release (push) Successful in 1m3s
gitlab-cleanup-handler / vulnerabilities (push) Successful in 1m49s
gitlab-cleanup-handler / test (push) Successful in 2m21s
gitlab-cleanup-handler / build (push) Successful in 6m2s
2026-03-06 02:31:54 +00:00
renovate 321ad98fe0 chore(deps): update dependency go to v1.26.1 (#381)
Release / release (push) Failing after 1m22s
gitlab-cleanup-handler / vulnerabilities (push) Successful in 2m30s
gitlab-cleanup-handler / test (push) Successful in 3m3s
gitlab-cleanup-handler / build (push) Successful in 12m16s
2026-03-06 02:06:16 +00:00
renovate e9b6663a55 fix(deps): update kubernetes packages to v0.35.2 (#379)
Release / release (push) Successful in 1m18s
gitlab-cleanup-handler / test (push) Successful in 2m35s
gitlab-cleanup-handler / vulnerabilities (push) Successful in 3m44s
gitlab-cleanup-handler / build (push) Successful in 10m53s
2026-02-27 09:16:39 +00:00
renovate f03617d3db chore(deps): update golang:1.26.0 docker digest to 9835fb4 (#377)
Release / release (push) Successful in 1m17s
gitlab-cleanup-handler / vulnerabilities (push) Successful in 2m29s
gitlab-cleanup-handler / test (push) Successful in 3m20s
gitlab-cleanup-handler / build (push) Successful in 5m19s
2026-02-25 00:17:48 +00:00
renovate 73b32e0cb5 chore(deps): update pre-commit hook golangci/golangci-lint to v2.10.1 (#375)
gitlab-cleanup-handler / test (push) Successful in 3m15s
gitlab-cleanup-handler / vulnerabilities (push) Successful in 2m54s
Release / release (push) Successful in 3m55s
gitlab-cleanup-handler / build (push) Successful in 13m2s
2026-02-17 17:28:25 +00:00
argoyle d1e4df4c25 Merge pull request 'chore(release): prepare for v0.1.3' (#374) from next-release into main
Release / release (push) Successful in 45s
gitlab-cleanup-handler / vulnerabilities (push) Successful in 2m20s
gitlab-cleanup-handler / test (push) Successful in 3m28s
gitlab-cleanup-handler / build (push) Successful in 38s
Reviewed-on: #374
2026-02-12 11:15:18 +00:00
releaser b9b044b5dc chore(release): prepare for v0.1.3
gitlab-cleanup-handler / vulnerabilities (pull_request) Successful in 2m15s
gitlab-cleanup-handler / test (pull_request) Successful in 2m50s
gitlab-cleanup-handler / build (pull_request) Successful in 36s
2026-02-12 11:06:46 +00:00
releaser 95285154d6 chore(release): prepare for v0.1.3 2026-02-12 11:06:42 +00:00
renovate 7bd29ca6a1 chore(deps): update pre-commit hook golangci/golangci-lint to v2.9.0 (#371)
gitlab-cleanup-handler / vulnerabilities (push) Successful in 2m11s
gitlab-cleanup-handler / test (push) Successful in 3m50s
gitlab-cleanup-handler / build (push) Failing after 40m42s
Release / release (push) Successful in 1m47s
2026-02-11 14:59:48 +00:00
renovate 617801b6b9 chore(deps): update dependency go to v1.26.0 (#368)
Release / release (push) Successful in 1m2s
gitlab-cleanup-handler / vulnerabilities (push) Successful in 1m56s
gitlab-cleanup-handler / test (push) Successful in 2m49s
gitlab-cleanup-handler / build (push) Successful in 2h22m10s
2026-02-11 14:34:37 +00:00
renovate af37cf4253 fix(deps): update kubernetes packages to v0.35.1 (#372)
Release / release (push) Successful in 37s
gitlab-cleanup-handler / vulnerabilities (push) Successful in 1m10s
gitlab-cleanup-handler / test (push) Successful in 3m20s
gitlab-cleanup-handler / build (push) Successful in 2h41m5s
2026-02-11 14:17:31 +00:00
renovate 3d6a684e06 chore(deps): update golang docker tag to v1.26.0 (#370)
gitlab-cleanup-handler / test (push) Failing after 2s
gitlab-cleanup-handler / vulnerabilities (push) Failing after 2s
Release / release (push) Failing after 2s
gitlab-cleanup-handler / build (push) Has been skipped
2026-02-11 07:43:31 +00:00
renovate 75890fcb64 chore(deps): update golang:1.25.7 docker digest to d2819ff (#369)
Release / release (push) Failing after 3s
gitlab-cleanup-handler / vulnerabilities (push) Successful in 2m17s
gitlab-cleanup-handler / test (push) Successful in 5m46s
gitlab-cleanup-handler / build (push) Failing after 3s
2026-02-10 23:57:35 +00:00
argoyle 9f6a3d50e5 Merge pull request 'chore(release): prepare for v0.1.2' (#360) from next-release into main
Release / release (push) Failing after 59s
gitlab-cleanup-handler / vulnerabilities (push) Successful in 2m22s
gitlab-cleanup-handler / test (push) Successful in 2m29s
gitlab-cleanup-handler / build (push) Successful in 3m37s
Reviewed-on: #360
2026-02-07 10:22:06 +00:00
releaser c9e6c79a76 chore(release): prepare for v0.1.2
gitlab-cleanup-handler / vulnerabilities (pull_request) Successful in 1m47s
gitlab-cleanup-handler / test (pull_request) Successful in 3m54s
gitlab-cleanup-handler / build (pull_request) Successful in 8m8s
2026-02-07 01:26:22 +00:00
releaser 7f013d7280 chore(release): prepare for v0.1.2
gitlab-cleanup-handler / test (pull_request) Successful in 2m19s
gitlab-cleanup-handler / vulnerabilities (pull_request) Successful in 2m21s
gitlab-cleanup-handler / build (pull_request) Successful in 10m4s
2026-02-07 01:26:19 +00:00
releaser 95283d52dc chore(release): prepare for v0.1.2 2026-02-07 01:26:13 +00:00
releaser 9943348a4d chore(release): prepare for v0.1.2 2026-02-07 01:26:13 +00:00
releaser 5cb857a050 chore(release): prepare for v0.1.2 2026-02-07 01:26:13 +00:00
releaser cb85332966 chore(release): prepare for v0.1.2 2026-02-07 01:26:13 +00:00
releaser 58131b2537 chore(release): prepare for v0.1.2 2026-02-07 01:26:13 +00:00
releaser 3456d0f495 chore(release): prepare for v0.1.2 2026-02-07 01:26:13 +00:00
releaser 3e33a70a55 chore(release): prepare for v0.1.2 2026-02-07 01:26:13 +00:00
releaser d4d62468b9 chore(release): prepare for v0.1.2 2026-02-07 01:26:13 +00:00
releaser 1e454d03f0 chore(release): prepare for v0.1.2 2026-02-07 01:26:13 +00:00
releaser 9cd2929e4a chore(release): prepare for v0.1.2 2026-02-07 01:26:13 +00:00
renovate 5b51086c4d fix(deps): update module github.com/alecthomas/kong to v1.14.0 (#367)
gitlab-cleanup-handler / test (push) Successful in 3m39s
Release / release (push) Successful in 1m17s
gitlab-cleanup-handler / vulnerabilities (push) Successful in 7m43s
gitlab-cleanup-handler / build (push) Successful in 1m47s
2026-02-07 01:24:24 +00:00
renovate fe9264ce90 chore(deps): update golang docker tag to v1.25.7 (#366)
Release / release (push) Failing after 1m21s
gitlab-cleanup-handler / vulnerabilities (push) Successful in 2m39s
gitlab-cleanup-handler / test (push) Successful in 3m21s
gitlab-cleanup-handler / build (push) Successful in 5m2s
2026-02-05 09:54:34 +00:00
renovate b3ef8e36db chore(deps): update dependency go to v1.25.7 (#365)
gitlab-cleanup-handler / vulnerabilities (push) Successful in 3m52s
Release / release (push) Successful in 4m2s
gitlab-cleanup-handler / test (push) Successful in 6m42s
gitlab-cleanup-handler / build (push) Successful in 16m45s
2026-02-04 16:19:07 +00:00
renovate ad8ac6810d chore(deps): update golang:1.25.6 docker digest to ceda080 (#364)
Release / release (push) Failing after 1m3s
gitlab-cleanup-handler / vulnerabilities (push) Successful in 1m7s
gitlab-cleanup-handler / test (push) Successful in 2m34s
gitlab-cleanup-handler / build (push) Successful in 11m7s
2026-02-03 08:56:42 +00:00
argoyle 684846dea8 Merge pull request 'chore: remove unused .gitlab-ci.yml' (#363) from remove-gitlab-ci into main
Release / release (push) Failing after 3m48s
gitlab-cleanup-handler / vulnerabilities (push) Successful in 8m12s
gitlab-cleanup-handler / test (push) Successful in 10m46s
gitlab-cleanup-handler / build (push) Failing after 17m32s
Reviewed-on: #363
2026-01-23 14:56:19 +00:00
argoyle 2b87103e23 chore: remove unused .gitlab-ci.yml
gitlab-cleanup-handler / vulnerabilities (pull_request) Successful in 6m23s
gitlab-cleanup-handler / test (pull_request) Successful in 9m13s
gitlab-cleanup-handler / build (pull_request) Successful in 6m22s
No longer needed after migration to Gitea Actions.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 14:34:00 +01:00
renovate 3275e7f642 chore(deps): update golang docker tag to v1.25.6 (#362)
gitlab-cleanup-handler / vulnerabilities (push) Successful in 1m26s
gitlab-cleanup-handler / test (push) Successful in 2m4s
gitlab-cleanup-handler / build (push) Failing after 35s
Release / release (push) Failing after 5m59s
2026-01-15 22:57:59 +00:00
renovate 8e9e1dd049 chore(deps): update dependency go to v1.25.6 (#361)
Release / release (push) Failing after 1m19s
gitlab-cleanup-handler / vulnerabilities (push) Successful in 2m4s
gitlab-cleanup-handler / test (push) Successful in 4m3s
gitlab-cleanup-handler / build (push) Successful in 13m54s
2026-01-15 20:35:09 +00:00
renovate d02ee4fd72 chore(deps): update pre-commit hook alessandrojcm/commitlint-pre-commit-hook to v9.24.0 (#359)
gitlab-cleanup-handler / vulnerabilities (push) Successful in 1m9s
Release / release (push) Successful in 1m26s
gitlab-cleanup-handler / test (push) Successful in 2m6s
gitlab-cleanup-handler / build (push) Successful in 3m58s
2026-01-13 21:48:52 +00:00
renovate 3e3941c476 chore(deps): update golang:1.25.5 docker digest to 3a01526 (#358)
Release / release (push) Failing after 1m11s
gitlab-cleanup-handler / test (push) Successful in 1m45s
gitlab-cleanup-handler / vulnerabilities (push) Successful in 2m6s
gitlab-cleanup-handler / build (push) Successful in 5m14s
2026-01-13 07:04:25 +00:00
argoyle 3909811827 Merge pull request 'chore(release): prepare for v0.1.1' (#357) from next-release into main
Release / release (push) Successful in 1m8s
gitlab-cleanup-handler / vulnerabilities (push) Successful in 2m19s
gitlab-cleanup-handler / test (push) Successful in 8m30s
gitlab-cleanup-handler / build (push) Successful in 1m0s
Reviewed-on: #357
2026-01-10 18:52:49 +00:00
releaser f67c45f5ce chore(release): prepare for v0.1.1
gitlab-cleanup-handler / vulnerabilities (pull_request) Successful in 1m9s
gitlab-cleanup-handler / test (pull_request) Successful in 5m14s
gitlab-cleanup-handler / build (pull_request) Successful in 4m9s
2026-01-10 18:40:21 +00:00
releaser 8c9a8c6433 chore(release): prepare for v0.1.1 2026-01-10 18:40:14 +00:00
argoyle 494c451640 Merge pull request 'ci: run workflow on tags' (#356) from ci-run-on-tags into main
Release / release (push) Successful in 4m3s
gitlab-cleanup-handler / test (push) Successful in 5m27s
gitlab-cleanup-handler / vulnerabilities (push) Successful in 6m59s
gitlab-cleanup-handler / build (push) Successful in 1m1s
Reviewed-on: #356
2026-01-10 18:34:32 +00:00
argoyle 70fd5d4c72 ci: run workflow on tags
gitlab-cleanup-handler / vulnerabilities (pull_request) Successful in 1m39s
gitlab-cleanup-handler / test (pull_request) Successful in 2m0s
gitlab-cleanup-handler / build (pull_request) Successful in 3m38s
2026-01-10 19:26:28 +01:00
argoyle 2ccb0b4bf4 Merge pull request 'chore(release): prepare for v0.1.0' (#349) from next-release into main
Release / release (push) Successful in 38s
gitlab-cleanup-handler / vulnerabilities (push) Successful in 1m31s
gitlab-cleanup-handler / test (push) Successful in 2m37s
gitlab-cleanup-handler / build (push) Successful in 10m15s
Reviewed-on: #349
2026-01-09 16:16:03 +00:00
releaser f8ebc95040 chore(release): prepare for v0.1.0 2026-01-09 15:59:25 +00:00
releaser 39f32f9baa chore(release): prepare for v0.1.0 2026-01-09 15:59:06 +00:00
argoyle aaaa3513af Merge pull request 'docs: add CLAUDE.md for Claude Code guidance' (#355) from add-claude-md into main
Release / release (push) Successful in 2m51s
gitlab-cleanup-handler / vulnerabilities (push) Successful in 4m49s
gitlab-cleanup-handler / test (push) Successful in 5m42s
gitlab-cleanup-handler / build (push) Successful in 6m43s
Reviewed-on: #355
2026-01-09 15:55:12 +00:00
releaser 073ad578d4 chore(release): prepare for v0.1.0 2026-01-09 15:54:06 +00:00
releaser 0446db698b chore(release): prepare for v0.1.0 2026-01-09 15:53:51 +00:00
argoyle 6d864edd27 Merge pull request 'ci: add release workflow' (#354) from add-release-workflow into main
Release / release (push) Successful in 2m5s
gitlab-cleanup-handler / build (push) Has been cancelled
gitlab-cleanup-handler / vulnerabilities (push) Has been cancelled
gitlab-cleanup-handler / test (push) Has been cancelled
Reviewed-on: #354
2026-01-09 15:52:32 +00:00
argoyle 4fe8fe95fb ci: add release workflow
gitlab-cleanup-handler / vulnerabilities (pull_request) Successful in 3m37s
gitlab-cleanup-handler / test (pull_request) Successful in 4m31s
gitlab-cleanup-handler / build (pull_request) Successful in 4m5s
2026-01-09 16:40:16 +01:00
argoyle 4cddc3343a docs: add CLAUDE.md for Claude Code guidance
gitlab-cleanup-handler / vulnerabilities (pull_request) Successful in 3m12s
gitlab-cleanup-handler / test (pull_request) Successful in 4m25s
gitlab-cleanup-handler / build (pull_request) Successful in 6m51s
2026-01-09 16:37:56 +01:00
argoyle ca3f1a3312 Merge pull request 'chore(deps): update pre-commit hook golangci/golangci-lint to v2.8.0' (#353) from renovate/golangci-golangci-lint-2.x into main
gitlab-cleanup-handler / vulnerabilities (push) Successful in 6m0s
gitlab-cleanup-handler / test (push) Successful in 7m3s
gitlab-cleanup-handler / build (push) Successful in 1m22s
Reviewed-on: #353
2026-01-09 04:12:49 +00:00
renovate 6a0854c2f9 chore(deps): update pre-commit hook golangci/golangci-lint to v2.8.0
gitlab-cleanup-handler / vulnerabilities (pull_request) Successful in 5m48s
gitlab-cleanup-handler / test (pull_request) Successful in 8m36s
gitlab-cleanup-handler / build (pull_request) Successful in 9m27s
2026-01-08 21:19:57 +00:00
argoyle 9a74ae6c11 Merge pull request 'chore(deps): update actions/checkout action to v6' (#352) from renovate/actions-checkout-6.x into main
gitlab-cleanup-handler / vulnerabilities (push) Successful in 5m8s
gitlab-cleanup-handler / test (push) Successful in 6m12s
gitlab-cleanup-handler / build (push) Successful in 4m6s
Reviewed-on: #352
2026-01-08 17:35:30 +00:00
renovate 390908eafb chore(deps): update actions/checkout action to v6
gitlab-cleanup-handler / vulnerabilities (pull_request) Successful in 9m44s
gitlab-cleanup-handler / test (pull_request) Successful in 15m12s
gitlab-cleanup-handler / build (pull_request) Successful in 5m26s
2026-01-08 16:16:22 +00:00
argoyle 0b96a1bac1 Merge pull request 'chore(deps): update actions/setup-go action to v6' (#351) from renovate/actions-setup-go-6.x into main
gitlab-cleanup-handler / vulnerabilities (push) Successful in 5m23s
gitlab-cleanup-handler / test (push) Successful in 9m33s
gitlab-cleanup-handler / build (push) Successful in 1m48s
Reviewed-on: #351
2026-01-08 15:21:49 +00:00
renovate 8c1ce0b400 chore(deps): update actions/setup-go action to v6
gitlab-cleanup-handler / vulnerabilities (pull_request) Successful in 2m27s
gitlab-cleanup-handler / test (pull_request) Successful in 6m24s
gitlab-cleanup-handler / build (pull_request) Successful in 7m56s
2026-01-08 15:05:12 +00:00
argoyle 4516a13531 Merge pull request 'feat: migrate from GitLab CI to Gitea Actions' (#350) from feat/gitea-actions into main
gitlab-cleanup-handler / vulnerabilities (push) Successful in 2m5s
gitlab-cleanup-handler / test (push) Successful in 2m28s
gitlab-cleanup-handler / build (push) Successful in 1m19s
Reviewed-on: #350
2026-01-08 14:52:59 +00:00
argoyle 70c5035304 feat: migrate from GitLab CI to Gitea Actions
gitlab-cleanup-handler / vulnerabilities (pull_request) Successful in 2m45s
gitlab-cleanup-handler / test (pull_request) Successful in 3m27s
gitlab-cleanup-handler / build (pull_request) Successful in 6m18s
2026-01-08 15:28:16 +01:00
Unbound Release f884415a4a chore(release): prepare for v0.0.23 2025-12-30 17:25:35 +00:00
Unbound Release bb6f79c49c chore(release): prepare for v0.0.23 2025-12-30 17:25:34 +00:00
argoyle 107551cbb6 Merge branch 'renovate/golang-1.25.5' into 'main'
chore(deps): update golang:1.25.5 docker digest to ad03ba9

See merge request unboundsoftware/gitlab-cleanup-handler!344
2025-12-30 16:40:38 +01:00
Renovate 0a4597bb9b chore(deps): update golang:1.25.5 docker digest to ad03ba9 2025-12-30 03:58:58 +00:00
argoyle f4d1a02b1a Merge branch 'next-release' into 'main'
chore(release): prepare for v0.0.22

See merge request unboundsoftware/gitlab-cleanup-handler!343
2025-12-18 07:57:31 +01:00
Unbound Release f8a51919c3 chore(release): prepare for v0.0.22 2025-12-18 07:57:30 +01:00
argoyle 271603b855 Merge branch 'renovate/kubernetes-go' into 'main'
fix(deps): update kubernetes packages to v0.35.0

See merge request unboundsoftware/gitlab-cleanup-handler!342
2025-12-18 07:11:59 +01:00
Renovate 4c96a2cf2d fix(deps): update kubernetes packages to v0.35.0 2025-12-18 00:58:38 +00:00
10 changed files with 251 additions and 114 deletions
+43
View File
@@ -0,0 +1,43 @@
name: gitlab-cleanup-handler
on:
push:
branches: [main]
tags: ['*']
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-go@v6
with:
go-version: 'stable'
- name: Run tests
run: go test -race -coverprofile=coverage.txt ./...
vulnerabilities:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-go@v6
with:
go-version: 'stable'
- name: Check vulnerabilities
run: |
go install golang.org/x/vuln/cmd/govulncheck@latest
govulncheck ./...
build:
needs: [test, vulnerabilities]
runs-on: ubuntu-latest
env:
BUILDTOOLS_CONTENT: ${{ secrets.BUILDTOOLS_CONTENT }}
GITEA_REPOSITORY: ${{ gitea.repository }}
steps:
- uses: actions/checkout@v6
- uses: buildtool/setup-buildtools-action@v1
- name: Build and push
run: unset GITEA_TOKEN && build && push
+9
View File
@@ -0,0 +1,9 @@
name: Release
on:
push:
branches: [main]
jobs:
release:
uses: unboundsoftware/shared-workflows/.gitea/workflows/Release.yml@main
-22
View File
@@ -1,22 +0,0 @@
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
file: Pre-Commit-Go.gitlab-ci.yml
stages:
- build
image: buildtool/build-tools:${BUILDTOOLS_VERSION}
build:
stage: build
script:
- build
- curl -Os https://uploader.codecov.io/latest/linux/codecov
- chmod +x codecov
- ./codecov -t ${CODECOV_TOKEN} -R $CI_PROJECT_DIR -C $CI_COMMIT_SHA -r $CI_PROJECT_PATH
- push
+2 -2
View File
@@ -22,7 +22,7 @@ repos:
- --project
- unboundsoftware/gitlab-cleanup-handler
- repo: https://github.com/alessandrojcm/commitlint-pre-commit-hook
rev: v9.23.0
rev: v9.24.0
hooks:
- id: commitlint
stages: [ commit-msg ]
@@ -36,6 +36,6 @@ repos:
- id: go-vet
- id: gofumpt
- repo: https://github.com/golangci/golangci-lint
rev: v2.7.2
rev: v2.11.1
hooks:
- id: golangci-lint
+3 -1
View File
@@ -1 +1,3 @@
{"version":"v0.0.21"}
{
"version": "v0.1.4"
}
+72
View File
@@ -2,6 +2,78 @@
All notable changes to this project will be documented in this file.
## [0.1.4] - 2026-03-06
### 🐛 Bug Fixes
- *(deps)* Update kubernetes packages to v0.35.2 (#379)
### ⚙️ Miscellaneous Tasks
- *(deps)* Update pre-commit hook golangci/golangci-lint to v2.10.1 (#375)
- *(deps)* Update golang:1.26.0 docker digest to 9835fb4 (#377)
- *(deps)* Update dependency go to v1.26.1 (#381)
- *(deps)* Update golang docker tag to v1.26.1 (#382)
- *(deps)* Update pre-commit hook golangci/golangci-lint to v2.11.0 (#384)
- *(deps)* Update pre-commit hook golangci/golangci-lint to v2.11.1 (#386)
## [0.1.3] - 2026-02-12
### ⚙️ Miscellaneous Tasks
- *(deps)* Update dependency go to v1.26.0 (#368)
- *(deps)* Update pre-commit hook golangci/golangci-lint to v2.9.0 (#371)
## [0.1.2] - 2026-02-11
### 🐛 Bug Fixes
- *(deps)* Update module github.com/alecthomas/kong to v1.14.0 (#367)
- *(deps)* Update kubernetes packages to v0.35.1 (#372)
### ⚙️ Miscellaneous Tasks
- *(deps)* Update golang:1.25.5 docker digest to 3a01526 (#358)
- *(deps)* Update pre-commit hook alessandrojcm/commitlint-pre-commit-hook to v9.24.0 (#359)
- *(deps)* Update dependency go to v1.25.6 (#361)
- *(deps)* Update golang docker tag to v1.25.6 (#362)
- Remove unused .gitlab-ci.yml
- *(deps)* Update golang:1.25.6 docker digest to ceda080 (#364)
- *(deps)* Update dependency go to v1.25.7 (#365)
- *(deps)* Update golang docker tag to v1.25.7 (#366)
- *(deps)* Update golang:1.25.7 docker digest to d2819ff (#369)
- *(deps)* Update golang docker tag to v1.26.0 (#370)
## [0.1.1] - 2026-01-10
### ⚙️ Miscellaneous Tasks
- Run workflow on tags
## [0.1.0] - 2026-01-09
### 🚀 Features
- Migrate from GitLab CI to Gitea Actions
### 📚 Documentation
- Add CLAUDE.md for Claude Code guidance
### ⚙️ Miscellaneous Tasks
- *(deps)* Update golang:1.25.5 docker digest to ad03ba9
- *(deps)* Update actions/setup-go action to v6
- *(deps)* Update actions/checkout action to v6
- *(deps)* Update pre-commit hook golangci/golangci-lint to v2.8.0
- Add release workflow
## [0.0.22] - 2025-12-18
### 🐛 Bug Fixes
- *(deps)* Update kubernetes packages to v0.35.0
## [0.0.21] - 2025-12-10
### 🐛 Bug Fixes
+52
View File
@@ -0,0 +1,52 @@
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Project Overview
A Go service that scans Kubernetes namespaces for container images from GitLab's container registry and automatically updates GitLab project cleanup policies to preserve those images. This ensures images actively running in Kubernetes are protected from automated cleanup.
## Build & Test Commands
```bash
# Run all tests
go test ./...
# Run a specific test
go test ./kube -run TestFetcher
# Run tests with coverage
go test -cover ./...
# Lint (via pre-commit)
pre-commit run golangci-lint --all-files
# Format code
gofumpt -w .
# Run all pre-commit hooks (always add all files first)
git add -A && pre-commit run --all-files
```
## Architecture
The service has three main components:
1. **cmd/handler** - Entry point using Kong for CLI argument parsing. Accepts `--namespaces` (or NAMESPACES env) and `--gitlab-token` (or GITLAB_TOKEN env).
2. **kube** - Kubernetes client that scans Deployments and CronJobs in specified namespaces for images prefixed with `registry.gitlab.com`. Uses provider pattern for in-cluster vs KUBECONFIG-based authentication.
3. **gitlab** - REST client that fetches repository tags and updates container expiration policies via GitLab API. The cleanup policy keeps images matching `main|master|<active-versions>`.
### Data Flow
```
Kubernetes Cluster → kube.Client.GetImages() → ImageCollector
→ gitlab.RestClient.GetTags() + UpdateCleanupPolicy()
```
## Code Conventions
- Uses `github.com/apex/log` for structured JSON logging
- Tests use `github.com/stretchr/testify` assertions and `gitlab.com/unboundsoftware/apex-mocks` for log mocking
- Interfaces defined locally for testability (KubeClient, GitlabClient, ClientProvider, ConfigProvider)
- Follows conventional commits format (enforced by pre-commit commitlint hook)
+1 -1
View File
@@ -1,4 +1,4 @@
FROM amd64/golang:1.25.5@sha256:0c27bcf0df81eca89f87e1e78be5ad5e36487f0eaf71cd900ba14ee7621d3e70 as build
FROM amd64/golang:1.26.1@sha256:27221f0ea9e7089ebfe51de26f6d5389aa8f9514f13dae7e9c91f5aa7865c2b4 as build
WORKDIR /build
ENV CGO_ENABLED=0
ADD . /build
+19 -20
View File
@@ -1,28 +1,27 @@
module gitlab.com/unboundsoftware/gitlab-cleanup-handler
go 1.24.0
go 1.25.0
toolchain go1.25.5
toolchain go1.26.1
require (
github.com/alecthomas/kong v1.13.0
github.com/alecthomas/kong v1.14.0
github.com/apex/log v1.9.0
github.com/stretchr/testify v1.11.1
gitlab.com/unboundsoftware/apex-mocks v0.2.0
k8s.io/api v0.34.3
k8s.io/apimachinery v0.34.3
k8s.io/client-go v0.34.3
k8s.io/api v0.35.2
k8s.io/apimachinery v0.35.2
k8s.io/client-go v0.35.2
)
require (
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
github.com/emicklei/go-restful/v3 v3.12.2 // indirect
github.com/fxamacker/cbor/v2 v2.9.0 // indirect
github.com/go-logr/logr v1.4.2 // indirect
github.com/go-logr/logr v1.4.3 // indirect
github.com/go-openapi/jsonpointer v0.21.0 // indirect
github.com/go-openapi/jsonreference v0.20.2 // indirect
github.com/go-openapi/swag v0.23.0 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/google/gnostic-models v0.7.0 // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/josharian/intern v1.0.0 // indirect
@@ -33,24 +32,24 @@ require (
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
github.com/spf13/pflag v1.0.6 // indirect
github.com/spf13/pflag v1.0.9 // indirect
github.com/x448/float16 v0.8.4 // indirect
go.yaml.in/yaml/v2 v2.4.2 // indirect
go.yaml.in/yaml/v2 v2.4.3 // indirect
go.yaml.in/yaml/v3 v3.0.4 // indirect
golang.org/x/net v0.38.0 // indirect
golang.org/x/oauth2 v0.27.0 // indirect
golang.org/x/sys v0.31.0 // indirect
golang.org/x/term v0.30.0 // indirect
golang.org/x/text v0.23.0 // indirect
golang.org/x/net v0.47.0 // indirect
golang.org/x/oauth2 v0.30.0 // indirect
golang.org/x/sys v0.38.0 // indirect
golang.org/x/term v0.37.0 // indirect
golang.org/x/text v0.31.0 // indirect
golang.org/x/time v0.9.0 // indirect
google.golang.org/protobuf v1.36.5 // indirect
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
google.golang.org/protobuf v1.36.8 // indirect
gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
k8s.io/klog/v2 v2.130.1 // indirect
k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b // indirect
k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 // indirect
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect
k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 // indirect
k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 // indirect
sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect
sigs.k8s.io/randfill v1.0.0 // indirect
sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect
sigs.k8s.io/yaml v1.6.0 // indirect
+50 -68
View File
@@ -1,7 +1,9 @@
github.com/Masterminds/semver/v3 v3.4.0 h1:Zog+i5UMtVoCU8oKka5P7i9q9HgrJeGzI9SA1Xbatp0=
github.com/Masterminds/semver/v3 v3.4.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM=
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.13.0 h1:5e/7XC3ugvhP1DQBmTS+WuHtCbcv44hsohMgcvVxSrA=
github.com/alecthomas/kong v1.13.0/go.mod h1:wrlbXem1CWqUV5Vbmss5ISYhsVPkBb1Yo7YKJghju2I=
github.com/alecthomas/kong v1.14.0 h1:gFgEUZWu2ZmZ+UhyZ1bDhuutbKN1nTtJTwh19Wsn21s=
github.com/alecthomas/kong v1.14.0/go.mod h1:wrlbXem1CWqUV5Vbmss5ISYhsVPkBb1Yo7YKJghju2I=
github.com/alecthomas/repr v0.5.2 h1:SU73FTI9D1P5UNtvseffFSGmdNci/O6RsqzeXJtP0Qs=
github.com/alecthomas/repr v0.5.2/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4=
github.com/apex/log v1.9.0 h1:FHtw/xuaM8AgmvDDTI9fiwoAL25Sq2cxojnZICUU8l0=
@@ -23,8 +25,8 @@ github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMo
github.com/fxamacker/cbor/v2 v2.9.0 h1:NpKPmjDBgUfBms6tr6JZkTHtfFGcMKsw3eGcmD/sapM=
github.com/fxamacker/cbor/v2 v2.9.0/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ=
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI=
github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ=
github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY=
@@ -35,8 +37,6 @@ github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+Gr
github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ=
github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI=
github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8=
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/google/gnostic-models v0.7.0 h1:qwTtogB15McXDaNqTZdzPJRHvaVJlAl+HVQnLmJEJxo=
@@ -44,8 +44,8 @@ github.com/google/gnostic-models v0.7.0/go.mod h1:whL5G0m6dmc5cPxKc5bdKdEN3UjI7O
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db h1:097atOisP2aRj7vFgYQBbFN4U4JNXUNYpxael3UzMyo=
github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144=
github.com/google/pprof v0.0.0-20250403155104-27863c87afa6 h1:BHT72Gu3keYf3ZEu2J0b1vyeLSOYI8bm5wbJM/8yDe8=
github.com/google/pprof v0.0.0-20250403155104-27863c87afa6/go.mod h1:boTsfXsheKC2y+lKOCMpSfarhxDeIzfZG1jqGcPl3cA=
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
@@ -58,8 +58,6 @@ github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFF
github.com/jpillora/backoff v0.0.0-20180909062703-3050d21c67d7/go.mod h1:2iMrUgbbvHEiQClaW2NsSzMyGHqN+rDFqY705q49KG0=
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
@@ -86,11 +84,11 @@ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
github.com/onsi/ginkgo v1.6.0 h1:Ix8l273rp3QzYgXSR+c8d1fTG7UPgYkOSELPhiY/YGw=
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/ginkgo/v2 v2.21.0 h1:7rg/4f3rB88pb5obDgNZrNHrQ4e6WpjonchcpuBRnZM=
github.com/onsi/ginkgo/v2 v2.21.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo=
github.com/onsi/ginkgo/v2 v2.27.2 h1:LzwLj0b89qtIy6SSASkzlNvX6WktqurSHwkk2ipF/Ns=
github.com/onsi/ginkgo/v2 v2.27.2/go.mod h1:ArE1D/XhNXBXCBkKOLkbsb2c81dQHCRcF5zwn/ykDRo=
github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
github.com/onsi/gomega v1.35.1 h1:Cwbd75ZBPxFSuZ6T+rN/WCb/gOc6YgFBXLlZLhC7Ds4=
github.com/onsi/gomega v1.35.1/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog=
github.com/onsi/gomega v1.38.2 h1:eZCjf2xjZAqe+LeWvKb5weQ+NcPwX84kqJ0cZNxok2A=
github.com/onsi/gomega v1.38.2/go.mod h1:W2MJcYxRGV63b418Ai34Ud0hEdTVXq9NW9+Sx6uXf3k=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
@@ -98,14 +96,14 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/rogpeppe/fastuuid v1.1.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=
github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=
github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=
github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
github.com/smartystreets/assertions v1.0.0/go.mod h1:kHHU4qYBaI3q23Pp3VPrmWhuIUrLW/7eUrw0BU5VaoM=
github.com/smartystreets/go-aws-auth v0.0.0-20180515143844-0c1422d1fdb9/go.mod h1:SnhjPscd9TpLiy1LpzGSKh3bXCfxxXuqd9xmQJy3slM=
github.com/smartystreets/gunit v1.0.0/go.mod h1:qwPWnhz6pn0NnRBP++URONOVyNkPyr4SauJk4cUOwJs=
github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o=
github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/spf13/pflag v1.0.9 h1:9exaQaMOCwffKiiiYk6/BndUBv+iRViNW+4lEMi0PvY=
github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
@@ -128,67 +126,51 @@ github.com/tj/go-kinesis v0.0.0-20171128231115-08b17f58cb1b/go.mod h1:/yhzCV0xPf
github.com/tj/go-spin v1.1.0/go.mod h1:Mg1mzmePZm4dva8Qz60H2lHwmJ2loum4VIrLgVnKwh4=
github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
gitlab.com/unboundsoftware/apex-mocks v0.2.0 h1:IFt+uyIoOkSl4qdUBLUSIvOhaRdQRGB6TnpZqfRuXqY=
gitlab.com/unboundsoftware/apex-mocks v0.2.0/go.mod h1:FGsQjCu/nS6b+QaBpAFvms6p0Chr0aobGcUPeeZNSNo=
go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI=
go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU=
go.yaml.in/yaml/v2 v2.4.3 h1:6gvOSjQoTB3vt1l+CU+tSyi/HOjfOjRLJ4YwYZGwRO0=
go.yaml.in/yaml/v2 v2.4.3/go.mod h1:zSxWcmIDjOzPXpjlTTbAsKokqkDNAVtZO0WOMiT90s8=
go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc=
go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.29.0 h1:HV8lRxZC4l2cr3Zq1LvtOsi/ThTgWnUk/y64QSs8GwA=
golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w=
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.38.0 h1:vRMAPTMaeGqVhG5QyLJHqNDwecKTomGeqbnfZyKlBI8=
golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8=
golang.org/x/oauth2 v0.27.0 h1:da9Vo7/tDv5RH/7nZDz1eMGS/q1Vv1N/7FCrBhI9I3M=
golang.org/x/oauth2 v0.27.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8=
golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY=
golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU=
golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI=
golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I=
golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik=
golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
golang.org/x/term v0.30.0 h1:PQ39fJZ+mfadBm0y5WlL4vlM7Sx1Hgf13sMIY2+QS9Y=
golang.org/x/term v0.30.0/go.mod h1:NYYFdzHoI5wRh/h5tDMdMqCqPJZEuNqVR5xJLd/n67g=
golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc=
golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
golang.org/x/term v0.37.0 h1:8EGAD0qCmHYZg6J17DvsMy9/wJ7/D/4pV/wfnld5lTU=
golang.org/x/term v0.37.0/go.mod h1:5pB4lxRNYYVZuTLmy8oR2BH8dflOR+IbTYFD8fi3254=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY=
golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4=
golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM=
golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM=
golang.org/x/time v0.9.0 h1:EsRrnYcQiGH+5FfbgvV4AP7qEZstoyrHB0DzarOQ4ZY=
golang.org/x/time v0.9.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ=
golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM=
google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
golang.org/x/tools v0.38.0 h1:Hx2Xv8hISq8Lm16jvBZ2VQf+RLmbd7wVUsALibYI/IQ=
golang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs=
google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc=
google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4=
gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M=
gopkg.in/evanphx/json-patch.v4 v4.13.0 h1:czT3CmqEaQ1aanPc5SdlgQrrEIb8w/wwCvWWnfEbYzo=
gopkg.in/evanphx/json-patch.v4 v4.13.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M=
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
@@ -199,20 +181,20 @@ 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.34.3 h1:D12sTP257/jSH2vHV2EDYrb16bS7ULlHpdNdNhEw2S4=
k8s.io/api v0.34.3/go.mod h1:PyVQBF886Q5RSQZOim7DybQjAbVs8g7gwJNhGtY5MBk=
k8s.io/apimachinery v0.34.3 h1:/TB+SFEiQvN9HPldtlWOTp0hWbJ+fjU+wkxysf/aQnE=
k8s.io/apimachinery v0.34.3/go.mod h1:/GwIlEcWuTX9zKIg2mbw0LRFIsXwrfoVxn+ef0X13lw=
k8s.io/client-go v0.34.3 h1:wtYtpzy/OPNYf7WyNBTj3iUA0XaBHVqhv4Iv3tbrF5A=
k8s.io/client-go v0.34.3/go.mod h1:OxxeYagaP9Kdf78UrKLa3YZixMCfP6bgPwPwNBQBzpM=
k8s.io/api v0.35.2 h1:tW7mWc2RpxW7HS4CoRXhtYHSzme1PN1UjGHJ1bdrtdw=
k8s.io/api v0.35.2/go.mod h1:7AJfqGoAZcwSFhOjcGM7WV05QxMMgUaChNfLTXDRE60=
k8s.io/apimachinery v0.35.2 h1:NqsM/mmZA7sHW02JZ9RTtk3wInRgbVxL8MPfzSANAK8=
k8s.io/apimachinery v0.35.2/go.mod h1:jQCgFZFR1F4Ik7hvr2g84RTJSZegBc8yHgFWKn//hns=
k8s.io/client-go v0.35.2 h1:YUfPefdGJA4aljDdayAXkc98DnPkIetMl4PrKX97W9o=
k8s.io/client-go v0.35.2/go.mod h1:4QqEwh4oQpeK8AaefZ0jwTFJw/9kIjdQi0jpKeYvz7g=
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-20250710124328-f3f2b991d03b h1:MloQ9/bdJyIu9lb1PzujOPolHyvO06MXG5TUIj2mNAA=
k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b/go.mod h1:UZ2yyWbFTpuhSbFhv24aGNOdoRdJZgsIObGBUaYVsts=
k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 h1:hwvWFiBzdWw1FhfY1FooPn3kzWuJ8tmbZBHi4zVsl1Y=
k8s.io/utils v0.0.0-20250604170112-4c0f3b243397/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE=
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg=
k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 h1:Y3gxNAuB0OBLImH611+UDZcmKS3g6CthxToOb37KgwE=
k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912/go.mod h1:kdmbQkyfwUagLfXIad1y2TdrjPFWp2Q89B3qkRwf/pQ=
k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 h1:SjGebBtkBqHFOli+05xYbK8YF1Dzkbzn+gDM4X9T4Ck=
k8s.io/utils v0.0.0-20251002143259-bc988d571ff4/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 h1:IpInykpT6ceI+QxKBbEflcR5EXP7sU1kvOlxwZh5txg=
sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg=
sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU=
sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY=
sigs.k8s.io/structured-merge-diff/v6 v6.3.0 h1:jTijUJbW353oVOd9oTlifJqOGEkUw2jB/fXCbTiQEco=