Migration de l’ancien au nouveau Gitlab Dernière mise à jour : 3 septembre 2024
Pourquoi cette migration ?
Cela fait désormais 10 ans que nous avons mis en place notre serveur Gitlab, au fil du temps, les projets, les utilisateurs et les versions se sont accumulées jusqu’à ce que nous ne puissions plus le mettre à jour convenablement tout en étant bloqué sur une version qui présentait des failles critiques de sécurité.
Nous avons donc fait le choix de déployer un nouveau serveur « from scratch », sans migration complète, pour repartir « au propre » et ne pas transférer ce qui ne le nécessitait pas. Nous sommes conscients que cela nécessite individuellement des manipulations dont on se serait bien passé mais de cette façon nous repartirons pour 10 nouvelles années ou plus de forge !
Les procédures de migration
- Migration complète d’un projet par URL
- Migration complète d’un projet par export/import
- Migration des sources via git
- Migration de groupe par « Direct Transfert » (Beta)
- Vous avez un doute ou un problème avec la méthode par URL -> migrez le projet complet par export/import
Les éléments suivants ne peuvent être migrés, vous devez donc les recréer :
- Token et clés chiffrés
- Webhooks
- Variables, artefacts et logs des jobs du CI
- Triggers de vos pipelines
- Images du registry
Migration complète d'un projet par URL
- Etape 1 : importez votre projet
- Depuis https://git.unilim.fr
- Depuis l’accueil de votre espace « Your Work »
- Cliquez sur « Create a project » -> « Import Project » -> « Repository by URL »
- Vous devriez retrouver l’ensemble des éléments après l’importation (sauf ce qui n’est pas migrable, voir ci-dessus)
- Etape 2 : Modifiez l’URL du dépôt si votre chemin n’est pas exactement le même qu’avant (changement de groupe par exemple)
- Depuis votre projet git
- git remote set-url origin (https|ssh)://git.unilim.fr/mon-groupe/mon-projet.git
- git fetch origin (pour vérifier)
-
git pull
-
Si vous avez un avertissement consernant le rebase : « git config pull.rebase false » ou renseignez-vous pour faire un choix éclairé
Migration complète d'un projet par export/import
- Etape 1 : exportez votre projet
- Depuis https://git-old.unilim.fr
- Depuis le projet que vous souhaitez exporter
- Dans le menu : Settings -> General -> Advanced
- Cliquez sur « Export Project »
- Une fois celà fait, vous allez recevoir par mail un lien pour télécharger une archive « tar.gz » de votre projet
- Etape 2 : importez votre projet
- Depuis https://git.unilim.fr
- Depuis l’accueil de votre espace « Your Work »
- Cliquez sur « Create a project » -> « Import Project » -> « Gitlab Export »
- Nommez votre projet (possiblement à l’identique) et sélectionnez l’archive « tar.gz »
- Vous devriez retrouver l’ensemble des éléments après l’importation (sauf ce qui n’est pas migrable, voir ci-dessus)
- Etape 3 : Modifiez l’URL du dépôt si votre chemin n’est pas exactement le même qu’avant (changement de groupe par exemple)
- Depuis votre projet git
- git remote set-url origin (https|ssh)://git.unilim.fr/mon-groupe/mon-projet.git
- git fetch origin (pour vérifier)
-
git pull
-
Si vous avez un avertissement consernant le rebase : « git config pull.rebase false » ou renseignez-vous pour faire un choix éclairé
Migration des sources via git
- Etape 1 : créez un projet vide
- Depuis https://git.unilim.fr
- Créez un nouveau projet vide (ne l’initialisez pas)
- Etape 2 :
- Depuis votre projet git
- Si besoin : récupérez votre code depuis git-old et faites vos commit (cf ci-dessous)
- Modifez l’URL du serveur :
- git remote set-url origin (https|ssh)://git.unilim.fr/mon-groupe/mon-projet.git
- git push –set-upstream origin –all
- git push –set-upstream origin –tags
- Si vous avez un avertissement consernant le rebase : « git config pull.rebase false » ou renseignez-vous pour faire un choix éclairé
Récupérer du code depuis git-old avant migration
Pour récupérer vos sources depuis git-old avant de migrer.
- Depuis votre dépot git sur votre serveur ou ordinateur
- Modifiez l’url du serveur de git à git-old :
- git remote set-url origin (https|ssh)://git-old.unilim.fr/mon-groupe/mon-projet.git
- git fetch origin
- git pull
- Si vous avez un avertissement consernant le rebase : « git config pull.rebase false » ou renseignez-vous pour faire un choix éclairé
Migration de groupe par Direct transfert (Beta)
Attention cette méthode est en Beta dans Gitlab, nous ne pouvons pas la garantir.
Utilisez cette méthode pour les groupes de projets de plusieurs Go ou contenant de nombreux projets, sinon la migration par export/import ou par URL sont à privilégier.
Les utilisateurs et leurs droits seront probablement a repositionner.
- Etape 1 :
- Depuis votre compte sur Git-old
- Créez un « Access token » a durée de vie courte avec tous les droits
- Etape 2 :
- Depuis git
- Importez un groupe
- URL de base : https://git-old.unilim.fr
- Personal Access Token : celui que vous venez de créer
- Etape 3 : pour chaque projet –> identique à l’étape 2 de la migration complète d’un projet par URL