Migrez vos repos codefirst vers Gitlab ou GitHub facilement !
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Hugo ODY 008cbfd586
Working V1
3 days ago
.gitignore Working V1 3 days ago
README.md Working V1 3 days ago
config.py Working V1 3 days ago
gitea_client.py Working V1 3 days ago
github_client.py Working V1 3 days ago
migrate.py Working V1 3 days ago
migration_tool.py Working V1 3 days ago
requirements.txt Working V1 3 days ago
run.sh Working V1 3 days ago

README.md

🚀 Gitea to GitHub Migration Tool

Ce projet fournit un outil pratique et modulable pour migrer vos repositories de Gitea vers GitHub automatiquement.

Fonctionnalités

  • Migration automatique : Migre tous vos repositories Gitea vers GitHub en une seule commande
  • Migration sélective : Choisissez spécifiquement quels repositories migrer
  • Support multi-propriétaire : Migrez des repositories d'autres utilisateurs/organisations auxquels vous avez accès
  • Interface en ligne de commande : Interface colorée et intuitive
  • Logging complet : Suivi détaillé des opérations avec fichier de log
  • Gestion des erreurs : Robuste avec gestion gracieuse des erreurs

🛠 Installation

  1. Clonez le repository :
git clone https://github.com/votre-username/GiteaToGithubMigrator.git
cd GiteaToGithubMigrator
  1. Configuration automatique :
./run.sh --setup

Le script va automatiquement :

  • Créer un environnement virtuel Python
  • Installer toutes les dépendances
  • Créer le fichier de configuration .env

Cela créera un fichier .env que vous devrez remplir avec vos informations :

# Gitea Configuration
GITEA_URL=https://votre-instance-gitea.com
GITEA_TOKEN=votre_token_gitea
GITEA_USERNAME=votre_nom_utilisateur_gitea

# GitHub Configuration
GITHUB_TOKEN=votre_token_github
GITHUB_USERNAME=votre_nom_utilisateur_github

🔑 Configuration des tokens

Token Gitea

  1. Allez dans SettingsApplicationsGenerate New Token
  2. Donnez un nom au token et sélectionnez les permissions :
    • repo (accès complet aux repositories)
    • user (accès aux informations utilisateur)

Token GitHub

  1. Allez dans SettingsDeveloper settingsPersonal access tokensTokens (classic)
  2. Cliquez sur Generate new token (classic)
  3. Sélectionnez les permissions :
    • repo (accès complet aux repositories privés)
    • public_repo (accès aux repositories publics)

🚀 Utilisation

Après avoir configuré vos tokens dans le fichier .env, utilisez le script de lancement :

Migration de tous vos repositories

./run.sh

Migration de repositories spécifiques

./run.sh --repos mon-repo autre-repo

Migration de repositories d'autres propriétaires

./run.sh --repos proprietaire/repo-name

Lister les repositories disponibles

./run.sh --list

Mode verbose (plus de détails)

./run.sh --verbose

💡 Alternative : Vous pouvez aussi utiliser directement python migrate.py si vous avez activé l'environnement virtuel (source venv/bin/activate)

📋 Exemples d'utilisation

Exemple 1 : Migration complète

# Migre tous vos repositories
./run.sh

Exemple 2 : Migration sélective

# Migre seulement les repositories spécifiés
./run.sh --repos projet-web api-backend

Exemple 3 : Migration depuis une organisation

# Migre un repository d'une organisation
./run.sh --repos mon-org/projet-important

Exemple 4 : Premier lancement (configuration)

# 1. Setup initial
./run.sh --setup

# 2. Éditez le fichier .env avec vos credentials
nano .env

# 3. Listez vos repositories disponibles
./run.sh --list

# 4. Lancez la migration
./run.sh

📊 Résultats

L'outil affiche un résumé détaillé à la fin :

  • Nombre de migrations réussies
  • Nombre de migrations échouées
  • 📝 Détail par repository

Tous les logs sont également sauvegardés dans migration.log.

🔧 Structure du projet

GiteaToGithubMigrator/
├── migrate.py          # Script principal
├── config.py           # Gestion de la configuration
├── gitea_client.py     # Client API Gitea
├── github_client.py    # Client API GitHub
├── migration_tool.py   # Logique de migration
├── requirements.txt    # Dépendances Python
├── .env               # Configuration (à créer)
└── README.md          # Documentation

⚠️ Prérequis

  • Python 3.7+
  • Git installé sur votre système
  • Accès aux APIs Gitea et GitHub
  • Tokens d'authentification valides

🛡 Sécurité

  • Les tokens sont stockés dans un fichier .env (ajoutez-le à .gitignore)
  • Les URLs d'authentification ne sont jamais loggées
  • Nettoyage automatique des repositories temporaires

🐛 Résolution de problèmes

Erreur d'authentification

  • Vérifiez que vos tokens sont valides et ont les bonnes permissions
  • Assurez-vous que les noms d'utilisateur correspondent

Erreur de clonage

  • Vérifiez votre connexion internet
  • Assurez-vous que Git est installé et accessible

Repository déjà existant

  • L'outil vérifie automatiquement l'existence sur GitHub
  • Les repositories existants sont ignorés avec un avertissement

📝 Logs

Tous les détails d'exécution sont sauvegardés dans migration.log :

  • Timestamps des opérations
  • Détails des erreurs
  • Statistiques de migration

🤝 Contribution

Les contributions sont les bienvenues ! N'hésitez pas à :

  • Signaler des bugs
  • Proposer des améliorations
  • Soumettre des pull requests

📄 Licence

Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.