Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure DevOps-tjänster
Important
Offentliga projekt i Azure DevOps dras tillbaka. Från och med 2027 konverteras befintliga offentliga projekt till privata. Mer information finns i Public projects retirement and Migrera från ett offentligt projekt till GitHub.
Den här artikeln visar hur du migrerar varje tjänstområde från ett Azure DevOps offentligt projekt till dess GitHub motsvarighet. Den omfattar repositoryn, pipelines, wikisidor, artefakter och arbetsobjekt.
Förutsättningar
| Krav | Detaljer |
|---|---|
| Azure DevOps åtkomst | Medlem i projektet med minst grundläggande åtkomst |
| GitHub-konto | Ett GitHub konto med behörighet att skapa lagringsplatser |
| Git | Git installerat lokalt |
| GitHub CLI (valfritt) | GitHub CLI för effektiva åtgärder |
Migrera lagringsplatser
GitHub lagringsplatser stöder öppet samarbete med pull-begäranden, förgreningar och stjärnor.
Använda GitHub Enterprise Importer
GitHub Enterprise Importer är det rekommenderade verktyget för att migrera lagringsplatser från Azure DevOps Cloud till GitHub Enterprise Cloud. Den migrerar Git-källkod (inklusive commit-historik), pull-begäranden, användarhistorik, arbetsobjektlänkar på pull-begäranden, bifogade filer och grenprinciper.
Installera GitHub CLI-migreringstillägget:
gh extension install github/gh-geiAutentisera med både Azure DevOps och 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 loginGenerera ett migreringsskript för en Azure DevOps organisation:
gh gei generate-script --ado-org {organization} --github-org {github-org} --output migrate.shEller migrera en enskild lagringsplats:
gh gei migrate-repo --ado-org {organization} --ado-team-project {project} \ --ado-repo {repo} --github-org {github-org} --github-repo {new-repo}
Mer information finns i Förstå migreringar från Azure DevOps till GitHub.
Använda GitHub Importer
Om du vill ha ett enklare webbläsarbaserat alternativ använder du den inbyggda GitHub Importer:
- Logga in på GitHub och välj Ny lagringsplats.
- Ange ett lagringsplatsnamn och ange synlighet till Offentlig.
- Välj Importera en lagringsplats överst på sidan.
- Ange din Azure DevOps-klonings-URL:
https://dev.azure.com/{organization}/{project}/_git/{repo}. - Ange dina Azure DevOps autentiseringsuppgifter om du uppmanas att göra det. Logga in med hjälp av Microsoft Entra ID. Om du behöver använda en personlig åtkomsttoken skapar du en med kodläsningsomfång>. Mer information finns i Använda personliga åtkomsttoken.
- Välj Börja importera.
GitHub Importer migrerar Git-källor och kommitteringshistorik men migrerar inte pull-förfrågningar, arbetsobjektlänkar eller grenpolicys. Mer information finns i Importera en lagringsplats med GitHub Importer.
Importera från kommandoraden
Om GitHub Enterprise Importer inte uppfyller dina behov skickar du direkt från en lokal 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
Granska Din Git-historik för autentiseringsuppgifter, API-nycklar eller känsliga data innan du skickar till en offentlig GitHub lagringsplats. Använd verktyg som git filter-repo för att ta bort känsligt innehåll från historiken.
Migrera datapipelines
GitHub Actions erbjuder flexibla arbetsflöden och kostnadsfria löparminuter för offentliga lagringsplatser.
Använd GitHub Actions Importer
GitHub Actions Importer automatiserar konverteringen av Azure-pipelines till GitHub Actions arbetsflöden.
Installera CLI-tillägget GitHub Actions Importer:
gh extension install github/gh-actions-importerKör en granskning för att identifiera pipelines som ska migreras:
gh actions-importer audit azure-devops \ --output-dir audit-resultsKonvertera en specifik pipeline:
gh actions-importer migrate azure-devops pipeline \ --target-url https://github.com/{owner}/{repo} \ --pipeline-id {pipeline-id} \ --output-dir migration-results
Mer information finns i Migrera från Azure DevOps till GitHub Actions med GitHub Actions Importer.
Viktiga skillnader mellan Azure-pipelines och GitHub Actions
| Azure-pipelines | GitHub Actions |
|---|---|
azure-pipelines.yml |
.github/workflows/*.yml |
| Faser, jobb, steg | Jobb, steg (återanvändbara arbetsflöden för faser) |
| Tjänstanslutningar | GitHub hemligheter och OIDC |
| Agentpooler | Löparetiketter (ubuntu-latest, windows-latest) |
Uppgiftsreferenser (task@version) |
Åtgärdsreferenser (owner/action@version) |
Migrera wiki-innehåll
Använd GitHub Wiki eller GitHub Pages för att publicera guider och handböcker.
Migrera till GitHub Wiki
Azure DevOps wikis är Git-lagringsplatser. Klona och push-överför dem 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
Innan du push-överför skapar du minst en wiki-sida på din GitHub lagringsplats för att initiera wiki-lagringsplatsen. Välj fliken Wiki i din GitHub lagringsplats och skapa en sida.
Migrera till GitHub sidor
För dokumentationsintensiva projekt tillhandahåller GitHub Pages en fullständig statisk webbplats som finns direkt från lagringsplatsen. Du kan använda statiska webbplatsgeneratorer som Jekyll eller MkDocs för att konvertera ditt wiki-innehåll till en publicerad webbplats.
Migrera artefakter
GitHub Packages stöder publicering och användning av NuGet-, npm- och Maven-paket.
Flytta paket till GitHub-paket
- Ladda ned befintliga paket från din Azure Artifacts feed.
- Konfigurera om paketkällan så att den pekar på GitHub-paket.
- Publicera paket till den nya feeden.
Om du till exempel vill migrera ett 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
Alternativa register
För paket som behöver bred offentlig synlighet bör du överväga offentliga register:
| Pakettyp | Offentligt register |
|---|---|
| NuGet (på engelska) | nuget.org |
| npm | npmjs.com |
| Maven | Maven Central |
| Python | PyPI |
| Godstransport | crates.io |
Migrera arbetsobjekt
GitHub Problem och projekt tillhandahåller moderna verktyg för att hantera buggar och funktionsbegäranden.
Det finns inget inbyggt migreringsverktyg för arbetsobjekt från Azure-tavlor till GitHub Problem. Det finns flera tillgängliga alternativ för gemenskap.
- Azure DevOps till GitHub Issues migrator – verktyg med öppen källkod på GitHub som konverterar arbetsobjekt till problem, bevarar rubriker, beskrivningar och etiketter.
- CSV export/import – exportera arbetsobjekt från Azure-tavlor som CSV och använd sedan GitHub CLI eller API för att skapa problem.
- REST API-skript – använd REST API:et Azure DevOps Work Items och GitHub Issues REST API för att skapa ett anpassat migreringsskript.
Exportera arbetsobjekt med 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
Tips/Råd
Prioritera migrering av aktiva och senaste arbetsobjekt. Stängda eller historiska objekt kanske inte behöver migrering – du kan hålla dem tillgängliga i det privata projektet som referens.
Ersätt instrumentpaneler
GitHub har inte en enda instrumentpanelsfunktion som motsvarar Azure DevOps instrumentpaneler. I stället sprids liknande funktioner över flera inbyggda funktioner.
| Azure DevOps instrumentpanelsanvändning | GitHub motsvarande |
|---|---|
| Arbetsövervakning och nedräkning | GitHub Projects med inbyggda Insights-diagram |
| Databasaktivitet | Repository Insights (åtaganden, PR, trafik, deltagare) |
| Build- och CI-status | GitHub Actions arbetsflödeskörningshistorik och statusmärken |
| Offentlig transparens | Problem, pull-begäranden, versioner och README-märken |
För instrumentpaneler på organisationsnivå som aggregerar data över flera lagringsplatser kan du utforska integreringar på GitHub Marketplace.
Checklista efter migrering
När du har migrerat ditt innehåll kontrollerar du följande:
- [ ] Alla Git-lagringsplatser är tillgängliga på GitHub med fullständig historik.
- [ ] CI/CD-arbetsflöden körs i GitHub Actions.
- [ ] Wiki-innehåll återges korrekt i GitHub Wiki- eller GitHub Pages.
- [ ] Paket publiceras och återställs från det nya registret.
- [ ] Aktiva arbetsobjekt spåras i GitHub Issues.
- [ ] Externa länkar och märken pekar på de nya GitHub platserna.
- [ ] Medarbetare och communitymedlemmar informeras om den nya platsen.
- [ ] README i projektet Azure DevOps dirigerar besökare till den nya GitHub platsen.