Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Azure DevOps Services
Important
Les projets publics dans Azure DevOps sont mis hors service. À compter de 2027, les projets publics existants sont convertis en projets privés. Pour plus d’informations, consultez Public projects retirement et Migrate d’un projet public à GitHub.
Cet article explique comment migrer chaque zone de service d’un projet public Azure DevOps vers son équivalent GitHub. Il couvre les dépôts, les pipelines, les wikis, les artefacts et les éléments de travail.
Prerequisites
| Condition requise | Détails |
|---|---|
| accès Azure DevOps | Membre du projet avec au moins un accès de base |
| compte GitHub | Un compte GitHub avec l’autorisation de créer des référentiels |
| Git | Git installé localement |
| GitHub CLI (facultatif) | GitHub CLI pour les opérations simplifiées |
Migrer des dépôts
Les référentiels GitHub prennent en charge la collaboration ouverte avec les pull requests, les forks et les étoiles.
Utiliser GitHub Enterprise Importer
GitHub Enterprise Importer est l’outil recommandé pour migrer des dépôts de Azure DevOps Cloud vers GitHub Enterprise Cloud. Il migre la source Git (y compris l’historique des validations), les demandes d’extraction, l’historique utilisateur, les liens d’élément de travail sur les demandes d’extraction, les pièces jointes et les stratégies de branche.
Installez l’extension de migration GitHub CLI :
gh extension install github/gh-geiAuthentifiez-vous avec Azure DevOps et GitHub :
# Sign in to Azure DevOps with Microsoft Entra ID and set the token az login export ADO_PAT=$(az account get-access-token --resource 499b84ac-1321-427f-aa17-267ca6975798 --query accessToken -o tsv) # Authenticate with GitHub gh auth loginGénérez un script de migration pour une organisation Azure DevOps :
gh gei generate-script --ado-org {organization} --github-org {github-org} --output migrate.shVous pouvez également migrer un dépôt unique :
gh gei migrate-repo --ado-org {organization} --ado-team-project {project} \ --ado-repo {repo} --github-org {github-org} --github-repo {new-repo}
Pour plus d’informations, consultez Migrations de Azure DevOps vers GitHub.
Utiliser GitHub Importer
Pour une option plus simple basée sur un navigateur, utilisez l’importateur intégré GitHub :
- Connectez-vous à GitHub et sélectionnez New repository.
- Entrez un nom de référentiel et définissez la visibilité sur Public.
- Sélectionnez Importer un référentiel en haut de la page.
- Entrez votre URL de clone Azure DevOps :
https://dev.azure.com/{organization}/{project}/_git/{repo}. - Si vous y êtes invité, entrez vos informations d’identification Azure DevOps. Connectez-vous à l’aide de Microsoft Entra ID. Si vous devez utiliser un jeton d’accès personnel, créez-en un avec l’étendue Lecture du code>. Pour plus d’informations, consultez Utiliser les jetons d’accès personnels.
- Sélectionnez Commencer l’importation.
GitHub Importer migre les sources et l'historique des commits Git, mais ne migre pas les pull requests, les liens d'élément de travail ou les règles de branche. Pour plus d’informations, consultez Importing a repository with GitHub Importer.
Importer à partir de la ligne de commande
Si GitHub Enterprise Importer ne répond pas à vos besoins, envoyez (push) directement à partir d'un clone local :
# Clone the Azure DevOps repository with full history
git clone --bare https://dev.azure.com/{organization}/{project}/_git/{repo}
cd {repo}.git
# Push to the new GitHub repository
git push --mirror https://github.com/{owner}/{new-repo}.git
Important
Passez en revue votre historique Git pour connaître les informations d’identification, les clés API ou les données sensibles avant d’envoyer (push) vers un référentiel de GitHub public. Utilisez des outils comme git filter-repo pour supprimer le contenu sensible de l’historique.
Migrer des pipelines
GitHub Actions offre des flux de travail flexibles et des minutes d’exécution gratuites pour les dépôts publics.
Utiliser GitHub Actions Importer
GitHub Actions Importer automatise la conversion de pipelines Azure DevOps en flux de travail GitHub Actions.
Installez l’extension CLI GitHub Actions Importer :
gh extension install github/gh-actions-importerExécutez un audit pour identifier les pipelines à migrer :
gh actions-importer audit azure-devops \ --output-dir audit-resultsConvertir un pipeline spécifique :
gh actions-importer migrate azure-devops pipeline \ --target-url https://github.com/{owner}/{repo} \ --pipeline-id {pipeline-id} \ --output-dir migration-results
Pour plus d’informations, consultez Migrate de Azure DevOps à GitHub Actions avec GitHub Actions Importer.
Principales différences entre Azure Pipelines et GitHub Actions
| Azure Pipelines | GitHub Actions |
|---|---|
azure-pipelines.yml |
.github/workflows/*.yml |
| Étapes, tâches, phases | Travaux, étapes (flux de travail réutilisables pour les phases) |
| Connexions de service | GitHub secrets et OIDC |
| Pools d’agents | Étiquettes de l'exécuteur (ubuntu-latest, windows-latest) |
Références de tâche (task@version) |
Références d’action (owner/action@version) |
Migrer du contenu wiki
Utilisez GitHub Wiki ou GitHub Pages pour publier des guides et des manuels.
Migrer vers GitHub Wiki
Azure DevOps wikis sont des référentiels Git. Clonez et envoyez-les directement :
# Clone the Azure DevOps wiki repository
git clone https://dev.azure.com/{organization}/{project}/_git/{project}.wiki
cd {project}.wiki
# Add the GitHub wiki as a remote
git remote add github https://github.com/{owner}/{repo}.wiki.git
# Push to GitHub wiki
git push github main
Note
Avant d’envoyer (push), créez au moins une page wiki dans votre dépôt GitHub pour initialiser le référentiel wiki. Sélectionnez l’onglet Wiki dans votre dépôt GitHub et créez une page.
Migrer vers des pages GitHub
Pour les projets volumineux de documentation, GitHub Pages fournit un site statique complet hébergé directement à partir de votre référentiel. Vous pouvez utiliser des générateurs de sites statiques comme Jekyll ou MkDocs pour convertir votre contenu wiki en un site publié.
Migrer des artéfacts
GitHub Packages prend en charge la publication et la consommation de packages NuGet, npm et Maven.
Déplacer des packages vers des packages GitHub
- Téléchargez des packages existants à partir de votre flux de Azure Artifacts.
- Reconfigurez votre source de package pour qu’elle pointe vers GitHub Packages.
- Publiez des packages dans le nouveau flux.
Par exemple, pour migrer un package npm :
# Set the GitHub Packages registry
npm config set @{owner}:registry https://npm.pkg.github.com
# Authenticate
npm login --registry=https://npm.pkg.github.com
# Publish
npm publish
Autres registres
Pour les packages qui ont besoin d’une grande visibilité publique, tenez compte des registres publics :
| Type de package | Registre public |
|---|---|
| NuGet | nuget.org |
| npm | npmjs.com |
| Maven | Maven Central |
| Python | PyPI |
| Cargo | crates.io |
Migrer des éléments de travail
GitHub Problèmes et projets fournissent des outils modernes pour gérer les bogues et les demandes de fonctionnalités.
Il n'existe aucun outil de migration intégré pour les éléments de travail d'Azure Boards vers GitHub Issues. Plusieurs options de communauté sont disponibles :
- Outil de migration Azure DevOps vers GitHub Issues : outils open source sur GitHub qui convertissent les éléments de travail en tickets, en préservant les titres, les descriptions et les étiquettes.
- CSV export/import : exportez des éléments de travail à partir de Azure Boards en tant que csv, puis utilisez l’interface CLI ou l’API GitHub pour créer des problèmes.
- REST API scripting — utilisez l'API REST pour les éléments de travail Azure DevOps et l'API REST pour les problèmes GitHub afin de créer un script de migration personnalisé.
Exporter des éléments de travail avec l’interface CLI Azure DevOps
# Export work items from a query
az boards query --wiql "SELECT [System.Id], [System.Title], [System.State] FROM workitems WHERE [System.TeamProject] = '{project}'" --organization https://dev.azure.com/{organization} --output table
Tip
Hiérarchiser la migration des éléments de travail actifs et récents. Les éléments fermés ou historiques n’ont peut-être pas besoin d’une migration. Vous pouvez les conserver accessibles dans le projet privé pour référence.
Remplacer les tableaux de bord
GitHub ne dispose pas d'une fonctionnalité de tableau de bord unique équivalente aux tableaux de bord d'Azure DevOps. Au lieu de cela, les fonctionnalités similaires sont réparties sur plusieurs fonctionnalités natives.
| utilisation du tableau de bord Azure DevOps | équivalent GitHub |
|---|---|
| Suivi du travail et graphique d’avancement | GitHub Projects avec des graphiques Insights intégrés |
| Activité du référentiel | Repository Insights (validations, demandes de tirage, trafic, contributeurs) |
| État de la construction et de l’intégration continue | GitHub Actions historique des exécutions de flux de travail et badges d’état |
| Transparence publique | Problèmes, requêtes de tirage, versions et badges README |
Pour les tableaux de bord au niveau de l’organisation qui agrègent des données entre plusieurs référentiels, explorez les intégrations sur la place de marché GitHub.
Liste de contrôle post-migration
Après avoir migré votre contenu, vérifiez les éléments suivants :
- [ ] Tous les référentiels Git sont disponibles sur GitHub avec l’historique complet.
- [ ] Les flux de travail CI/CD s’exécutent correctement dans GitHub Actions.
- [ ] Le contenu wiki s’affiche correctement dans GitHub Wiki ou GitHub Pages.
- [ ] Les paquets sont publiés et restaurés depuis le nouveau registre.
- [ ] Les éléments de travail actifs sont gérés par GitHub Issues.
- [ ] Liens externes et badges pointent vers les nouveaux emplacements GitHub.
- [ ] Les collaborateurs et les membres de la communauté sont informés du nouvel emplacement.
- [ ] README dans le projet Azure DevOps dirige les visiteurs vers le nouvel emplacement GitHub.