L'idée, c'est de supprimer tous les tags datant de plus de 21 jours (21 ou autre, c'est pour l'exemple).

# Today's timestamp
current_date=$(date -d "00:00" +%s)

# For each tag ...
while IFS= read -r tag; do
    # ${tag} syntax is "name date"
    release_version="$(echo "${tag}" | cut -d' ' -f1)"
    release_date=$(date -d $(echo "${tag}" | cut -d' ' -f2)  +%s)

    # The number of days between today and when the tag was created
    days=$(( (current_date - release_date) / (24 * 3600) ))

    if [ ${days} -gt 21 ]; then
        git tag --delete "${release_version}"
        git push --delete origin "${release_version}" 
    fi
done < <(git for-each-ref --sort=-taggerdate --format '%(refname:short) %(taggerdate:short)' refs/tags | grep -E "(^alpha*)")

La dernière ligne est la commande permettant de lister les tags de façon antichronologique.
Pour mes besoins, je filtre sur les tags commençant par "alpha-" seulement, à adapter selon les besoins.


Sources :