Files
Factory/container-build-checks/0001-Allow-slash-prefixes-in-registry.patch
2025-04-30 16:42:54 +02:00

40 lines
1.8 KiB
Diff

From 982cfa8500250c9704448880a779ade06cc8f976 Mon Sep 17 00:00:00 2001
From: Nicolas Belouin <nicolas.belouin@suse.com>
Date: Thu, 3 Apr 2025 16:53:49 +0200
Subject: [PATCH] Allow slash prefixes in registry
Signed-off-by: Nicolas Belouin <nicolas.belouin@suse.com>
---
container-build-checks.py | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/container-build-checks.py b/container-build-checks.py
index b8c873c..d862f33 100755
--- a/container-build-checks.py
+++ b/container-build-checks.py
@@ -82,13 +82,17 @@ def verify_reference(image, result, value):
return
(registry, repo, tag) = reference_match.groups()
- allowed_registries: list[str] = config["General"].getlist("Registry")
- if len(allowed_registries) and registry not in allowed_registries:
+ raw_allowed_registries: list[str] = config["General"].getlist("Registry")
+ allowed_registries: dict[str, str] = {v[0]: v[2] for v in map(lambda a: a.partition("/"), raw_allowed_registries)}
+
+ if len(allowed_registries) and (registry not in allowed_registries.keys() or not repo.startswith(allowed_registries[registry])):
result.warn(
f"The org.opensuse.reference label ({value}) does not use an "
- f"allowed registry: {','.join(allowed_registries)}")
+ f"allowed registry: {','.join(raw_allowed_registries)}")
+
+ prefix = allowed_registries[registry]
- if f"{repo}:{tag}" not in image.containerinfo["tags"]:
+ if f"{repo[len(prefix)+1:]}:{tag}" not in image.containerinfo["tags"]:
tags = ", ".join(image.containerinfo["tags"])
result.warn(f"The org.opensuse.reference label ({value}) does not refer to an existing tag ({tags})")
elif "release" in image.containerinfo and image.containerinfo["release"] not in tag:
--
2.49.0