Andrei Aaron
a5cc8ab810
feat: support pushing multiple tags for a single manifest ( #3885 )
...
* feat: support pushing multiple tags for a single manifest
See https://github.com/opencontainers/distribution-spec/pull/600
Signed-off-by: Andrei Aaron <andreifdaaron@gmail.com >
* fix: constants not replaced in swagger output
Also godot mandates comments ending in dots,
which produces bad results in the swagger generated files, see the extra ". which is now fixed below:
```
diff --git a/swagger/docs.go b/swagger/docs.go
index 84b08277..fb2c45c3 100644
--- a/swagger/docs.go
+++ b/swagger/docs.go
@@ -114,7 +114,7 @@ const docTemplate = `{
}
},
"400": {
- "description": "bad request\".",
+ "description": "bad request",
"schema": {
"type": "string"
}
@@ -200,7 +200,7 @@ const docTemplate = `{
}
},
"400": {
- "description": "bad request\".",
+ "description": "bad request",
"schema": {
"type": "string"
}
diff --git a/swagger/swagger.json b/swagger/swagger.json
index cfeb3900..247f95fa 100644
--- a/swagger/swagger.json
+++ b/swagger/swagger.json
@@ -106,7 +106,7 @@
}
},
"400": {
- "description": "bad request\".",
+ "description": "bad request",
"schema": {
"type": "string"
}
@@ -192,7 +192,7 @@
}
},
"400": {
- "description": "bad request\".",
+ "description": "bad request",
"schema": {
"type": "string"
}
diff --git a/swagger/swagger.yaml b/swagger/swagger.yaml
index 57641c2f..09b30dcc 100644
--- a/swagger/swagger.yaml
+++ b/swagger/swagger.yaml
@@ -310,7 +310,7 @@ paths:
schema:
type: string
"400":
- description: bad request".
+ description: bad request
schema:
type: string
"500":
@@ -366,7 +366,7 @@ paths:
schema:
type: string
"400":
- description: bad request".
+ description: bad request
schema:
type: string
"500":
```
Signed-off-by: Andrei Aaron <andreifdaaron@gmail.com >
---------
Signed-off-by: Andrei Aaron <andreifdaaron@gmail.com >
2026-03-29 21:13:24 +03:00
Andrei Aaron
4628080fa1
fix: remove misleading error messages on successful syncs ( #3619 )
...
See: https://github.com/project-zot/zot/issues/3560#issuecomment-3594856118
What happens is:
- syncRef skips the image ("skipping image because it's already synced")
- syncReferrers doesn't sync anything
- CommitAll is still called even though nothing was synced
- The temp directory exists but is empty (no index.json, no blobs)
- CommitAll fails because index.json is missing
Let's ensure we properly check for errors, and skip the log messages if some of the cases.
Signed-off-by: Andrei Aaron <andreifdaaron@gmail.com >
2025-12-09 08:11:28 +02:00
Andrei Aaron
da426850e7
chore: update golangci-lint and fix all issues ( #3575 )
...
* chore: Update golangci-lint
Signed-off-by: Lars Francke <git@lars-francke.de >
* chore: fix all golangci-lint issues
- Remove deprecated `// +build` tags
- Fix godoclint, modernize, wsl_v5, govet, lll, gci, noctx issues
- Update linter configuration
- Modernize code to use Go 1.22+ features (for range N, slices.Contains, etc.)
- Update make check lint the privileged tests
Signed-off-by: Andrei Aaron <andreifdaaron@gmail.com >
---------
Signed-off-by: Lars Francke <git@lars-francke.de >
Signed-off-by: Andrei Aaron <andreifdaaron@gmail.com >
Co-authored-by: Lars Francke <git@lars-francke.de >
2025-11-22 23:36:48 +02:00
Andrei Aaron
008527b7bb
fix: gracefully handle manifests missing from storage (prepare for sparse indexes) ( #3503 )
...
GC and scrub should not stop if a manifest or index is missing from storage.
Other similar changes are also included.
WRT metadb, the missing manifests cannot be added, and the results returned from metadb
do not include the descriptors for these manifests.
Signed-off-by: Andrei Aaron <andreifdaaron@gmail.com >
2025-11-13 09:26:18 -08:00
Luca Muscariello
2402296e9a
fix: migrate to Go module v2 for proper semantic versioning ( #3462 )
...
* fix: migrate to Go module v2 for proper semantic versioning
This change updates the module path from 'zotregistry.dev/zot' to
'zotregistry.dev/zot/v2' to comply with Go's semantic versioning rules.
According to Go's module versioning requirements, major version v2+
must include the major version in the module path. The current
module path 'zotregistry.dev/zot' only supports v0.x.x and v1.x.x
versions, making existing v2.x.x tags (like v2.1.8) unusable.
Changes:
- Updated go.mod module path to zotregistry.dev/zot/v2
- Updated all internal import paths across 280+ Go source files
- Updated configuration files (golangcilint.yaml, gqlgen.yml)
- Updated README.md Go reference badge
This fix enables proper use of existing v2.x.x Git tags and allows
external packages to import zot v2+ versions without compatibility
errors.
Resolves: Go module import compatibility for v2+ versions
Fixes : #3071
Signed-off-by: Luca Muscariello <muscariello@ieee.org >
* fix: regenerate GraphQL files with updated v2 import paths
The gqlgen tool needs to regenerate the GraphQL schema files after
the module path change to use the new v2 imports.
Signed-off-by: Luca Muscariello <muscariello@ieee.org >
---------
Signed-off-by: Luca Muscariello <muscariello@ieee.org >
2025-10-16 22:43:47 -07:00
Piaras Hoban
bc5fd1a357
feat(events): add events extension ( #3045 )
...
* feat: add events config
Signed-off-by: Piaras Hoban <phoban01@gmail.com >
* feat: implement event support with log sink
Signed-off-by: Piaras Hoban <phoban01@gmail.com >
* feat: integrate events and update tests
Signed-off-by: Piaras Hoban <phoban01@gmail.com >
* refactor: update event config
Signed-off-by: Piaras Hoban <phoban01@gmail.com >
* feat: implement http and nats sinks. remove log sink
Signed-off-by: Piaras Hoban <phoban01@gmail.com >
* refactor: events extension setup
Signed-off-by: Piaras Hoban <phoban01@gmail.com >
* chore: cleanup tests to use nil event recorder
Signed-off-by: Piaras Hoban <phoban01@gmail.com >
* chore: update events config example and add more logging
Signed-off-by: Piaras Hoban <phoban01@gmail.com >
* refactor: better use of build tags for minimal binary
Signed-off-by: Piaras Hoban <phoban01@gmail.com >
* fix: missing store param in evelated privileges tests
Signed-off-by: Piaras Hoban <phoban01@gmail.com >
* fix: regression in config decoding
Signed-off-by: Piaras Hoban <phoban01@gmail.com >
* chore: update check logs script to enable cross-platform usage via GREP_BIN_PATH envvar
Signed-off-by: Piaras Hoban <phoban01@gmail.com >
* chore: fix log lint issue for events
Signed-off-by: Piaras Hoban <phoban01@gmail.com >
* chore: fix failing events disabled test
Signed-off-by: Piaras Hoban <phoban01@gmail.com >
* test: add blackbox tests for events
Signed-off-by: Piaras Hoban <phoban01@gmail.com >
* chore: specify architecture when downloading binaries in Makefile
Signed-off-by: Piaras Hoban <phoban01@gmail.com >
* chore: improve failure handling when no valid sinks are provided
Signed-off-by: Piaras Hoban <phoban01@gmail.com >
* test: fix data race in events test
Signed-off-by: Piaras Hoban <phoban01@gmail.com >
* chore: cleanup event decoding
Signed-off-by: Piaras Hoban <phoban01@gmail.com >
* test: fix logging tests
Signed-off-by: Piaras Hoban <phoban01@gmail.com >
* test: make nats server test more reliable
Signed-off-by: Piaras Hoban <phoban01@gmail.com >
* chore: go mod cleanup
Signed-off-by: Piaras Hoban <phoban01@gmail.com >
* test: add sleep when setting up nats client
Signed-off-by: Piaras Hoban <phoban01@gmail.com >
* fix: ensure event sink errors do not propogate
Signed-off-by: Piaras Hoban <phoban01@gmail.com >
* test: increase coverage for events
Signed-off-by: Piaras Hoban <phoban01@gmail.com >
* feat(events): Refactor events to be non-blocking from caller.
Signed-off-by: Asgeir Nilsen <asgeir.nilsen@bouvet.no >
Signed-off-by: Piaras Hoban <phoban01@gmail.com >
* chore: remove harded-coded linux
Co-authored-by: Andrei Aaron <andreifdaaron@gmail.com >
Signed-off-by: Piaras Hoban <phoban01@gmail.com >
* feat(events): fail to start if incorrect event sink is configured
Signed-off-by: Piaras Hoban <phoban01@gmail.com >
* test: allow cli tests to return errors instead of panic
Signed-off-by: Piaras Hoban <phoban01@gmail.com >
* chore: bump nats server to v2.11.3
Signed-off-by: Piaras Hoban <phoban01@gmail.com >
---------
Signed-off-by: Piaras Hoban <phoban01@gmail.com >
Signed-off-by: Asgeir Nilsen <asgeir.nilsen@bouvet.no >
Co-authored-by: Asgeir Nilsen <asgeir.nilsen@bouvet.no >
Co-authored-by: Andrei Aaron <andreifdaaron@gmail.com >
2025-05-02 12:30:06 -07:00
peusebiu
0e2aa81439
feat(sync): use regclient for sync extension ( #2903 )
...
* feat(sync): use regclient for sync extension
replaced containers/image package with regclient/regclient package
Signed-off-by: Eusebiu Petu <petu.eusebiu@gmail.com >
* fix(sync): fixed converting innner docker list mediatype
Signed-off-by: Eusebiu Petu <petu.eusebiu@gmail.com >
* feat(sync): added option to preserve digest
Signed-off-by: Eusebiu Petu <petu.eusebiu@gmail.com >
* fix(sync): added coverage and various fixes
Signed-off-by: Eusebiu Petu <petu.eusebiu@gmail.com >
* fix(metadb): fixed converting manifest list not setting platform and annotations
Signed-off-by: Eusebiu Petu <petu.eusebiu@gmail.com >
* fix(sync): remove read lock on storage, not used concurrently
Signed-off-by: Eusebiu Petu <petu.eusebiu@gmail.com >
* feat(sync): added cache for repo tags
Signed-off-by: Eusebiu Petu <petu.eusebiu@gmail.com >
* fix(sync): fixed Makefile
removed opengpg tag
Signed-off-by: Eusebiu Petu <petu.eusebiu@gmail.com >
* fix(sync): add test for on demand referrer
Signed-off-by: Eusebiu Petu <petu.eusebiu@gmail.com >
---------
Signed-off-by: Eusebiu Petu <petu.eusebiu@gmail.com >
2025-04-15 16:58:15 -07:00
Ramkumar Chinchani
cb2af94b0b
feat: add support for docker images ( #2714 )
...
* feat: add support for docker images
Issue #724
A new config section under "HTTP" called "Compat" is added which
currently takes a list of possible compatible legacy media-types.
https://github.com/opencontainers/image-spec/blob/main/media-types.md#compatibility-matrix
Only "docker2s2" (Docker Manifest V2 Schema V2) is currently supported.
Garbage collection also needs to be made aware of non-OCI compatible
layer types.
feat: add cve support for non-OCI compatible layer types
Signed-off-by: Ramkumar Chinchani <rchincha@cisco.com >
*
Signed-off-by: Ramkumar Chinchani <rchincha@cisco.com >
* test: add more docker compat tests
Signed-off-by: Ramkumar Chinchani <rchincha@cisco.com >
* feat: add additional validation checks for non-OCI images
Signed-off-by: Ramkumar Chinchani <rchincha@cisco.com >
* ci: make "full" images docker-compatible
Signed-off-by: Ramkumar Chinchani <rchincha@cisco.com >
---------
Signed-off-by: Ramkumar Chinchani <rchincha@cisco.com >
2024-10-31 09:44:04 +02:00
Jan-Otto Kröpke
f618b1d4ef
ci(deps): upgrade golangci-lint ( #2556 )
...
* ci(deps): upgrade golangci-lint
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de >
* build(deps): removed disabled linters
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de >
* build(deps): go run github.com/daixiang0/gci@latest write .
Signed-off-by: Jan-Otto Kröpke <joe@cloudeteer.de >
* build(deps): go run golang.org/x/tools/cmd/goimports@latest -l -w .
Signed-off-by: Jan-Otto Kröpke <joe@cloudeteer.de >
* build(deps): go run github.com/bombsimon/wsl/v4/cmd...@latest -strict-append -test=true -fix ./...
Signed-off-by: Jan-Otto Kröpke <joe@cloudeteer.de >
* build(deps): go run github.com/catenacyber/perfsprint@latest -fix ./...
Signed-off-by: Jan-Otto Kröpke <joe@cloudeteer.de >
* build(deps): replace gomnd by mnd
Signed-off-by: Jan-Otto Kröpke <joe@cloudeteer.de >
* build(deps): make gqlgen
Signed-off-by: Jan-Otto Kröpke <joe@cloudeteer.de >
* build: Revert "build(deps): go run github.com/daixiang0/gci@latest write ."
This reverts commit 5bf8c42e1f .
Signed-off-by: Jan-Otto Kröpke <joe@cloudeteer.de >
* build(deps): go run github.com/daixiang0/gci@latest write -s 'standard' -s default -s 'prefix(zotregistry.dev/zot)' .
Signed-off-by: Jan-Otto Kröpke <joe@cloudeteer.de >
* build(deps): make gqlgen
Signed-off-by: Jan-Otto Kröpke <joe@cloudeteer.de >
* fix: wsl issues
Signed-off-by: Jan-Otto Kröpke <joe@cloudeteer.de >
* fix: wsl issues
Signed-off-by: Jan-Otto Kröpke <joe@cloudeteer.de >
* fix: wsl issues
Signed-off-by: Jan-Otto Kröpke <joe@cloudeteer.de >
* fix: wsl issues
Signed-off-by: Jan-Otto Kröpke <joe@cloudeteer.de >
* fix: wsl issues
Signed-off-by: Jan-Otto Kröpke <joe@cloudeteer.de >
* fix: wsl issues
Signed-off-by: Jan-Otto Kröpke <joe@cloudeteer.de >
* fix: wsl issues
Signed-off-by: Jan-Otto Kröpke <joe@cloudeteer.de >
* fix: wsl issues
Signed-off-by: Jan-Otto Kröpke <joe@cloudeteer.de >
* fix: wsl issues
Signed-off-by: Jan-Otto Kröpke <joe@cloudeteer.de >
* fix: wsl issues
Signed-off-by: Jan-Otto Kröpke <joe@cloudeteer.de >
* fix: wsl issues
Signed-off-by: Jan-Otto Kröpke <joe@cloudeteer.de >
* fix: wsl issues
Signed-off-by: Jan-Otto Kröpke <joe@cloudeteer.de >
* fix: wsl issues
Signed-off-by: Jan-Otto Kröpke <joe@cloudeteer.de >
* fix: wsl issues
Signed-off-by: Jan-Otto Kröpke <joe@cloudeteer.de >
* fix: wsl issues
Signed-off-by: Jan-Otto Kröpke <joe@cloudeteer.de >
* fix: wsl issues
Signed-off-by: Jan-Otto Kröpke <joe@cloudeteer.de >
* fix: wsl issues
Signed-off-by: Jan-Otto Kröpke <joe@cloudeteer.de >
* fix: wsl issues
Signed-off-by: Jan-Otto Kröpke <joe@cloudeteer.de >
* fix: wsl issues
Signed-off-by: Jan-Otto Kröpke <joe@cloudeteer.de >
* fix: wsl issues
Signed-off-by: Jan-Otto Kröpke <joe@cloudeteer.de >
* fix: wsl issues
Signed-off-by: Jan-Otto Kröpke <joe@cloudeteer.de >
* fix: wsl issues
Signed-off-by: Jan-Otto Kröpke <joe@cloudeteer.de >
* fix: wsl issues
Signed-off-by: Jan-Otto Kröpke <joe@cloudeteer.de >
* fix: wsl issues
Signed-off-by: Jan-Otto Kröpke <joe@cloudeteer.de >
* fix: check-log issues
Signed-off-by: Jan-Otto Kröpke <joe@cloudeteer.de >
* fix: gci issues
Signed-off-by: Jan-Otto Kröpke <joe@cloudeteer.de >
* fix: tests
Signed-off-by: Jan-Otto Kröpke <joe@cloudeteer.de >
---------
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de >
Signed-off-by: Jan-Otto Kröpke <joe@cloudeteer.de >
2024-07-29 10:32:51 -07:00
Anders Bennedsgaard
8262c46ad7
Fix sync extension logging ( #2537 )
...
* fix: nil pointer dereference on localimagestore
fixes https://github.com/project-zot/zot/issues/2527
Signed-off-by: Anders Bennedsgaard <abbennedsgaard@gmail.com >
* fix: no logging from sync extension imagestore
Signed-off-by: Anders Bennedsgaard <abbennedsgaard@gmail.com >
* feat: create local imagestore not found error
Signed-off-by: Anders Bennedsgaard <abbennedsgaard@gmail.com >
* fix: add test
Signed-off-by: Anders Bennedsgaard <abbennedsgaard@gmail.com >
---------
Signed-off-by: Anders Bennedsgaard <abbennedsgaard@gmail.com >
2024-07-15 10:30:43 -07:00
peusebiu
740eae8f26
fix(sync): better cleaning sync's download dir ( #2273 )
...
added cleanup in the case of copy.Image() failures.
Signed-off-by: Petu Eusebiu <peusebiu@cisco.com >
2024-02-29 09:09:21 -08:00
Andrei Aaron
ce4924f841
refactor: rename go module from zotregistry.io/zot to zotregistry.dev/zot ( #2187 )
...
Signed-off-by: Andrei Aaron <aaaron@luxoft.com >
2024-01-31 20:34:07 -08:00
LaurentiuNiculae
79e14027ee
refactor(test): add lint rule for messages starting with the component ( #2045 )
...
Signed-off-by: Ramkumar Chinchani <rchincha@cisco.com >
Signed-off-by: Laurentiu Niculae <niculae.laurentiu1@gmail.com >
Signed-off-by: Andrei Aaron <aaaron@luxoft.com >
2023-12-08 10:05:02 +02:00
peusebiu
3c8da6e6fc
Sync s3 ( #2073 )
...
* feat(sync): local tmp store
Signed-off-by: a <a@tuxpa.in >
* fix(sync): various fixes for s3+remote storage feature
Signed-off-by: Petu Eusebiu <peusebiu@cisco.com >
---------
Signed-off-by: a <a@tuxpa.in >
Signed-off-by: Petu Eusebiu <peusebiu@cisco.com >
Co-authored-by: a <a@tuxpa.in >
2023-11-28 12:08:15 -08:00