3 points par GN⁺ 2025-12-02 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Détaille en détail le processus et les résultats de la migration de mes projets personnels et de mon site web de GitHub vers Codeberg
  • Migration complète des dépôts, issues, PR, wiki et releases grâce à la fonction « migrate from GitHub » de Forgejo
  • Le réétiquetage des liens et le traitement des stubs de dépôts GitHub sont effectués par des scripts automatisés pour signaler clairement la migration
  • Pour la migration CI/CD, utilisation de Forgejo Actions sur Codeberg et création de workflows allégés adaptés aux contraintes d’environnement
  • Migration sans interruption du site web via git-pages et Grebedoc, avec achèvement de l’ensemble de la migration durant le week-end

Aperçu de la migration

  • Migration vers Codeberg du site hébergé sur GitHub Pages et de 45 dépôts
    • Ce n'était pas une simple opération en un clic : plusieurs étapes manuelles ont été nécessaires
    • Le processus complet a été réalisé sur un week-end, sans gêne
  • Objectif : montrer qu'il est possible pour d'autres développeurs de migrer facilement

Étape 1 : Migration des dépôts

  • Codeberg, basé sur Forgejo, propose la fonction "migrate from GitHub"
    • En créant un Personal Access Token (PAT) sur GitHub, il est possible d'importer également les métadonnées comme les issues
    • À cause du rate limit de l'API GitHub, il pouvait y avoir des échecs si plusieurs dépôts étaient importés simultanément
  • Issues, PR, wiki et releases ont été migrés sans perte, sans nécessiter de références GitHub

Étape 2 : Réaffectation des liens

  • Conversion massive des liens GitHub dans les dépôts locaux vers des adresses Codeberg
    • Remplacement en masse basé sur le texte via les commandes sed et find
  • Modification de l'URL git remote de chaque dépôt vers Codeberg, puis push sur tous les dépôts

Étape 3 : Traitement des stubs de dépôts GitHub

  • Ajout d'un README d'annonce de migration dans les dépôts GitHub, puis mise à jour des descriptions et des liens de page d'accueil vers Codeberg
    • Un script d'automatisation a été écrit pour l'appliquer à plusieurs dépôts en lot
    • Archivage des dépôts via la commande gh repo archive

Étape 4 : Migration CI/CD

  • La documentation CI de Codeberg insiste sur le principe de réduire au minimum la consommation d'énergie
    • Selon ce principe, seuls les projets nécessitant réellement de la CI (site web, génération de documentation, etc.) ont été conservés
  • Codeberg propose Woodpecker et Forgejo Actions comme options CI
    • Forgejo Actions a été choisi, car il est proche de GitHub Actions
  • Principales différences
    • La plupart des Actions fonctionnent telles quelles
    • Seuls des runners Linux sont proposés, macOS et Windows ne le sont pas
    • Les logiciels préinstallés sont peu nombreux et les ressources limitées
    • L'utilisation de lazy runners permet la répartition de charge et une exécution plus écologique
  • Pour améliorer les performances CI, une image Docker avec LaTeX préinstallé a été utilisée, puis un retour à l'image Ubuntu par défaut a eu lieu à cause d'un problème de version

Étape 5 : Réhébergement du site web

  • Le site opéré via GitHub Pages devait être déplacé vers Codeberg Pages, mais cette fonction est en mode maintenance
    • Les mises à jour sont retardées à cause de la complexité et de problèmes de performance
  • En alternative, git-pages et Grebedoc ont été découverts puis utilisés
    • Prise en charge du chargement avant changement DNS, ce qui permet une migration sans interruption
    • Prise en charge des redirections côté serveur et des en-têtes personnalisés
    • Migration achevée en conservant le lien existant (eldred.fr/fortISSimO)
  • Codeberg prévoit une migration progressive vers git-pages à l'avenir
  • La satisfaction dépasse celle de GitHub Pages, avec participation au support Patreon du développeur de git-pages

Temps de travail

  • Migration des dépôts (étapes 1 à 3) : une demi-journée
  • Migration CI (étape 4) : une demi-journée
  • Migration du site web (étape 5) : quelques jours avec nettoyage de dette technique
  • Globalement, terminé dans le week-end, une tâche plus simple que prévu

Après la migration

  • Le site web fonctionne correctement, seule la branche master GitHub est réduite
    • Les permaliens restent opérationnels
  • La suppression des dépôts GitHub est en attente en raison de l'absence de redirection
  • Le compte GitHub est conservé pour contribuer à d'autres projets
  • La migration vers Codeberg pourrait réduire le nombre de contributeurs, mais certains utilisateurs ont déjà créé un compte Codeberg et continuent à contribuer

Remerciements

  • Catherine ‘whitequark’ : exploitation de git-pages et de Grebedoc
  • SERVFAIL network team : fourniture du DNS
  • Contributeurs de Codeberg et de Forgejo : fourniture des bases de migration

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.