Migrieren von einem öffentlichen Projekt zu GitHub

Azure DevOps Services

Important

Öffentliche Projekte in Azure DevOps werden eingestellt. Ab 2027 werden bestehende öffentliche Projekte in private Projekte umgewandelt. Weitere Informationen siehe Öffentliche Projekte im Ruhestand und Migration von einem öffentlichen Projekt zu GitHub.

In diesem Artikel wird gezeigt, wie Sie jeden Dienstbereich von einem öffentlichen Azure DevOps Projekt zu seinem GitHub Äquivalent migrieren. Es umfasst Repositories, Pipelines, Wikis, Artefakte und Arbeitselemente.

Voraussetzungen

Anforderung Einzelheiten
Azure DevOps Access Mitglied des Projekts mit mindestens grundlegendem Zugriff
GitHub-Konto Ein GitHub-Konto mit der Berechtigung zum Erstellen von Repositorys
Git Git lokal installiert
GitHub CLI (optional) GitHub CLI für optimierte Vorgänge

Migrieren von Repositorys

GitHub Repositorys unterstützen die offene Zusammenarbeit mit Pullanforderungen, Forks und Sternen.

Verwenden von GitHub Enterprise Importer

GitHub Enterprise Importer ist das empfohlene Tool zum Migrieren von Repositorys von Azure DevOps Cloud zu GitHub Enterprise Cloud. Es migriert die Git-Quelle (einschließlich Commit-Verlauf), Pull-Requests, Benutzeraktivität, Arbeitsaufgabenlinks in Pull-Requests, Anhänge und Branch-Richtlinien.

  1. Installieren Sie die GitHub CLI-Migrationserweiterung:

    gh extension install github/gh-gei
    
  2. Authentifizieren mit Azure DevOps und 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 login
    
  3. Generieren Eines Migrationsskripts für eine Azure DevOps Organisation:

    gh gei generate-script --ado-org {organization} --github-org {github-org} --output migrate.sh
    
  4. Oder migrieren Sie ein einzelnes Repository:

    gh gei migrate-repo --ado-org {organization} --ado-team-project {project} \
      --ado-repo {repo} --github-org {github-org} --github-repo {new-repo}
    

Weitere Informationen finden Sie unter Verstehen Sie Migrationen von Azure DevOps zu GitHub.

Verwenden von GitHub Importer

Verwenden Sie für eine einfachere browserbasierte Option die integrierte GitHub Importer:

  1. Melden Sie sich bei GitHub an, und wählen Sie Neues Repository aus.
  2. Geben Sie einen Repositorynamen ein, und legen Sie die Sichtbarkeit auf "Öffentlich" fest.
  3. Wählen Sie oben auf der Seite "Repository importieren " aus.
  4. Geben Sie Ihre Azure DevOps Klon-URL ein: https://dev.azure.com/{organization}/{project}/_git/{repo}.
  5. Wenn Sie dazu aufgefordert werden, geben Sie Ihre Azure DevOps Anmeldeinformationen ein. Melden Sie sich mit Microsoft Entra ID an. Wenn Sie ein persönliches Zugriffstoken verwenden müssen, erstellen Sie ein Token mit Codelesebereich>. Weitere Informationen finden Sie unter Verwenden von persönlichen Zugriffstoken.
  6. Wählen Sie "Import beginnen" aus.

GitHub Importer migriert die Git-Quelle und den Commitverlauf, migriert jedoch keine Pull Requests, Work Item-Links oder Branch-Richtlinien. Weitere Informationen finden Sie unter Importieren eines Repositorys mit GitHub Importer.

Importieren aus der Befehlszeile

Wenn GitHub Enterprise Importer Ihre Anforderungen nicht erfüllt, übertragen Sie direkt von einem lokalen Klon:

# 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

Überprüfen Sie Ihren Git-Verlauf auf Anmeldeinformationen, API-Schlüssel oder vertrauliche Daten, bevor Sie an ein öffentliches GitHub Repository übertragen. Verwenden Sie Tools wie Git-Filter-Repository , um vertrauliche Inhalte aus dem Verlauf zu entfernen.

Migrieren von Pipelines

GitHub Actions bietet flexible Workflows und kostenlose Laufminuten für öffentliche Repositorys.

Verwenden von GitHub Actions Importer

GitHub Actions Importer automatisiert die Konvertierung von Azure DevOps Pipelines in GitHub Actions Workflows.

  1. Installieren Sie die CLI-Erweiterung GitHub Actions Importer:

    gh extension install github/gh-actions-importer
    
  2. Führen Sie eine Überwachung aus, um zu migrierende Pipelines zu identifizieren:

    gh actions-importer audit azure-devops \
      --output-dir audit-results
    
  3. Eine bestimmte Pipeline konvertieren:

    gh actions-importer migrate azure-devops pipeline \
      --target-url https://github.com/{owner}/{repo} \
      --pipeline-id {pipeline-id} \
      --output-dir migration-results
    

Weitere Informationen finden Sie unter Migrate von Azure DevOps zu GitHub Actions mit GitHub Actions Importer.

Wichtige Unterschiede zwischen Azure Pipelines und GitHub Actions

Azure-Pipelines GitHub-Aktionen
azure-pipelines.yml .github/workflows/*.yml
Stufen, Aufträge, Schritte Aufträge, Schritte (wiederverwendbare Workflows für Phasen)
Dienstverbindungen GitHub Geheimnisse und OIDC
Agentpools Runner-Bezeichnungen (ubuntu-latest, windows-latest)
Vorgangsverweise (task@version) Aktionsverweise (owner/action@version)

Migrieren von Wiki-Inhalten

Verwenden Sie GitHub Wiki oder GitHub Seiten, um Leitfäden und Handbücher zu veröffentlichen.

Zu GitHub Wiki migrieren

Azure DevOps Wikis sind Git-Repositorys. Klonen Sie sie und übertragen Sie sie direkt:

# 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

Erstellen Sie vor dem Pushen mindestens eine Wiki-Seite in Ihrem GitHub Repository, um das Wiki-Repository zu initialisieren. Wählen Sie die Registerkarte Wiki in Ihrem GitHub Repository aus, und erstellen Sie eine Seite.

Migrieren zu GitHub Seiten

Für dokumentationsintensive Projekte stellt GitHub Pages eine vollständige statische Website bereit, die direkt aus Ihrem Repository gehostet wird. Sie können statische Websitegeneratoren wie Jekyll oder MkDocs verwenden, um Ihre Wiki-Inhalte in eine veröffentlichte Website zu konvertieren.

Migrieren von Artefakten

GitHub Pakete unterstützen das Veröffentlichen und Verwenden von NuGet-, npm- und Maven-Paketen.

Übertragen von Paketen auf GitHub Packages

  1. Laden Sie vorhandene Pakete aus Ihrem Azure Artifacts Feed herunter.
  2. Konfigurieren Sie die Paketquelle neu, um auf GitHub Pakete zu verweisen.
  3. Veröffentlichen Sie Pakete im neuen Feed.

So migrieren Sie z. B. ein npm-Paket:

# 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

Alternative Register

Für Pakete, die eine breite öffentliche Sichtbarkeit benötigen, sollten Sie öffentliche Registrierungen in Betracht ziehen:

Pakettyp Öffentliche Registrierung
NuGet nuget.org
npm npmjs.com
Maven Maven Central
Python PyPI
Fracht crates.io

Arbeitselemente migrieren

GitHub Probleme und Projekte bieten moderne Tools zum Verwalten von Fehlern und Featureanforderungen.

Es gibt kein integriertes Migrationstool für Arbeitselemente von Azure Boards zu GitHub Issues. Es gibt mehrere Community-Optionen zur Auswahl.

  • Azure DevOps zu GitHub Issues Migration – Open-Source-Tools auf GitHub, die Arbeitsitems in Issues konvertieren und dabei Titel, Beschreibungen sowie Bezeichnungen beibehalten.
  • CSV export/import – Exportieren von Arbeitselementen aus Azure Boards als CSV, und verwenden Sie dann die GitHub CLI oder API, um Issues zu erstellen.
  • REST-API-Skripting – Verwenden Sie die REST-API Azure DevOps Work Items REST API und GitHub Issues REST API, um ein benutzerdefiniertes Migrationsskript zu erstellen.

Exportieren von Arbeitsaufgaben mit der Azure DevOps CLI

# 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

Priorisieren Sie die Migration aktiver und kürzlich verwendeter Arbeitselemente. Geschlossene oder historische Elemente benötigen möglicherweise keine Migration– Sie können sie im privaten Projekt zur Referenz verfügbar halten.

Ersetzen von Dashboards

GitHub verfügt nicht über ein einziges Dashboardfeature, das Azure DevOps Dashboards entspricht. Stattdessen werden ähnliche Funktionen über mehrere systemeigene Features verteilt.

Azure DevOps Dashboardverwendung Äquivalent zu GitHub
Arbeitsverfolgung und Burndown-Diagramme GitHub Projects mit integrierten Insights-Diagrammen
Repository-Aktivität Repository Insights (Commits, PRs, Datenverkehr, Mitwirkende)
Build- und CI-Status GitHub Actions Workflowausführungsverlauf und Statussignale
Öffentliche Transparenz Probleme, Pull-Requests, Releases und README-Badges

Für Dashboards auf Organisationsebene, die Daten über mehrere Repositories hinweg aggregieren, untersuchen Sie Integrationen im GitHub Marketplace.

Prüfliste nach der Migration

Überprüfen Sie nach der Migration Ihrer Inhalte die folgenden Elemente:

  • [ ] Alle Git-Repositorys sind auf GitHub mit vollständigem Verlauf verfügbar.
  • [ ] CI/CD-Workflows werden erfolgreich in GitHub Actions ausgeführt.
  • [ ] Wiki-Inhalte werden korrekt auf GitHub-Wiki oder GitHub-Pages gerendert.
  • [ ] Pakete veröffentlichen und wiederherstellen aus der neuen Registrierung.
  • [ ] Aktive Arbeitselemente werden in GitHub Issues nachverfolgt.
  • [ ] Externe Links und Abzeichen verweisen auf die neuen GitHub-Repository-Standorte.
  • [ ] Mitarbeiter und Communitymitglieder werden über den neuen Standort informiert.
  • [ ] README im Azure DevOps Projekt leitet Besucher an den neuen GitHub Standort.