This commit is contained in:
55
check.sh
55
check.sh
@@ -88,45 +88,38 @@ TARGET_REPO_USER="${parts[0]}"
|
|||||||
TARGET_REPO_NAME="${parts[1]}"
|
TARGET_REPO_NAME="${parts[1]}"
|
||||||
TARGET_REPO_TAG="${parts[2]}"
|
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
|
BASE_HEADER=""
|
||||||
if [ "${BASE_REGISTRY_API}" == "${TARGET_REGISTRY_API}" \
|
if [ "${BASE_REGISTRY_API}" == 'docker' ];then
|
||||||
&& "${BASE_REGISTRY_USERNAME}" == "${TARGET_REGISTRY_USERNAME}" \
|
if [ -n "${BASE_REGISTRY_USERNAME}" && -n "${BASE_REGISTRY_PASSWORD}" ]; then
|
||||||
&& "${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
|
|
||||||
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)
|
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}"
|
BASE_HEADER="Authorization: JWT ${TOKEN}"
|
||||||
TARGET_HEADER="Authorization: JWT ${TOKEN}"
|
fi
|
||||||
elif [ "${BASE_REGISTRY_API}" == "gitea" ]; then
|
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}"
|
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}"
|
TARGET_HEADER="Authorization: token ${TARGET_REGISTRY_PASSWORD}"
|
||||||
fi
|
fi
|
||||||
|
TARGET_URL="${TARGET_REPO_URL}/api/v1/packages/${TARGET_REPO_USER}/container/${TARGET_REPO_NAME}/${TARGET_REPO_TAG}"
|
||||||
fi
|
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
|
# 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/\..*//' )
|
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/\..*//' )
|
TARGET_DATE=$(curl -s -H "${HEADER}" "${TARGET_URL}" | jq -r .last_updated | sed 's/T/ /' | sed 's/\..*//' )
|
||||||
|
|||||||
Reference in New Issue
Block a user