Cloner tous les dépôts Gitlab d'un groupe

Depuis la séparation des la configuration des services en différents dépôts, il est difficile d’effectuer des modifications qui impactent tous les services (exemple : changement du format de fichier Compose). On voudrait bien, par exemple, récupérer tous les dépôts des services d’un coup.

Lien:

Pour rappel, le groupe Gitlab avec les services est ici : https://gitlab.utc.fr/picasoft/projets/services

Git ne permet pas de faire ce genre d’opérations, puisque les groupes sont un concept de Gitlab.

On va utiliser un outil très sympa : gitlabber. gitlabber permet aussi de tirer toutes les modifications des dépôts d’un groupe d’un seul coup.

Note:

Il existe aussi ghorg, orienté GitHub et Gitlab, mais qui effectue des opérations dangereuses au pull, comme git clean, qui efface tous les fichiers non-tracké. Ce n’est pas le bon cas d’usage pour nous.

Installation gitlabber :

snippet.shell
pip install gitlabber

Créer un jeton d'accès Gitlab en lecture seule.

Lien:

Le plus rapide est de passer par ce lien : https://gitlab.utc.fr/-/profile/personal_access_tokens. Les permissions à accorder sont read_api et read_repository. Tu peux donner un nom parlant, comme gitlabber, pour te souvenir.

Une fois le jeton créé, ajouter le dans tes mots de passe: il ne sera plus jamais affiché. :-p

Exemple pour cloner tout l’arbre des services :

snippet.sh
gitlabber -t 'ton jeton' -i '/Picasoft/Technique/Services**' -u https://gitlab.utc.fr/ .

Un nouvel appel de la commande du même endroit fera un git pull.

Attention:

Le chemin utilisé pour indiquer le groupe à cloner utilise le nom du groupe, pas son URL. L’option -p, utilisée sans le -i, permet d’afficher un arbre de l’ensemble des groupes auxquels tu appartiens.

  • technique/tips/clone_group.txt
  • de qduchemi