Git : Supprimer les tags datant de plus de N jours¶
Ce morceau de code supprimera tous les tags datant de plus de 21 jours.
À adapter selon les besoins :
Ligne 13 : la limite du nombre de jours ;
Ligne 18 : le filtrage (optionnel) sur le nom des tags (seuls ceux commençant par alpha- sont pris en compte, dans cet exemple).
1# Today's timestamp
2current_date=$(date -d "00:00" +%s)
3
4# For each tag …
5while IFS= read -r tag; do
6 # ${tag} syntax is "name date"
7 release_version="$(echo "${tag}" | cut -d' ' -f1)"
8 release_date=$(date -d "$(echo "${tag}" | cut -d' ' -f2)" +%s)
9
10 # The number of days between today and when the tag was created
11 days=$(( (current_date - release_date) / (24 * 3600) ))
12
13 if [ ${days} -gt 21 ]; then
14 git tag --delete "${release_version}"
15 git push --delete origin "${release_version}"
16 fi
17done < <(git for-each-ref --sort=-taggerdate --format '%(refname:short) %(taggerdate:short)' refs/tags \
18 | grep -E "(^alpha*)")
🎣 Sources¶
📜 Historique¶
- 2024-01-31
Déplacement de l’article depuis le blog.
- 2020-08-08
Premier jet.