Skip to content

Commit 69283d4

Browse files
authored
Add deadcode linter check (#98)
This adds a new `task deadcode` task that errors out if it finds unused code. The check is implemented in a safe way using `-test` option, so that code that is tested but not currently used in the application does not cause a failure. The `lint.yml` github action was modified to run this check as well.
1 parent ef7a9c9 commit 69283d4

File tree

7 files changed

+65
-206
lines changed

7 files changed

+65
-206
lines changed

.github/workflows/lint.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,13 @@ jobs:
2323
uses: golangci/golangci-lint-action@0a35821d5c230e903fcfe077583637dea1b27b47 # v9.0.0
2424
with:
2525
args: --timeout=5m
26+
27+
- name: Install Task
28+
uses: arduino/setup-task@v2
29+
with:
30+
version: 3.44.1
31+
repo-token: ${{ secrets.GITHUB_TOKEN }}
32+
33+
- name: Run deadcode
34+
run: |
35+
task deadcode

.github/workflows/run-on-main.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,4 @@ jobs:
3333
contents: write
3434
packages: write
3535
id-token: write
36-
uses: ./.github/workflows/image-build-and-publish.yml
36+
uses: ./.github/workflows/image-build-and-publish.yml

.github/workflows/run-on-pr.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,4 @@ jobs:
3030
uses: ./.github/workflows/verify-docgen.yml
3131
codegen:
3232
name: Codegen
33-
uses: ./.github/workflows/verify-gen.yml
33+
uses: ./.github/workflows/verify-gen.yml

Taskfile.yml

Lines changed: 52 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,11 @@ tasks:
5050
cmds:
5151
- go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
5252

53+
install-deadcode:
54+
desc: Install the deadcode tool for checking for unused code
55+
cmds:
56+
- go install golang.org/x/tools/cmd/deadcode@latest
57+
5358
install-ko:
5459
desc: Install the ko tool for building container images
5560
cmds:
@@ -62,24 +67,50 @@ tasks:
6267
- install-mock
6368
- install-swagger
6469
- install-golangci-lint
70+
- install-deadcode
6571
- install-ko
6672

6773
gen:
6874
desc: Generate mock files using go generate
69-
deps: [install-mock]
75+
deps:
76+
- task: install-mock
77+
silent: true
7078
cmds:
7179
- go generate ./...
7280

81+
deadcode:
82+
desc: Run deadcode tool for checking for unused code
83+
deps:
84+
- task: install-deadcode
85+
silent: true
86+
cmds:
87+
- cmd: |
88+
if test -z "$(deadcode -test ./...)"; then
89+
echo "✅ No unused code found"
90+
else
91+
echo "❌ Unused code found"
92+
exit 1
93+
fi
94+
silent: true
95+
7396
lint:
7497
desc: Run linting tools
75-
deps: [gen, install-golangci-lint]
98+
deps:
99+
- task: gen
100+
silent: true
101+
- task: install-golangci-lint
102+
silent: true
103+
- task: install-deadcode
104+
silent: true
76105
cmds:
77106
- golangci-lint run ./...
78107
- go vet ./...
79108

80109
lint-fix:
81110
desc: Run linting tools, and apply fixes.
82-
deps: [install-golangci-lint]
111+
deps:
112+
- task: install-golangci-lint
113+
silent: true
83114
cmds:
84115
- golangci-lint run --fix ./...
85116

@@ -90,7 +121,9 @@ tasks:
90121

91122
build-image:
92123
desc: Build the registry API image with ko
93-
deps: [install-ko]
124+
deps:
125+
- task: install-ko
126+
silent: true
94127
env:
95128
KO_DOCKER_REPO: '{{.REPO}}'
96129
cmds:
@@ -105,26 +138,30 @@ tasks:
105138
SHA:
106139
sh: git rev-parse HEAD || echo "unknown"
107140
cmds:
108-
- >
109-
eval "{{.CONTAINER_RUNTIME}} build --load
110-
-t {{.REPO}}:{{.SHA}}-ubi
111-
--build-arg VERSION={{.SHA}}-ubi
112-
--build-arg COMMIT={{.COMMIT}}
113-
--build-arg BUILD_DATE={{.BUILD_DATE}}
114-
--label name=\"toolhive-registry-api\"
115-
--label vendor=\"Stacklok\"
116-
--label maintainer=\"Stacklok\" ."
141+
- |
142+
{{.CONTAINER_RUNTIME}} build --load \
143+
-t {{.REPO}}:{{.SHA}}-ubi \
144+
--build-arg VERSION={{.SHA}}-ubi \
145+
--build-arg COMMIT={{.COMMIT}} \
146+
--build-arg BUILD_DATE={{.BUILD_DATE}} \
147+
--label name="toolhive-registry-api" \
148+
--label vendor="Stacklok" \
149+
--label maintainer="Stacklok" .
117150
118151
test:
119152
desc: Run registry API tests
120-
deps: [install-gotestfmt]
153+
deps:
154+
- task: install-gotestfmt
155+
silent: true
121156
cmds:
122157
# We have to use ldflags to avoid the LC_DYSYMTAB linker warning.
123158
- go test -ldflags=-extldflags=-Wl,-w -race -json ./... | gotestfmt -hide "all"
124159

125160
test-coverage:
126161
desc: Run registry API tests with coverage
127-
deps: [install-gotestfmt]
162+
deps:
163+
- task: install-gotestfmt
164+
silent: true
128165
cmds:
129166
# We have to use ldflags to avoid the LC_DYSYMTAB linker warning.
130167
- go test -ldflags=-extldflags=-Wl,-w -race -json -coverprofile=coverage.out ./... | gotestfmt -hide "all"

go.mod

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ require (
1515
github.com/swaggo/swag/v2 v2.0.0-rc4
1616
go.uber.org/mock v0.6.0
1717
gopkg.in/yaml.v3 v3.0.1
18-
k8s.io/apimachinery v0.34.1
1918
sigs.k8s.io/controller-runtime v0.22.4
2019
)
2120

@@ -27,16 +26,12 @@ require (
2726
github.com/Masterminds/semver/v3 v3.4.0 // indirect
2827
github.com/Microsoft/go-winio v0.6.2 // indirect
2928
github.com/ProtonMail/go-crypto v1.1.6 // indirect
30-
github.com/beorn7/perks v1.0.1 // indirect
31-
github.com/cespare/xxhash/v2 v2.3.0 // indirect
3229
github.com/cloudflare/circl v1.6.1 // indirect
3330
github.com/cpuguy83/go-md2man/v2 v2.0.7 // indirect
3431
github.com/cyphar/filepath-securejoin v0.4.1 // indirect
3532
github.com/danieljoos/wincred v1.2.2 // indirect
3633
github.com/dylibso/observe-sdk/go v0.0.0-20240819160327-2d926c5d788a // indirect
37-
github.com/emicklei/go-restful/v3 v3.12.2 // indirect
3834
github.com/emirpasic/gods v1.18.1 // indirect
39-
github.com/evanphx/json-patch/v5 v5.9.11 // indirect
4035
github.com/extism/go-sdk v1.7.0 // indirect
4136
github.com/fsnotify/fsnotify v1.9.0 // indirect
4237
github.com/fxamacker/cbor/v2 v2.9.0 // indirect
@@ -63,11 +58,8 @@ require (
6358
github.com/godbus/dbus/v5 v5.1.0 // indirect
6459
github.com/gofrs/flock v0.13.0 // indirect
6560
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect
66-
github.com/google/btree v1.1.3 // indirect
67-
github.com/google/gnostic-models v0.7.0 // indirect
6861
github.com/google/go-cmp v0.7.0 // indirect
6962
github.com/google/pprof v0.0.0-20250820193118-f64d9cf942d6 // indirect
70-
github.com/google/uuid v1.6.0 // indirect
7163
github.com/ianlancetaylor/demangle v0.0.0-20250417193237-f615e6bd150b // indirect
7264
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
7365
github.com/josharian/intern v1.0.0 // indirect
@@ -76,13 +68,8 @@ require (
7668
github.com/mailru/easyjson v0.9.0 // indirect
7769
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
7870
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect
79-
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
8071
github.com/pelletier/go-toml/v2 v2.2.4 // indirect
8172
github.com/pjbgf/sha1cd v0.3.2 // indirect
82-
github.com/prometheus/client_golang v1.23.2 // indirect
83-
github.com/prometheus/client_model v0.6.2 // indirect
84-
github.com/prometheus/common v0.66.1 // indirect
85-
github.com/prometheus/procfs v0.17.0 // indirect
8673
github.com/russross/blackfriday/v2 v2.1.0 // indirect
8774
github.com/sagikazarmark/locafero v0.11.0 // indirect
8875
github.com/santhosh-tekuri/jsonschema/v6 v6.0.2 // indirect
@@ -111,23 +98,17 @@ require (
11198
golang.org/x/sync v0.18.0 // indirect
11299
golang.org/x/term v0.36.0 // indirect
113100
golang.org/x/text v0.30.0 // indirect
114-
golang.org/x/time v0.14.0 // indirect
115101
golang.org/x/tools v0.37.0 // indirect
116-
gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
117102
google.golang.org/protobuf v1.36.10 // indirect
118-
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
119103
gopkg.in/inf.v0 v0.9.1 // indirect
120104
gopkg.in/warnings.v0 v0.1.2 // indirect
121105
gopkg.in/yaml.v2 v2.4.0 // indirect
122-
k8s.io/api v0.34.1 // indirect
123-
k8s.io/apiextensions-apiserver v0.34.1 // indirect
106+
k8s.io/apimachinery v0.34.1 // indirect
124107
k8s.io/klog/v2 v2.130.1 // indirect
125-
k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b // indirect
126108
k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 // indirect
127109
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect
128110
sigs.k8s.io/randfill v1.0.0 // indirect
129111
sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect
130-
sigs.k8s.io/yaml v1.6.0 // indirect
131112
)
132113

133114
require (
@@ -141,5 +122,4 @@ require (
141122
github.com/spf13/cobra v1.10.1
142123
github.com/spf13/pflag v1.0.10 // indirect
143124
golang.org/x/sys v0.38.0 // indirect
144-
k8s.io/client-go v0.34.1
145125
)

go.sum

Lines changed: 0 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,6 @@ github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFI
1919
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4=
2020
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio=
2121
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
22-
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
23-
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
24-
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
25-
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
2622
github.com/cloudflare/circl v1.6.1 h1:zqIqSPIndyBh1bjLVVDHMPpVKqp8Su/V+6MeDzzQBQ0=
2723
github.com/cloudflare/circl v1.6.1/go.mod h1:uddAzsPgqdMAYatqJ0lsjX1oECcQLIlRpzZh3pJrofs=
2824
github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
@@ -42,14 +38,8 @@ github.com/dylibso/observe-sdk/go v0.0.0-20240819160327-2d926c5d788a h1:UwSIFv5g
4238
github.com/dylibso/observe-sdk/go v0.0.0-20240819160327-2d926c5d788a/go.mod h1:C8DzXehI4zAbrdlbtOByKX6pfivJTBiV9Jjqv56Yd9Q=
4339
github.com/elazarl/goproxy v1.7.2 h1:Y2o6urb7Eule09PjlhQRGNsqRfPmYI3KKQLFpCAV3+o=
4440
github.com/elazarl/goproxy v1.7.2/go.mod h1:82vkLNir0ALaW14Rc399OTTjyNREgmdL2cVoIbS6XaE=
45-
github.com/emicklei/go-restful/v3 v3.12.2 h1:DhwDP0vY3k8ZzE0RunuJy8GhNpPL6zqLkDf9B/a0/xU=
46-
github.com/emicklei/go-restful/v3 v3.12.2/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
4741
github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc=
4842
github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ=
49-
github.com/evanphx/json-patch v0.5.2 h1:xVCHIVMUu1wtM/VkR9jVZ45N3FhZfYMMYGorLCR8P3k=
50-
github.com/evanphx/json-patch v0.5.2/go.mod h1:ZWS5hhDbVDyob71nXKNL0+PWn6ToqBHMikGIFbs31qQ=
51-
github.com/evanphx/json-patch/v5 v5.9.11 h1:/8HVnzMq13/3x9TPvjG08wUGqBTmZBsCWzjTM0wiaDU=
52-
github.com/evanphx/json-patch/v5 v5.9.11/go.mod h1:3j+LviiESTElxA4p3EMKAB9HXj3/XEtnUf6OZxqIQTM=
5343
github.com/extism/go-sdk v1.7.0 h1:yHbSa2JbcF60kjGsYiGEOcClfbknqCJchyh9TRibFWo=
5444
github.com/extism/go-sdk v1.7.0/go.mod h1:Dhuc1qcD0aqjdqJ3ZDyGdkZPEj/EHKVjbE4P+1XRMqc=
5545
github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
@@ -126,21 +116,13 @@ github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
126116
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
127117
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 h1:f+oWsMOmNPc8JmEHVZIycC7hBoQxHH9pNKQORJNozsQ=
128118
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8/go.mod h1:wcDNUvekVysuuOpQKo3191zZyTpiI6se1N1ULghS0sw=
129-
github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg=
130-
github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4=
131-
github.com/google/gnostic-models v0.7.0 h1:qwTtogB15McXDaNqTZdzPJRHvaVJlAl+HVQnLmJEJxo=
132-
github.com/google/gnostic-models v0.7.0/go.mod h1:whL5G0m6dmc5cPxKc5bdKdEN3UjI7OUGxBlw57miDrQ=
133119
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
134120
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
135121
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
136-
github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
137-
github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
138122
github.com/google/pprof v0.0.0-20250820193118-f64d9cf942d6 h1:EEHtgt9IwisQ2AZ4pIsMjahcegHh6rmhqxzIRQIyepY=
139123
github.com/google/pprof v0.0.0-20250820193118-f64d9cf942d6/go.mod h1:I6V7YzU0XDpsHqbsyrghnFZLO1gwK6NPTNvmetQIk9U=
140124
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4=
141125
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
142-
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
143-
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
144126
github.com/ianlancetaylor/demangle v0.0.0-20250417193237-f615e6bd150b h1:ogbOPx86mIhFy764gGkqnkFC8m5PJA7sPzlk9ppLVQA=
145127
github.com/ianlancetaylor/demangle v0.0.0-20250417193237-f615e6bd150b/go.mod h1:gx7rwoVhcfuVKG5uya9Hs3Sxj7EIvldVofAWIUtGouw=
146128
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
@@ -157,17 +139,13 @@ github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4
157139
github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM=
158140
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
159141
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
160-
github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo=
161-
github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ=
162142
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
163143
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
164144
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
165145
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
166146
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
167147
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
168148
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
169-
github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
170-
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
171149
github.com/mailru/easyjson v0.9.0 h1:PrnmzHw7262yW8sTBwxi1PdJA3Iw/EKBa8psRf7d9a4=
172150
github.com/mailru/easyjson v0.9.0/go.mod h1:1+xMtQp2MRNVL/V1bOzuP3aP8VNwRW55fQUto+XFtTU=
173151
github.com/maruel/natural v1.1.1 h1:Hja7XhhmvEFhcByqDoHz9QZbkWey+COd9xWfCfn1ioo=
@@ -182,8 +160,6 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ
182160
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
183161
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee h1:W5t00kpgFdJifH4BDsTlE89Zl93FEloxaWZfGcifgq8=
184162
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
185-
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
186-
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
187163
github.com/onsi/ginkgo/v2 v2.27.2 h1:LzwLj0b89qtIy6SSASkzlNvX6WktqurSHwkk2ipF/Ns=
188164
github.com/onsi/ginkgo/v2 v2.27.2/go.mod h1:ArE1D/XhNXBXCBkKOLkbsb2c81dQHCRcF5zwn/ykDRo=
189165
github.com/onsi/gomega v1.38.2 h1:eZCjf2xjZAqe+LeWvKb5weQ+NcPwX84kqJ0cZNxok2A=
@@ -197,14 +173,6 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE
197173
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
198174
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
199175
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
200-
github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h0RJWRi/o0o=
201-
github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg=
202-
github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk=
203-
github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE=
204-
github.com/prometheus/common v0.66.1 h1:h5E0h5/Y8niHc5DlaLlWLArTQI7tMrsfQjHV+d9ZoGs=
205-
github.com/prometheus/common v0.66.1/go.mod h1:gcaUsgf3KfRSwHY4dIMXLPV0K/Wg1oZ8+SbZk/HH/dA=
206-
github.com/prometheus/procfs v0.17.0 h1:FuLQ+05u4ZI+SS/w9+BWEM2TXiHKsUQ9TADiRH7DuK0=
207-
github.com/prometheus/procfs v0.17.0/go.mod h1:oPQLaDAMRbA+u8H5Pbfq+dl3VDAvHxMUOVhe0wYB2zw=
208176
github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=
209177
github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=
210178
github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
@@ -324,8 +292,6 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
324292
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
325293
golang.org/x/text v0.30.0 h1:yznKA/E9zq54KzlzBEAWn1NXSQ8DIp/NYMy88xJjl4k=
326294
golang.org/x/text v0.30.0/go.mod h1:yDdHFIX9t+tORqspjENWgzaCVXgk0yYnYuSZ8UzzBVM=
327-
golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI=
328-
golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4=
329295
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
330296
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
331297
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
@@ -336,16 +302,12 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T
336302
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
337303
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
338304
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
339-
gomodules.xyz/jsonpatch/v2 v2.4.0 h1:Ci3iUJyx9UeRx7CeFN8ARgGbkESwJK+KB9lLcWxY/Zw=
340-
gomodules.xyz/jsonpatch/v2 v2.4.0/go.mod h1:AH3dM2RI6uoBZxn3LVrfvJ3E0/9dG4cSrbuBJT4moAY=
341305
google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE=
342306
google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
343307
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
344308
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
345309
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
346310
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
347-
gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4=
348-
gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M=
349311
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
350312
gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
351313
gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME=
@@ -357,16 +319,10 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
357319
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
358320
k8s.io/api v0.34.1 h1:jC+153630BMdlFukegoEL8E/yT7aLyQkIVuwhmwDgJM=
359321
k8s.io/api v0.34.1/go.mod h1:SB80FxFtXn5/gwzCoN6QCtPD7Vbu5w2n1S0J5gFfTYk=
360-
k8s.io/apiextensions-apiserver v0.34.1 h1:NNPBva8FNAPt1iSVwIE0FsdrVriRXMsaWFMqJbII2CI=
361-
k8s.io/apiextensions-apiserver v0.34.1/go.mod h1:hP9Rld3zF5Ay2Of3BeEpLAToP+l4s5UlxiHfqRaRcMc=
362322
k8s.io/apimachinery v0.34.1 h1:dTlxFls/eikpJxmAC7MVE8oOeP1zryV7iRyIjB0gky4=
363323
k8s.io/apimachinery v0.34.1/go.mod h1:/GwIlEcWuTX9zKIg2mbw0LRFIsXwrfoVxn+ef0X13lw=
364-
k8s.io/client-go v0.34.1 h1:ZUPJKgXsnKwVwmKKdPfw4tB58+7/Ik3CrjOEhsiZ7mY=
365-
k8s.io/client-go v0.34.1/go.mod h1:kA8v0FP+tk6sZA0yKLRG67LWjqufAoSHA2xVGKw9Of8=
366324
k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
367325
k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
368-
k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b h1:MloQ9/bdJyIu9lb1PzujOPolHyvO06MXG5TUIj2mNAA=
369-
k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b/go.mod h1:UZ2yyWbFTpuhSbFhv24aGNOdoRdJZgsIObGBUaYVsts=
370326
k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 h1:SjGebBtkBqHFOli+05xYbK8YF1Dzkbzn+gDM4X9T4Ck=
371327
k8s.io/utils v0.0.0-20251002143259-bc988d571ff4/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
372328
sigs.k8s.io/controller-runtime v0.22.4 h1:GEjV7KV3TY8e+tJ2LCTxUTanW4z/FmNB7l327UfMq9A=

0 commit comments

Comments
 (0)