Archiver en local tous ses projets github

Visiblement github devient de plus en plus aléatoire dans sa gestion des projets qu’on lui confie. Pour être sur de ne pas perdre ses projets et pour éviter d’avoir à passer des heures à faire le tri entre les projets qui comptent ou pas on peut simplement faire un script pour tous les archiver en local.

Pour se logger en console sur github et lister les dépots de son compte on utilisera gh :

sudo apt install gh
# S'authentifier sur github
gh auth login
# Lister ses dépots
gh repo list --limit 1000Langage du code : PHP (php)

On peut ensuite faire un git clone --mirror dans une boucle sur tous les projets.

gh repo list --limit 1000 --json nameWithOwner --jq '.[].nameWithOwner' |
while read repo; do
    name="${repo#*/}"
    echo "=== $repo ==="

    tmp=$(mktemp -d)

    git clone --mirror "https://github.com/$repo.git" "$tmp/$name.git" &&
    tar -cjf "$name.tar.bz2" -C "$tmp" "$name.git"

    rm -rf "$tmp"
doneLangage du code : PHP (php)

Merci à Chatgpt … 😉

Ce contenu a été publié dans Non classé, avec comme mot(s)-clé(s) , , , . Vous pouvez le mettre en favoris avec ce permalien.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *