# 🚀 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** : ```bash git clone https://github.com/votre-username/GiteaToGithubMigrator.git cd GiteaToGithubMigrator ``` 2. **Configuration automatique** : ```bash ./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 : ```env # 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 **Settings** → **Applications** → **Generate 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 **Settings** → **Developer settings** → **Personal access tokens** → **Tokens (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 ```bash ./run.sh ``` ### Migration de repositories spĂ©cifiques ```bash ./run.sh --repos mon-repo autre-repo ``` ### Migration de repositories d'autres propriĂ©taires ```bash ./run.sh --repos proprietaire/repo-name ``` ### Lister les repositories disponibles ```bash ./run.sh --list ``` ### Mode verbose (plus de dĂ©tails) ```bash ./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 ```bash # Migre tous vos repositories ./run.sh ``` ### Exemple 2 : Migration sĂ©lective ```bash # Migre seulement les repositories spĂ©cifiĂ©s ./run.sh --repos projet-web api-backend ``` ### Exemple 3 : Migration depuis une organisation ```bash # Migre un repository d'une organisation ./run.sh --repos mon-org/projet-important ``` ### Exemple 4 : Premier lancement (configuration) ```bash # 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.