From fd4e34354eea61fcd8dabde68d5eee11338cb6a0 Mon Sep 17 00:00:00 2001 From: Richard Z <r@richardz.de> Date: Fri, 22 Oct 2021 09:51:34 +0200 Subject: [PATCH] add retag script --- retag-clean.sh | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100755 retag-clean.sh diff --git a/retag-clean.sh b/retag-clean.sh new file mode 100755 index 0000000..8b5995e --- /dev/null +++ b/retag-clean.sh @@ -0,0 +1,34 @@ +#!/bin/sh +REG='https://registry.git-ce.rwth-aachen.de' +AUTH_BASE='https://git-ce.rwth-aachen.de/jwt/auth' +# www-authenticate: Bearer realm="https://git-ce.rwth-aachen.de/jwt/auth",service="container_registry",scope="repository:rz/docker-test/mampf:pull" +IMAGE_NAME='rz/docker-test/mampf' +USER=YOUR_USER_NAME +PASS=YOUR_PASSWORD + +TAG_SOURCE="dev0" +TAG_TARGET="even-more-dev-ish" + +AUTH_URL="$AUTH_BASE?service=container_registry&scope=repository:$IMAGE_NAME:pull,push" +MANIFEST_SOURCE="$REG/v2/$IMAGE_NAME/manifests/$TAG_SOURCE" +MANIFEST_TARGET="$REG/v2/$IMAGE_NAME/manifests/$TAG_TARGET" + +MANIFEST_TYPE='application/vnd.docker.distribution.manifest.v2+json' + +set -e + +# auth +token=$(curl -s --user "$USER:$PASS" "$AUTH_URL" | jq -r .token) +authHeader="Authorization: Bearer $token" + +# fetch source manifest +manifest=$(curl -s --fail-with-body -H "$authHeader" -H "Accept: $MANIFEST_TYPE" "$MANIFEST_SOURCE") + +echo "manifest:" +echo "$manifest" + +# PUT to new tag +curl -s --fail-with-body -X PUT -H "$authHeader" -H "Content-Type: $MANIFEST_TYPE" --data-binary "$manifest" "$MANIFEST_TARGET" + +echo "done" + -- GitLab