Spaces:
Build error
Build error
| # Script will delete all repositories and tags in your Docker Hub account | |
| set -e | |
| # Set username and password from command-line arguments | |
| UNAME=$1 | |
| UPASS=$2 | |
| # Get token to interact with Docker Hub | |
| TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${UNAME}'", "password": "'${UPASS}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token) | |
| # Ensure token retrieval was successful | |
| if [[ -z "$TOKEN" ]]; then | |
| echo "Failed to obtain authentication token. Please check your credentials." | |
| exit 1 | |
| fi | |
| # Get list of repositories for that user account | |
| echo "Listing repositories in Docker Hub account '${UNAME}':" | |
| REPO_LIST=$(curl -s -H "Authorization: JWT ${TOKEN}" "https://hub.docker.com/v2/repositories/${UNAME}/?page_size=10000" | jq -r '.results|.[]|.name') | |
| if [[ -z "$REPO_LIST" ]]; then | |
| echo "No repositories found for user '${UNAME}' or failed to fetch repositories." | |
| exit 1 | |
| fi | |
| # Loop through each repository and delete its tags and the repository itself | |
| for rep in ${REPO_LIST}; do | |
| echo "Processing repository: ${UNAME}/${rep}" | |
| # Get all tags for the repository | |
| IMAGES=$(curl -s -H "Authorization: JWT ${TOKEN}" "https://hub.docker.com/v2/repositories/${UNAME}/${rep}/tags/?page_size=100") | |
| IMAGE_TAGS=$(echo $IMAGES | jq -r '.results|.[]|.name') | |
| # Delete each tag | |
| for tag in ${IMAGE_TAGS}; do | |
| echo "Deleting tag: ${UNAME}/${rep}:${tag}" | |
| curl -s -X DELETE -H "Authorization: JWT ${TOKEN}" "https://hub.docker.com/v2/repositories/${UNAME}/${rep}/tags/${tag}/" | |
| done | |
| # Delete the repository itself | |
| echo "Deleting repository: ${UNAME}/${rep}" | |
| curl -s -X DELETE -H "Authorization: JWT ${TOKEN}" "https://hub.docker.com/v2/repositories/${UNAME}/${rep}/" || { | |
| echo "Failed to delete repository '${UNAME}/${rep}'. Please check permissions or API limits." | |
| } | |
| sleep 1 | |
| done | |
| echo "Script execution completed." | |