From 33c30e47d7754c208de766dfa63670a768822f87 Mon Sep 17 00:00:00 2001 From: vista Date: Thu, 23 Mar 2023 19:36:35 +0100 Subject: [PATCH] Update 'check.sh' --- check.sh | 55 ++++++++++++++++++++++++------------------------------- 1 file changed, 24 insertions(+), 31 deletions(-) diff --git a/check.sh b/check.sh index 2b76121..14b0941 100644 --- a/check.sh +++ b/check.sh @@ -88,45 +88,38 @@ TARGET_REPO_USER="${parts[0]}" TARGET_REPO_NAME="${parts[1]}" TARGET_REPO_TAG="${parts[2]}" -if [ -n "${BASE_REGISTRY_USERNAME}" && -n "${BASE_REGISTRY_PASSWORD}" \ ] -# make a shared login header if REGISTRY_API REGISTRY_USERNAME and REGISTRY_PASSWORD are the same for BASE and TARGET -if [ "${BASE_REGISTRY_API}" == "${TARGET_REGISTRY_API}" \ - && "${BASE_REGISTRY_USERNAME}" == "${TARGET_REGISTRY_USERNAME}" \ - && "${BASE_REGISTRY_PASSWORD}" == "${TARGET_REGISTRY_PASSWORD}" \ - && "${BASE_REGISTRY_URL}" == "${TARGET_REGISTRY_URL}" \ - && -n "${BASE_REGISTRY_USERNAME}" \ - && -n "${BASE_REGISTRY_PASSWORD}" \ - ]; then - if [ "${BASE_REGISTRY_API}" == "docker" ]; then +BASE_HEADER="" +if [ "${BASE_REGISTRY_API}" == 'docker' ];then + if [ -n "${BASE_REGISTRY_USERNAME}" && -n "${BASE_REGISTRY_PASSWORD}" ]; then TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d "{\"username\": \"${BASE_REGISTRY_USERNAME}\", \"password\": \"${BASE_REGISTRY_PASSWORD}\"}" ${BASE_REGISTRY_URL}/users/login/ | jq -r .token) BASE_HEADER="Authorization: JWT ${TOKEN}" - TARGET_HEADER="Authorization: JWT ${TOKEN}" - elif [ "${BASE_REGISTRY_API}" == "gitea" ]; then + fi + BASE_URL="${BASE_REPO_URL}/${BASE_REPO_USER}/${BASE_REPO_NAME}/tags/${BASE_REPO_TAG}" + +elif [ "${BASE_REGISTRY_API}" == 'gitea' ];then + if [ -n "${BASE_REGISTRY_PASSWORD}" ]; then BASE_HEADER="Authorization: token ${BASE_REGISTRY_PASSWORD}" + fi + BASE_URL="${BASE_REPO_URL}/api/v1/packages/${BASE_REPO_USER}/container/${BASE_REPO_NAME}/${BASE_REPO_TAG}" +fi + + +TARGET_HEADER="" +if [ "${TARGET_REGISTRY_API}" == 'docker' ];then + if [ -n "${TARGET_REGISTRY_USERNAME}" && -n "${TARGET_REGISTRY_PASSWORD}" ]; then + TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d "{\"username\": \"${TARGET_REGISTRY_USERNAME}\", \"password\": \"${TARGET_REGISTRY_PASSWORD}\"}" ${TARGET_REGISTRY_URL}/users/login/ | jq -r .token) + TARGET_HEADER="Authorization: JWT ${TOKEN}" + fi + TARGET_URL="${TARGET_REPO_URL}/${TARGET_REPO_USER}/${TARGET_REPO_NAME}/tags/${TARGET_REPO_TAG}" + +elif [ "${TARGET_REGISTRY_API}" == 'gitea' ];then + if [ -n "${TARGET_REGISTRY_PASSWORD}" ]; then TARGET_HEADER="Authorization: token ${TARGET_REGISTRY_PASSWORD}" fi + TARGET_URL="${TARGET_REPO_URL}/api/v1/packages/${TARGET_REPO_USER}/container/${TARGET_REPO_NAME}/${TARGET_REPO_TAG}" fi -if [ "${BASE_REGISTRY_API}" == "docker" ]; then - BASE_URL="${BASE_REPO_URL}/${BASE_REPO_USER}/${BASE_REPO_NAME}/tags/${BASE_REPO_TAG}" -elif [ "${BASE_REGISTRY_API}" == "gitea" ]; then - -fi - -# build the url to the repo -BASE_URL="${BASE_REPO_URL}/${BASE_REPO}/tags/${BASE_TAG}" -TARGET_URL="${TARGET_REPO_URL}/${TARGET_REPO}/tags/${TARGET_TAG}" - -# login if credentias are passed -HEADER="" -if [ -n "${DOCKER_USERNAME}" ] && [ -n "${DOCKER_PASSWORD}" ]; then - TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'"${DOCKER_USERNAME}"'", "password": "'"${DOCKER_PASSWORD}"'"}' https://hub.docker.com/v2/users/login/ | jq -r .token) - HEADER="Authorization: JWT ${TOKEN}" -fi - -# curl -X 'GET' -H 'accept: application/json' 'https://git.narvas.tech/api/v1/packages/[USER]/container/[REPO]/dev?access_token=[TOKEN]' - # compare the update time of the BASE and TARGET images BASE_DATE=$(curl -s -H "${HEADER}" "${BASE_URL}" | jq -r .last_updated | sed 's/T/ /' | sed 's/\..*//' ) TARGET_DATE=$(curl -s -H "${HEADER}" "${TARGET_URL}" | jq -r .last_updated | sed 's/T/ /' | sed 's/\..*//' )