Migreren van een openbaar project naar GitHub

Azure DevOps Services

Important

Openbare projecten in Azure DevOps worden buiten gebruik gesteld. Vanaf 2027 worden bestaande openbare projecten omgezet in privéprojecten. Raadpleeg Openbare projecten beëindiging en Migreren van een openbaar project naar GitHub voor meer informatie.

In dit artikel wordt beschreven hoe u elk servicegebied migreert van een Azure DevOps openbaar project naar het bijbehorende GitHub equivalent. Hierin worden opslagplaatsen, pijplijnen, wiki's, artefacten en werkitems behandeld.

Prerequisites

Vereiste Details
Azure DevOps-toegang Lid van het project met ten minste basistoegang
GitHub account Een GitHub-account met toestemming om opslagplaatsen te maken
Git Git lokaal geïnstalleerd
GitHub CLI (optioneel) GitHub CLI voor gestroomlijnde bewerkingen

Opslagplaatsen migreren

GitHub opslagplaatsen ondersteunen open samenwerking met pull-aanvragen, forks en sterren.

GitHub Enterprise Importer gebruiken

GitHub Enterprise Importer is het aanbevolen hulpprogramma voor het migreren van opslagplaatsen van Azure DevOps Cloud naar GitHub Enterprise Cloud. Git-bron (inclusief doorvoergeschiedenis), pull-aanvragen, gebruikersgeschiedenis, koppelingen naar werkitems voor pull-aanvragen, bijlagen en vertakkingsbeleid worden gemigreerd.

  1. Installeer de GitHub CLI-migratieextensie:

    gh extension install github/gh-gei
    
  2. Verifiëren met zowel Azure DevOps als 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. Een migratiescript genereren voor een Azure DevOps organisatie:

    gh gei generate-script --ado-org {organization} --github-org {github-org} --output migrate.sh
    
  4. Of migreer één opslagplaats:

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

Zie Onderstand-migraties van Azure DevOps naar GitHub voor meer informatie.

GitHub Importer gebruiken

Gebruik de ingebouwde GitHub Importer voor een eenvoudigere browseroptie:

  1. Meld u aan bij GitHub en selecteer Nieuwe opslagplaats.
  2. Voer de naam van een opslagplaats in en stel zichtbaarheid in op Openbaar.
  3. Selecteer Importeer een opslagplaats bovenaan de pagina.
  4. Voer de kloon-URL van uw Azure DevOps in: https://dev.azure.com/{organization}/{project}/_git/{repo}.
  5. Voer desgevraagd uw Azure DevOps referenties in. Meld u aan met behulp van Microsoft Entra ID. Als u een persoonlijk toegangstoken wilt gebruiken, maak een met de scope Code Read>. Zie Persoonlijke toegangstokens gebruiken voor meer informatie.
  6. Selecteer Importeren starten.

GitHub Importer migreert git-bron- en doorvoergeschiedenis, maar migreert geen pull-aanvragen, werkitemkoppelingen of vertakkingsbeleid. Zie Importeren van een opslagplaats met GitHub Importer voor meer informatie.

Importeren vanaf de opdrachtregel

Als GitHub Enterprise Importer niet aan uw behoeften voldoet, pusht u rechtstreeks vanuit een lokale kloon:

# 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

Controleer uw Git-geschiedenis op referenties, API-sleutels of gevoelige gegevens voordat u naar een openbare GitHub-opslagplaats pusht. Gebruik hulpprogramma's zoals git-filter-opslagplaats om gevoelige inhoud uit de geschiedenis te verwijderen.

Pijplijnen migreren

GitHub Actions biedt flexibele werkstromen en gratis runnerminuten voor openbare opslagplaatsen.

GitHub Actions Importer gebruiken

GitHub Actions Importer automatiseert de conversie van Azure DevOps pijplijnen naar GitHub Actions werkstromen.

  1. Installeer de GitHub Actions Importer CLI-extensie:

    gh extension install github/gh-actions-importer
    
  2. Voer een controle uit om pijplijnen te identificeren die moeten worden gemigreerd:

    gh actions-importer audit azure-devops \
      --output-dir audit-results
    
  3. Een specifieke pijplijn converteren:

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

Zie Migrate van Azure DevOps naar GitHub Actions met GitHub Actions Importer voor meer informatie.

Belangrijke verschillen tussen Azure-pipelines en GitHub Actions

Azure-pipelines GitHub Actions (GitHub-acties)
azure-pipelines.yml .github/workflows/*.yml
Fasen, banen, stappen Taken, stappen (herbruikbare werkstromen voor fasen)
Serviceverbindingen GitHub geheimen en OIDC
Agentpools Runner labels (ubuntu-latest, windows-latest)
Taakverwijzingen (task@version) Actieverwijzingen (owner/action@version)

Wiki-inhoud migreren

Gebruik GitHub Wiki of GitHub Pages om gidsen en handleidingen te publiceren.

Migreren naar GitHub Wiki

Azure DevOps wiki's zijn Git-opslagplaatsen. Kloon en push ze rechtstreeks:

# 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

Opmerking

Voordat u pusht, maakt u ten minste één wikipagina in uw GitHub opslagplaats om de wikiopslagplaats te initialiseren. Selecteer het tabblad Wiki in uw GitHub opslagplaats en maak een pagina.

Migreren naar GitHub pagina's

Voor documentatie-intensieve projecten biedt GitHub Pages een volledige statische site die rechtstreeks vanuit uw opslagplaats wordt gehost. U kunt statische sitegeneratoren zoals Jekyll of MkDocs gebruiken om uw wiki-inhoud te converteren naar een gepubliceerde site.

Migreren van artefacten

GitHub-pakketten ondersteunen het publiceren en gebruiken van NuGet-, NPM- en Maven-pakketten.

Pakketten verplaatsen naar GitHub-pakketten

  1. Download bestaande pakketten uit uw Azure-artefacten feed.
  2. Configureer de pakketbron opnieuw zodat deze verwijst naar GitHub Pakketten.
  3. Publiceer pakketten naar de nieuwe feed.

Als u bijvoorbeeld een NPM-pakket wilt migreren:

# 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

Alternatieve registers

Voor pakketten die een brede openbare zichtbaarheid nodig hebben, moet u openbare registers overwegen:

Pakkettype Openbaar register
NuGet nuget.org
npm npmjs.com
Maven Maven Central
Python PyPI
Vracht crates.io

Werkitems migreren

GitHub problemen en projecten bieden moderne hulpprogramma's voor het beheren van bugs en functieaanvragen.

Er is geen ingebouwd hulpprogramma voor de migratie van werkitems van Azure Boards naar GitHub Issues. Er zijn verschillende communityopties beschikbaar:

  • Azure DevOps naar GitHub Issues migrator — open-source tools op GitHub die werkitems converteren naar issues, waarbij titels, beschrijvingen en labels worden behouden.
  • CSV exporteren/importeren — werkitems exporteren uit Azure Boards als CSV en vervolgens de GitHub CLI of API gebruiken om problemen te maken.
  • REST API-scripting: gebruik de Azure DevOps REST API en GitHub Issues REST API om een aangepast migratiescript te maken.

Werkitems exporteren met de 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

Prioriteit geven aan het migreren van actieve en recente werkitems. Gesloten of historische items hebben mogelijk geen migratie nodig. U kunt ze toegankelijk houden in het privéproject ter referentie.

Dashboards vervangen

GitHub heeft niet één dashboardfunctie die gelijk is aan Azure DevOps dashboards. In plaats daarvan wordt vergelijkbare functionaliteit verspreid over verschillende systeemeigen functies.

Azure DevOps dashboard gebruiken GitHub-tegenhanger
Werktracering en burndowngrafiek GitHub Projects met ingebouwde Insights-grafieken
Activiteit van opslagplaats Opslagplaatsinzichten (doorvoeringen, PULL's, verkeer, inzenders)
Build en CI-status GitHub Actions uitvoeringsgeschiedenis en statusbadges voor werkstromen
Openbare transparantie Problemen, pull-aanvragen, releases en README-badges

Voor dashboards op organisatieniveau waarmee gegevens in meerdere opslagplaatsen worden samengevoegd, verkent u integraties op de GitHub Marketplace.

Controlelijst na migratie

Controleer na het migreren van uw inhoud de volgende items:

  • [ ] Alle Git-opslagplaatsen zijn beschikbaar op GitHub met volledige geschiedenis.
  • [ ] CI/CD-werkstromen worden uitgevoerd in GitHub Actions.
  • [ ] Wiki-inhoud wordt correct weergegeven in GitHub Wiki of GitHub Pagina's.
  • [ ] Pakketten publiceren en restoren vanuit het nieuwe register.
  • [ ] Actieve werkitems worden bijgehouden in GitHub Issues.
  • [ ] Externe koppelingen en badges verwijzen naar de nieuwe GitHub locaties.
  • [] Medewerkers en communityleden worden op de hoogte gesteld van de nieuwe locatie.
  • [] README in het Azure DevOps project leidt bezoekers naar de nieuwe GitHub locatie.