#!/usr/bin/env bash # Uso: .gitea/scripts/digest-latest.sh # Imprime o digest do manifesto de :latest, ou nada se a tag ainda # não existe. Fica em .gitea/ para não entrar no hash da imagem (plano-imagem.sh). # O release.yml compara o valor antes e depois de publicar para # decidir se há o que implantar. Com o pacote privado, passe REGISTRY_USER e # REGISTRY_PASSWORD (token com read:package). set -euo pipefail registry=$1; ns=${2,,} auth=(); [ -n "${REGISTRY_PASSWORD:-}" ] && auth=(-u "${REGISTRY_USER:?}:$REGISTRY_PASSWORD") token=$(curl -fsS "${auth[@]}" "https://$registry/v2/token?service=container_registry&scope=repository:$ns:pull" | jq -r .token) curl -sSI \ -H "Authorization: Bearer $token" \ -H 'Accept: application/vnd.oci.image.index.v1+json,application/vnd.docker.distribution.manifest.list.v2+json,application/vnd.oci.image.manifest.v1+json,application/vnd.docker.distribution.manifest.v2+json' \ "https://$registry/v2/$ns/manifests/latest" \ | tr -d '\r' | awk -F': ' 'tolower($1) == "docker-content-digest" { print $2 }'