Afficher la pageAnciennes révisionsLiens de retourHaut de page Cette page est en lecture seule. Vous pouvez afficher le texte source, mais ne pourrez pas le modifier. Contactez votre administrateur si vous pensez qu’il s’agit d’une erreur. {{indexmenu_n>15}} # Cloner tous les dépôts Gitlab d'un groupe ## Contexte 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. <bootnote web>Pour rappel, le groupe Gitlab avec les services est ici : https://gitlab.utc.fr/picasoft/projets/services</bootnote> 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](https://github.com/ezbz/gitlabber). `gitlabber` permet aussi de tirer toutes les modifications des dépôts d'un groupe d'un seul coup. <bootnote>Il existe aussi [ghorg](https://github.com/gabrie30/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.</bootnote> ## Préparation Installation `gitlabber` : ```shell pip install gitlabber ``` Créer un [jeton d'accès Gitlab](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html#create-a-personal-access-token) **en lecture seule**. <bootnote web>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.</bootnote> Une fois le jeton créé, ajouter le dans tes mots de passe: il ne sera plus jamais affiché. :-p ## Utilisation Exemple pour cloner tout l'arbre des services : ```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`. <bootnote warning> 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. </bootnote> technique/tips/clone_group.txtde qduchemi