Milos Gajdos
e4ee88b911
docs(notifications): describe the event target fields separately ( #5051 )
2026-10-27 17:43:33 -04:00
Milos Gajdos
5c6afb92ff
build(deps): bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.42.0 to 1.45.0 in the go_modules group across 1 directory ( #5047 )
2026-10-25 10:35:00 -04:00
Milos Gajdos
b506aa7a75
fix(deps): bump vulnerable deps ( #5046 )
2026-10-25 10:20:13 -04:00
Milos Gajdos
89bd800143
fix(deps): bump vulnerable deps
...
Signed-off-by: Milos Gajdos <milosthegajdos@gmail.com >
2026-10-24 13:37:49 -04:00
Milos Gajdos
ee80aa6ad6
build: bump Go to 1.26.10 in Dockerfiles ( #5043 )
2026-10-24 13:31:11 -04:00
Milos Gajdos
ddf4b31fc6
feat(proxy): add opt-in Range pass-through ( #5044 )
2026-10-24 13:28:28 -04:00
Milos Gajdos
b9a4745811
build(deps): bump docker/bake-action from 7.4.0 to 7.5.0 in the docker-actions group ( #5032 )
2026-10-21 08:13:02 -07:00
Milos Gajdos
cff0ff0c92
build(deps): bump the codeql-actions group across 1 directory with 4 updates ( #5014 )
2026-10-20 08:29:36 -07:00
Milos Gajdos
7e14f50c52
build(deps): bump ossf/scorecard-action from 2.4.4 to 2.5.0 ( #5031 )
2026-10-20 08:11:51 -07:00
Milos Gajdos
cc325ae74c
build(deps): bump codecov/codecov-action from 6.0.1 to 7.1.1 ( #5005 )
2026-10-19 09:18:04 -07:00
Milos Gajdos
952d81c67b
registry/storage: do not write hash state when closing a cancelled upload ( #5021 )
2026-10-18 09:25:38 -07:00
Milos Gajdos
042c3a9a51
docs(storage-drivers/gcs): document credentials, maxconcurrency and useragent ( #5018 )
2026-10-16 16:46:07 -07:00
Milos Gajdos
7ffd469066
docs(storage-drivers/gcs): correct the documented chunksize default ( #5017 )
2026-10-16 13:17:47 -07:00
Milos Gajdos
315f44a925
docs: fix the YAML key name in the platforms validation section ( #5015 )
2026-10-15 23:14:12 -07:00
Milos Gajdos
f7d69d28c2
driver/filesystem: fix uploads on Windows ( #5012 )
2026-10-14 13:00:17 -07:00
Milos Gajdos
84baa4692d
registry/storage: avoid duplicate SHA-256 in canonical full-fallback validation ( #4921 )
2026-10-14 10:56:17 -07:00
Milos Gajdos
1c8ef77db2
build(deps): bump actions/upload-artifact from 7.0.1 to 7.0.2 ( #5013 )
2026-10-14 08:34:03 -07:00
Milos Gajdos
d7da5da1ce
build(deps): bump actions/labeler from 6.1.0 to 7.0.0 ( #4985 )
2026-10-11 20:25:41 -07:00
Milos Gajdos
be78ef9417
Include filesystem rootdirectory in PathNotFound errors ( #5007 )
2026-10-11 17:18:39 -07:00
Milos Gajdos
036e830f80
fix(handlers): return 400 NAME_INVALID for over-long repository names ( #4995 )
2026-10-11 16:36:42 -07:00
Milos Gajdos
bbf0a189dc
build(deps): bump the codeql-actions group across 1 directory with 4 updates ( #4994 )
2026-10-07 21:36:25 -07:00
Milos Gajdos
fd9609dd58
Fix inmemory driver find traversing too deep into directory nodes ( #4996 )
2026-10-07 07:48:39 -07:00
Milos Gajdos
8ceb7bbf72
build: reduce binary size via improved dead‑code elimination ( #4997 )
2026-10-04 18:05:48 -07:00
Milos Gajdos
f01dfc400e
docs: fix "offical" typo in Azure storage documentation ( #4992 )
2026-10-01 08:09:54 -07:00
Milos Gajdos
1d71a5c78e
build(deps): bump ossf/scorecard-action from 2.4.3 to 2.4.4 ( #4991 )
2026-09-30 07:37:06 -07:00
Milos Gajdos
e0904092e2
build(deps): bump actions/checkout from 6.0.2 to 7.0.1 ( #4990 )
2026-09-29 07:25:03 -07:00
Milos Gajdos
905f26de4b
build(deps): bump the codeql-actions group across 1 directory with 4 updates ( #4984 )
2026-09-28 06:46:07 -07:00
Milos Gajdos
923efdb825
Update containerd client link .../{master => main/core}/remotes/docker ( #4902 )
2026-09-26 08:50:04 -07:00
Milos Gajdos
3220848f15
chore(release): prepare for v3.1.2 release ( #4981 )
2026-09-24 04:43:29 -07:00
Milos Gajdos
973fbf7e75
build(deps): bump the docker-actions group across 1 directory with 3 updates ( #4978 )
2026-09-23 18:38:52 -07:00
Milos Gajdos
30301b116a
build(deps): bump actions/setup-go from 6.4.0 to 7.0.0 ( #4982 )
2026-09-23 18:38:23 -07:00
Milos Gajdos
fd67fd4e32
chore(release): prepare for v3.1.2 release
...
* Release notes added
* AUTHORS updated
* Version bump in the version package
Signed-off-by: Milos Gajdos <milosthegajdos@gmail.com >
2026-09-23 07:52:57 -07:00
Milos Gajdos
960439b09f
Merge commit from fork
...
fix(client): verify manifest and blob content against requested digest (GHSA-685w-q87j-wqw3)
2026-09-23 07:25:18 -07:00
Milos Gajdos
ca9b887920
build(deps): bump the codeql-actions group with 4 updates ( #4977 )
2026-09-23 07:20:10 -07:00
Milos Gajdos
77aca8d1e7
build(deps): bump actions/deploy-pages from 5.0.0 to 5.0.1 ( #4979 )
2026-09-23 07:18:50 -07:00
Milos Gajdos
5e5d395b64
ci: dependabot: group CodeQL and Docker action updates ( #4975 )
2026-09-23 06:54:23 -07:00
Milos Gajdos
bc5876a2f2
registry: remove logrus-logstash-hook dependency ( #4970 )
2026-09-22 10:14:10 -07:00
Milos Gajdos
aa0900d7b9
chore(docs): fix build status badge ( #4969 )
2026-09-22 08:39:51 -07:00
Milos Gajdos
a95d3993c9
chore(docs): fix build status badge
...
Replaced the legacy badge URL with GitHub’s documented workflow-file endpoint
Signed-off-by: Milos Gajdos <milosthegajdos@gmail.com >
2026-09-22 07:40:46 -07:00
Milos Gajdos
774a889daa
build(deps): bump docker/metadata-action from 6.1.0 to 6.2.0 ( #4915 )
2026-09-22 07:32:52 -07:00
Milos Gajdos
8e7f698a2a
chore(deps): bump oltp version ( #4968 )
2026-09-22 07:18:23 -07:00
Milos Gajdos
d19a486756
chore(deps): bump oltp version
...
This is one last dep update that fixes a medium sec vuln
Signed-off-by: Milos Gajdos <milosthegajdos@gmail.com >
2026-09-22 07:07:39 -07:00
Milos Gajdos
cffc083547
chore(ci): bump alpine image version ( #4966 )
2026-09-22 06:52:14 -07:00
Milos Gajdos
7fb99ce3e0
chore(ci): bump alpine image version
...
long overdue that fixes some minor vulns in base layers
Signed-off-by: Milos Gajdos <milosthegajdos@gmail.com >
2026-09-22 06:39:06 -07:00
Milos Gajdos
26be4bd519
fix(deps): update deps to fix security vulns ( #4965 )
2026-09-22 06:37:13 -07:00
Milos Gajdos
3ef63905b3
fix(deps): update deps to fix security vulns
...
Signed-off-by: Milos Gajdos <milosthegajdos@gmail.com >
2026-09-22 06:23:35 -07:00
Milos Gajdos
a45f0a0824
docs: explain Redis Sentinel configuration ( #4964 )
2026-09-22 06:11:57 -07:00
Milos Gajdos
4bf640e205
fix(deps): bump grpc dep to fix sec vuln ( #4963 )
2026-09-22 05:52:56 -07:00
Milos Gajdos
5d7daa1aa1
Fix lint
...
Signed-off-by: Milos Gajdos <milosthegajdos@gmail.com >
2026-09-21 21:01:32 -07:00
Milos Gajdos
eeb07fe996
fix(deps): bump grpc dep to fix sec vuln
...
See: https://github.com/distribution/distribution/security/dependabot/44
Signed-off-by: Milos Gajdos <milosthegajdos@gmail.com >
2026-09-21 20:54:22 -07:00
Milos Gajdos
a90fb174ca
fix(handlers): cancel context on Shutdown to stop upload purger goroutine ( #4956 )
2026-09-21 19:35:26 -07:00
Milos Gajdos
4203aaeaf7
chore(build): Bump Go version to latest 1.26 ( #4961 )
2026-09-21 18:04:31 +01:00
Milos Gajdos
17a0fd9660
chore(build): Bump go version to latest 1.26
...
Deprecate support for 1.25 now that 1.27 is out
Signed-off-by: Milos Gajdos <milosthegajdos@gmail.com >
2026-09-21 08:43:09 -07:00
Milos Gajdos
3575216ecf
docs: fix 'allows to rewrite' grammar in rewrite storage middleware ( #4955 )
2026-09-21 16:08:47 +01:00
Milos Gajdos
34c2599fa3
fix(s3): use path.Dir instead of filepath.Dir in directoryDiff ( #4950 )
2026-09-21 16:05:54 +01:00
Milos Gajdos
0e5cebb99d
fix(ci): fix broken minio image ( #4960 )
2026-09-21 15:47:41 +01:00
Milos Gajdos
a131a2ac04
fix(ci): fix broken minio image
...
Unfortunately minio removed their docker images from Docker Hub which we
rely on in our CI; luckily chainguard maintas both so we're gonna use
those from now on and pin them to specific hashes.
Signed-off-by: Milos Gajdos <milosthegajdos@gmail.com >
2026-09-20 19:53:35 -07:00
Milos Gajdos
5b354e6fda
Fix 500s from malformed manifest digests and out-of-order final chunk PUTs ( #4945 )
2026-08-31 12:51:49 -07:00
Milos Gajdos
9eb0061a22
test: use ephemeral ports for registry listen tests ( #4929 )
2026-08-28 16:09:56 -07:00
Milos Gajdos
64902aa389
chore: update testify, logrus, and migrate to go.yaml.in/yaml/v2 ( #4940 )
2026-08-26 15:12:07 -07:00
Milos Gajdos
f82aaf4bfc
chore(deps): github.com/docker/go-metrics v0.1.0 ( #4941 )
2026-08-26 08:11:11 -07:00
Milos Gajdos
0d6b721dc3
docs: fix CloudFront Origin Path guidance for S3 driver ( #4936 )
2026-08-18 11:55:22 -07:00
Milos Gajdos
4f6036efc8
fix(tags): return empty array after final pagination marker ( #4931 )
2026-08-10 12:04:46 -07:00
Milos Gajdos
5337dd7eba
fix(storage): don't drop catalog repos that prefix another name ( #4904 )
2026-07-29 08:19:00 -07:00
Milos Gajdos
4d578730b8
build(deps): bump docker/login-action from 4.1.0 to 4.2.0 ( #4880 )
2026-07-18 20:13:18 -07:00
Milos Gajdos
caf6e27f4a
build(deps): bump docker/metadata-action from 6.0.0 to 6.1.0 ( #4882 )
2026-07-18 20:12:51 -07:00
Milos Gajdos
fbede68cce
build(deps): bump github/codeql-action from 4.35.5 to 4.36.0 ( #4881 )
2026-07-18 14:01:47 -07:00
Milos Gajdos
47294f6dde
build(deps): bump actions/labeler from 6.0.1 to 6.1.0 ( #4866 )
2026-07-18 14:01:03 -07:00
Milos Gajdos
ebf607a7ca
docs: document catalog.maxentries configuration ( #4911 )
2026-07-18 13:33:10 -07:00
Milos Gajdos
39d5bf7777
fix(security): fix CVE-2026-46595 by bumping golang.org/x/crypto ( #4912 )
2026-07-18 09:35:55 -07:00
Milos Gajdos
0ae90d59eb
fix: check backend directly in blobStore.Put to avoid stale cache ( #4868 )
2026-07-18 09:33:09 -07:00
Milos Gajdos
1c159f24f2
fix(security): fix CVE-2026-46595 by bumping golang.org/x/crypto
...
We also address deprecated package that was breaking lint
Signed-off-by: Milos Gajdos <milosthegajdos@gmail.com >
2026-07-18 09:22:22 -07:00
Milos Gajdos
472c9d38c9
fix contentRangeRegexp to accept unknown total size ( #4892 )
2026-06-19 07:58:23 -07:00
Milos Gajdos
03210665f5
fix(s3): tags/list drops tags that are a lexical prefix of another tag ( #4898 )
2026-06-15 07:29:55 -07:00
Milos Gajdos
d1dbbb196c
fix(s3): tags/list drops tags that are a lexical prefix of another tag
...
The S3 driver's Walk used a bare strings.HasPrefix to decide whether a
walkInfo was under the last ErrSkipDir directory. Without a trailing
"/" on the parent, a sibling whose name starts with the skipped
directory's name (e.g. "0.1.20" after "0.1.2") falsely matched and was
skipped, so its tag dir was never emitted to handleTag and the tag was
omitted from /v2/<name>/tags/list.
Replace the prefix check with isSubpath, which appends "/" to the
parent so only true descendants match. Add a unit test pinning the
sibling-with-lexical-prefix case.
The bug is S3-only because the filesystem and inmemory drivers list
directories recursively via WalkFallback and don't use this skip
mechanism. It surfaced in 3.1.0 when the tags handler switched from
tagService.All() (driver List with delimiter) to tagService.List()
(driver Walk) for pagination support.
Fixes #4891
Signed-off-by: Milos Gajdos <milosthegajdos@gmail.com >
2026-06-14 17:22:48 -07:00
Milos Gajdos
af1b4b4e9a
azure: fix race condition in PutContent causing duplicate append writes ( #4888 )
2026-06-07 09:20:23 -07:00
Milos Gajdos
915084f4bc
feat(s3): parse and strictly validate redirectendpoint on driver initialization ( #4870 )
2026-05-31 12:31:37 -07:00
Milos Gajdos
22c97cc513
fix: report error in DeleteManifest when Delete returns ErrDigestUnsupported ( #4802 )
2026-05-28 07:29:39 -07:00
Milos Gajdos
25b2d1dc7f
fix(storage): Fix blob type migration in the azure driver ( #4871 )
2026-05-28 07:29:34 -07:00
Milos Gajdos
8b2870824b
chore: smol go fix changes ( #4876 )
2026-05-24 17:12:01 -07:00
Milos Gajdos
0d5789588f
chore: smol go fix changes
...
This PR changes the code based on the `go fix` suggestions
to modernize the codebase and keep up with the latest Go features.
Signed-off-by: Milos Gajdos <milosthegajdos@gmail.com >
2026-05-24 15:56:02 -07:00
Milos Gajdos
ade782b145
build(deps): bump github/codeql-action from 4.35.3 to 4.35.4 ( #4867 )
2026-05-13 19:19:24 -07:00
Milos Gajdos
48901448e7
build(deps): bump github/codeql-action from 4.35.2 to 4.35.3 ( #4865 )
2026-05-12 10:00:54 -07:00
Milos Gajdos
1d4476c1e3
build(deps): bump softprops/action-gh-release from 2.6.1 to 3.0.0 ( #4859 )
2026-05-12 10:00:44 -07:00
Milos Gajdos
9a8d98b679
chore(release): prepare for v3.1.1 release ( #4864 )
2026-05-01 08:28:51 -07:00
Milos Gajdos
d3c0df9f61
chore(release): prepare for v3.1.1 release
...
* Release notes added
* AUTHORS updated
* Version bump in the `version` package
Signed-off-by: Milos Gajdos <milosthegajdos@gmail.com >
2026-05-01 07:46:25 -07:00
Milos Gajdos
e09ff10155
Merge commit from fork
...
fix: prevent tag deletion when `storage.delete.enabled` is false
2026-05-01 07:27:34 -07:00
Milos Gajdos
f3af4de047
fix(storage): bounds-check the file basename in PurgeUploads Walk callback ( #4860 )
2026-04-22 11:07:45 -07:00
Milos Gajdos
1b5e226b6f
feat(s3): add express zone one support to S3 driver ( #4858 )
2026-04-20 07:47:28 -07:00
Milos Gajdos
afd2bf0b23
fix(proxy): clamp oversized n query param instead of returning 400 ( #4856 )
2026-04-20 07:47:14 -07:00
Milos Gajdos
835c1c581f
feat(s3): add express zone one support to S3 driver
...
Signed-off-by: Milos Gajdos <milosthegajdos@gmail.com >
2026-04-18 17:36:52 -07:00
Milos Gajdos
0f3e627937
build(deps): bump docker/bake-action from 7.0.0 to 7.1.0 ( #4853 )
2026-04-18 17:04:24 -07:00
Milos Gajdos
c6f552e5db
fix(proxy): clamp oversized n query param instead of returning 400
...
PR #4353 made MaxTags (default 1000) a hard ceiling on the `n` query
parameter — anything larger and the handler returns 400
PAGINATION_NUMBER_INVALID before the request ever reaches storage or
the proxy tag service. That broke clients like Renovate which use
n=10000 against pull-through caches. #4846 fixed a related 500 in
proxy mode but not this 400, so users reported the regression still
persisted.
The OCI distribution-spec describes pagination differently: a server
MAY return fewer than `n` results "when the total number of tags
attached to the repository is less than <int> or a Link header is
provided" — otherwise it MUST include `<int>` results. In other
words, the right answer for "client asked for more than we'll serve"
is `maxtags` results plus a Link header, not a rejection.
PAGINATION_NUMBER_INVALID isn't among the 14 error codes the spec
defines, either.
Drop the oversized-n rejection and clamp to MaxTags instead; the
existing Link-header path already handles continuation correctly.
Malformed (non-integer) and negative `n` values keep returning 400,
since the spec defines `n` as a non-negative integer and those
requests are genuinely invalid.
Verified end-to-end against registry-1.docker.io in proxy mode:
n=10000 now returns the tag list (or a clamped page with Link)
instead of 400. Also restores pre-3.1.0 behavior for Renovate-style
clients without needing proxy-specific logic.
Spec reference:
https://github.com/opencontainers/distribution-spec/blob/main/spec.md#listing-tags
Signed-off-by: Milos Gajdos <milosthegajdos@gmail.com >
2026-04-18 16:53:53 -07:00
Milos Gajdos
e39652ca1f
build(deps): bump docker/login-action from 4.0.0 to 4.1.0 ( #4847 )
2026-04-18 16:12:05 -07:00
Milos Gajdos
3d916b8c4f
build(deps): bump actions/upload-pages-artifact from 4.0.0 to 5.0.0 ( #4852 )
2026-04-18 16:11:52 -07:00
Milos Gajdos
17e760a9f0
build(deps): bump actions/upload-artifact from 7.0.0 to 7.0.1 ( #4854 )
2026-04-18 16:10:57 -07:00
Milos Gajdos
acabfb4b90
Update docker-compose structure in deploying.md ( #4855 )
2026-04-18 16:10:29 -07:00
Milos Gajdos
ca7d4de0ee
fix(proxy): fix tag list endpoint in proxy mode ( #4846 )
2026-04-16 14:17:56 -07:00
Milos Gajdos
ece70d987f
refactor: use slices.Backward to simplify the code ( #4848 )
2026-04-16 14:17:33 -07:00
Milos Gajdos
24a4d24a24
chore(build): Bump go version to latest ( #4851 )
2026-04-14 14:12:13 -07:00