What's Changed
- fix(ci): use latest zot for upgrade tests by @vrajashkr in #4298
- chore(deps): bump the go-dependencies group with 12 updates by @dependabot[bot] in #4306
- fix(imagetrust): add recognization of sigstore v3 bundles by @ecmoser in #4307
- chore(deps): bump github.com/go-git/go-git/v5 from 5.19.1 to 5.19.2 by @dependabot[bot] in #4310
- fix(auth): make htpasswd hot-reload work for K8s secret mounts by @andaaron in #4285
- chore(deps): bump the github-actions group with 7 updates by @dependabot[bot] in #4314
- fix: code quality review comments by @rchincha in #4312
- fix(storage): dedupe walk must visit nested-namespace repositories by @Lcos-000 in #4313
- fix(gc): collect referenced blobs once per repo during cleanup by @thees in #4236
- test: prefer Port "0" and TLS-aware StartAndWait to cut bind flakes by @andaaron in #4317
- ci: update codeowners by @andaaron in #4321
- fix: stop metrics goroutine leak in sync without metrics build by @andaaron in #4320
- chore(deps): bump the go-dependencies group with 15 updates by @dependabot[bot] in #4324
- fix(gc): prevent exponential nested-index walks during untagged GC; correctly GC multi-tag and cosign referrers that share a digest by @andaaron in #4318
- fix(storage): memoize nested index walks and honor docker media types in blob lookups by @andaaron in #4325
- fix(storage): honor docker2s2 compat media types in delete/prune/scrub by @rchincha in #4327
- chore(deps): bump the github-actions group with 5 updates by @dependabot[bot] in #4329
- feat: bump zui version by @andaaron in #4330
- feat(sync): add manifestCheckInterval to throttle on-demand upstream manifest checks by @dongshuzhao in #4328
- feat(sync): make upstream request concurrency/rate configurable by @yinsenyan in #4322
- fix(cli): stop test server leaks and initialize Trivy logger safely by @andaaron in #4331
- fix(sync): add disableHTTP2 option to saturate high-bandwidth links by @rchincha in #4335
- fix(events): only log successful publish when all sinks accept the event by @rchincha in #4334
- chore(deps): bump the go-dependencies group with 15 updates by @dependabot[bot] in #4340
- Update link reference for project-zot repository by @arshamalh in #4342
- feat(ci): also use floci for CI tests by @vrajashkr in #4295
- ci: always run emulator teardown after job failures by @andaaron in #4341
- fix: miscellaneous code quality review fixes by @rchincha in #4348
- chore(deps): bump the github-actions group with 4 updates by @dependabot[bot] in #4354
- perf: drop the index walk on blob Content-Type by @datadot in #4350
- feat(search): support Trivy ignore files by @Jmainguy in #4346
- test: fix scrub extension flaky tests by @vrajashkr in #4358
- chore(deps): bump the go-dependencies group with 13 updates by @dependabot[bot] in #4362
- perf: walk storage once per dedupe run by @datadot in #4351
- fix: don't lock storage before reading blob upload bodies by @andaaron in #4360
- feat(server): support systemd socket activation by @gira0 in #4326
- test(blackbox): allocate two distinct systemd ports for multi-listener by @andaaron in #4367
- ci: stabilize systemd tests by @andaaron in #4369
- test: avoid TestAPIKeys short-expire flake by @andaaron in #4370
- fix(compat): preserve Docker media types through MetaDB and search by @andaaron in #4359
- feat(mgmt): expose allowAnonymousAccess in auth config by @andaaron in #4368
- chore: bump zui version by @andaaron in #4377
- fix(api)!: make blob HEAD/range reads repo-local by default by @andaaron in #4363
- chore(deps): bump the github-actions group with 5 updates by @dependabot[bot] in #4381
- fix(cve): stop SBOM generation from widening CVE results by @griffinbranham-geico in #4366
- chore: bump zui version by @rchincha in #4382
- fix(sync): dedupe on-demand sync with singleflight by @andaaron in #4379
- fix(meta): release the repo quota slot when a repo is emptied by @Aluchir in #4332
- fix(api): enforce dedupe mount auth for bearer and unify via UserAc by @andaaron in #4380
- feat(events): configurable CloudEvents source and type namespace by @Aluchir in #4385
- chore(deps): bump google.golang.org/grpc from 1.82.1 to 1.83.1 by @dependabot[bot] in #4388
- test(blackbox): add mount authorization tests with curl and regctl by @andaaron in #4387
- test(sync,retention): fix flaky tests by @andaaron in #4389
- fix(sync,gc): guard repo removal and reap stale .sync staging sessions by @andaaron in #4383
- feat(zb): add --max-timeout-failures budget for GC stress flakes by @andaaron in #4394
- fix(search): configure the GraphQL server explicitly instead of the e… by @rchincha in #4395
- ci: build zot binaries once per workflow and reuse them by @andaaron in #4397
- ci: parallelize ecosystem client-tools jobs with shared build artifact by @andaaron in #4392
- chore(deps): bump the go-dependencies group with 12 updates by @dependabot[bot] in #4396
- refactor(compat): consolidate repetitive media-type checks into helpers by @rchincha with @Copilot in #4402
- fix(api): don't 500 on GET manifest when download-stats update fails by @andaaron in #4403
- ci: consolidate shared binary install and scale-out CI helpers by @andaaron in #4401
- feat(events): reload the event recorder on config change by @Aluchir in #4400
- fix(cli): reload config on Kubernetes ConfigMap updates by @Aluchir in #4384
New Contributors
- @ecmoser made their first contribution in #4307
- @Lcos-000 made their first contribution in #4313
- @dongshuzhao made their first contribution in #4328
- @yinsenyan made their first contribution in #4322
- @arshamalh made their first contribution in #4342
- @Jmainguy made their first contribution in #4346
- @gira0 made their first contribution in #4326
- @griffinbranham-geico made their first contribution in #4366
- @rchincha with @Copilot made their first contribution in #4402
Full Changelog: v2.1.20...v2.1.21