I ett tidigare inlägg om migrering från Jira till VSTS förklarade Damir Petrac hur du kan ta dig an utmaningen med att migrera från Jira till Azure DevOps (tidigare VSTS) eller Team Foundation Server (TFS).
Mathias Olausson
VP GitHub and Microsoft Business
Mathias works at the intersection of developer platforms, AI-enabled software delivery, and modern software engineering. He is passionate about improving developer productivity and modernizing development practices using GitHub, Azure DevOps, and Azure. As a long-standing Microsoft MVP, he brings technical depth, commercial product thinking, and a strong voice as a thought leader in the community.
Behöver du hjälp med att migrera befintliga repositories till Azure DevOps?
Det är en intressant utmaning som, precis som artikeln beskriver, kräver både verksamhets- och teknisk kompetens. På verksamhetssidan behöver vi förstå hur planering och utveckling fungerar i Jira och hur det ska fungera i Azure DevOps. På den tekniska sidan behöver vi ta reda på hur fält, statusar, användare, historik och så vidare ska mappas. Du kommer troligen att använda REST API:er eller SDK:er och lägga timmar på att förstå protokollen, felsöka kod och skapa begränsat värde för användarna.
Så hur kan vi göra processen mindre frustrerande? Här kommer verktyget för migrering av work items från Jira till Azure DevOps! I det här inlägget kommer min medförfattare Mathias Olausson och jag att förklara i detalj hur du bäst använder verktyget.
Migreringsverktyg från Jira till Azure DevOps
Efter många års arbete med att migrera, konsolidera och synkronisera data för utvecklingsteam har vi på Solidify (nu Eficode) byggt flera interna verktyg. Även om problemet inte är särskilt komplicerat tar det tid att skapa ett verktyg, och första versionen blir troligen inte optimal.
Eftersom vi anser att det ska vara enkelt att växla mellan utvecklingsplattformar beslutade vi att göra verktyget vi utvecklat för migrering av work items mellan Jira och Azure DevOps/TFS tillgängligt som open source. Vi hoppas förstås också att communityn hjälper till att förbättra verktyget, så att det blir värdefullt och relevant även i andra scenarier än de vi tidigare har använt det för.
Migreringsprocessen från Jira till Azure DevOps sker i två faser: Först exporteras data från Jira till textfiler. Detta kan göras i omgångar tills rätt uppsättning objekt är redo att importeras. Därefter importeras datafilerna som work items i Azure DevOps/TFS.
Verktygets viktigaste funktioner omfattar: - Jira-objekt exporteras baserat på JQL-frågor. - Användare kan översättas under migreringen för att bevara korrekt historik. - Fältmappning gör det möjligt att mappa fält från käll- till målkonto baserat på konfiguration. - Statusmappning mellan statusar i Jira och Azure DevOps. - Historik från Jira bevaras. - Migrering av länkar och bilagor. - Datum, till exempel skapande- eller ändringsdatum, bevaras. - Area/Iteration paths kan få ett specifikt standardvärde när de inte finns i målprojektet.
Migrera från Jira till Azure DevOps eller TFS
Nu när vi har ett verktyg kan vi titta på hur vi använder det.
Obs: se till att läsa den senaste versionen av migreringsguiden här.
Figur 1. Migreringsprocess från Jira till Azure DevOps
Ett praktiskt exempel
Nu går vi igenom ett praktiskt exempel på hur du migrerar från Jira till Azure DevOps, med skärmbilder, konfigurationsinställningar och resultatet från exporten. Slutligen ser vi hur projektet ser ut i Azure DevOps. Vi börjar med ett Scrum-projekt i Jira med standardinställningar. Observera att detta är ett demoprojekt, men det skulle lika gärna kunna vara ett verkligt Scrum-projekt från ditt eget företag. En skärmbild från Jira ser ut så här:
Figur 2. Scrum-demoprojekt i Jira
Del ett: konfigurera inställningarna
För att påbörja migreringen behöver du först gå till GitHub och hämta den senaste versionen av verktyget: [https://github.com/solidify/jira-azuredevops-migrator/releases] (https://github.com/solidify/jira-azuredevops-migrator/releases).
Ladda ner filen jira-azuredevops-migrator-<version>.zip och packa upp den. Det är en kompilerad version som är redo att användas.
Eftersom vi vill migrera vårt Jira-demoprojekt till en Scrum-mall i Azure DevOps använder vi exempelkonfigurationsfilen som baseras på Scrum-mallen i Azure DevOps. Exempelkonfigurationsfilen finns i mappen Samples och heter config-scrum.json. Fullständig dokumentation för varje fält finns här.
Så här ser den ut med standardinställningarna:
Figur 3. Exempelkonfiguration
Den här standardkonfigurationen anger att vi ska exportera alla objekt i Jira-projektet med kortnamnet "SCRUM" och migrera dem till ett Azure DevOps-projekt med namnet "Scrum-Demo-From-Jira".
Frågan vi använder för att välja alla kan i stället vara project = SCRUM AND issue type in (Story, Sub-task) ORDER BY Rank ASC, om du till exempel bara vill exportera User stories och Sub tasks. Arbetsytan där de exporterade Jira-objekten som json-filer hamnar är C:TempJiraExport, och både Area Path och Iteration path i Azure DevOps är satta till "Migrated”, så att vi enkelt kan skilja de migrerade objekten åt och flytta dem någon annanstans.
Konfigurationen har också mappat vanliga Jira-objekt till motsvarande Azure DevOps work item types baserat på Scrum-mallen från Microsoft, så här:
Feature = Feature
Epic = Epic
Story = Product Backlog Item
Bug = Bug
Task = Product Backlog Item
Sub-task = Task
Standardfälten i Jira mappas även till standardfälten i Azure DevOps.
Som du kan se i konfigurationsfilen har work item-typen State i Azure DevOps definierats tre gånger. Det beror på att vi behöver ange olika statusar för work items beroende på om det är en Task, Bug, Product Backlog Item, Epic eller Feature. Du kan läsa mer om de olika statusarna i de olika mallarna i Azure DevOps här.
För alla work items av typen Task som vi exporterar mappar vi statusar så här:
To Do = To Do
Done = Done
In Progress = In Progress
För alla work items av typen Bug eller Product Backlog Item som vi exporterar mappar vi statusar så här:
To Do = New
Done = Done
In Progress = Committed
För alla work items av typen Epic och Feature som vi exporterar mappar vi statusar så här:
To Do = New
Done = Done
In Progress = In Progress
Scrum-mallen är den som skiljer sig åt beroende på work item-typ. Mallarna Agile och CMMI är mer raka när det gäller statusar för olika work item-typer.
För att migrera användare och tilldela de nya work items i Azure DevOps till samma användare som den ursprungliga uppgiften hade i Jira behöver vi lägga till en textfil i rotkatalogen som ser ut ungefär så här:
Some.JiraUser@domain.com=Some.AzureDevOpsUser@domain.com
För att anpassa det här exemplet till ditt projekt behöver du ändra "source-project" och "target-project". Du kan också vilja ändra var de exporterade objekten hamnar ("workspace") samt Area Path och Iteration Path ("base-area-path" och "base-iteration-path") innan du kör exporten.
När konfigurationsfilen har uppdaterats så att den matchar dina Jira- och Azure DevOps-projekt, och frågan har uppdaterats efter dina behov och projektnamn, är det dags att påbörja själva exporten från Jira.
Del två: Exportera från Jira
Öppna valfritt CLI och navigera till platsen där den uppackade zip-filen finns. I mitt fall öppnar jag Kommandotolken och skriver:
cd C:\Temp\jira-azuredevops-migrator-2.0.2Kontrollera att dina uppdaterade
config-scrum.jsonochusers.txtfinns i rotkatalogenSamla in de åtkomstuppgifter du behöver för Jira:
Identifiera migreringskontot (användarnamn och lösenord) för åtkomst till Jira
Hämta URL:en till Jira och namnet på källprojektetKör exportverktyget genom att skriva följande kommando:
Identifiera migreringskontot (användarnamn och lösenord) för åtkomst till Jira
Hämta URL:en till Jira och namnet på källprojektet
jira-export -u jiraaccount@some.domain -p xxxxxxx --url https://my.jira.url --config config-scrum.json --force
Figur 4. Export från Jira
Granska exportloggen (den skapas för referens och felsökning)
Klart. De exporterade objekten finns nu i den workspace-mapp som anges i konfigurationen och ser ut så här:
Figur 5. Den exporterade Jira-katalogen
Figur 6. Exporterad json-fil
Del tre: Import till Azure DevOps
Nu är vi redo att importera objekten till Azure DevOps.
Samla in de åtkomstuppgifter du behöver för Azure DevOps:
Hämta URL:en och namnet på målorganisationen i Azure DevOps
Skaffa en personlig åtkomsttoken för organisationen här med minst läs- och skrivbehörighet för work items
Hämta namnet på målprojektet (importverktyget skapar målprojektet om det inte redan finns)Kör importverktyget genom att skriva följande kommando:
Samla in de åtkomstuppgifter du behöver för Azure DevOps:
Hämta URL:en och namnet på målorganisationen i Azure DevOps
Skaffa en personlig åtkomsttoken för organisationen här med minst läs- och skrivbehörighet för work items
Hämta namnet på målprojektet (importverktyget skapar målprojektet om det inte redan finns)
Kör importverktyget genom att skriva följande kommando:
wi-import --token myAccessToken --url https://my.azuredevops.url --config config-scrum.json --force
Figur 7. Import till Azure DevOps
Klart. De importerade objekten visas nu i ditt Azure DevOps-projekt.
Figur 8. Importerat Azure DevOps-projekt
Om du får problem med verktyget eller ser behov av ytterligare funktioner kan du bara forka koden, förbättra den och skicka oss en pull request. Du kan förstås också skapa ett issue om du inte är säker på var du ska börja.
Resurser
Nedan finns en lista med resurser som hjälper dig att komma igång med dina första migreringar från Java till Azure DevOps:
Migreringsverktyg för Jira till Azure DevOps: https://github.com/solidify/jira-azuredevops-migrator
Senaste release: https://github.com/solidify/jira-azuredevops-migrator/releases
Migrering från Jira till VSTS – migrera work items: https://www.eficode.com/blog/jira-to-vsts-migration-work-items
Sammanfattning
När du förstår kraven för en migrering från Jira till Azure DevOps kan processen vara ganska enkel med ett migreringsverktyg.
Verktygen tillhandahålls i befintligt skick, men en lyckad migrering kräver en detaljerad förståelse för hur du migrerar work items mellan olika system. I den här artikeln visade vi hur du migrerar mellan Jira och Azure DevOps. Om du behöver support eller hjälp med någon typ av migrering av work items är du välkommen att kontakta oss för expertrådgivning.
- DevOps
- Atlassian
Subscribe to our newsletter
Related blogs