Damir Petrac kertoi aiemmassa Jira–VSTS-migraatiota käsittelevässä kirjoituksessaan, miten Jirasta siirtymisen Azure DevOpsiin (aiemmin VSTS) tai Team Foundation Serveriin (TFS) voi toteuttaa.
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.
Tarvitsetko apua nykyisten repositorioiden migroinnissa Azure DevOpsiin?
Kuten artikkelissa käsitellään, kyseessä on mielenkiintoinen haaste, joka vaatii sekä toimialan että tekniikan osaamista. Toimialan näkökulmasta meidän on ymmärrettävä, miten suunnittelu ja kehitys toimivat Jirassa ja miten ne toimivat Azure DevOpsissa. Teknisesti meidän on selvitettävä, miten kentät, tilat, käyttäjät, historia ja muut tiedot yhdistetään. Todennäköisesti päädyt käyttämään REST API -rajapintoja tai SDK:ita, käytät tuntikausia protokollien ymmärtämiseen ja koodin debuggaamiseen – ja tuotat käyttäjillesi vain vähän arvoa.
Miten tästä prosessista voisi tehdä vähemmän tuskallisen? Ratkaisuna on Jira to Azure DevOps work item migration tool! Tässä kirjoituksessa selitämme kirjoittajakollegani Mathias Olaussonin kanssa yksityiskohtaisesti, miten työkalua kannattaa hyödyntää.
Jira to Azure DevOps migration tool
Solidifylla (nykyisin Eficode) olemme rakentaneet useita sisäisiä työkaluja työskenneltyämme kehitystiimien datan migraation, yhdistämisen ja synkronoinnin parissa jo vuosien ajan. Vaikka kyseessä ei ole erityisen monimutkainen ongelma, työkalun kirjoittaminen vie aikaa, eikä lopputulos todennäköisesti ole ihanteellinen ensimmäisellä kerralla.
Uskomme, että kehitysalustojen välillä siirtymisen pitäisi olla helppoa. Siksi päätimme julkaista avoimena lähdekoodina työkalun, jonka olemme kehittäneet Jira- ja Azure DevOps/TFS -työkohteiden migraatioon. Toivomme tietysti, että yhteisö auttaa myös parantamaan työkaluja, jotta ne ovat arvokkaita ja relevantteja myös muissa käyttötapauksissa kuin niissä, joihin olemme niitä aiemmin käyttäneet.
Jira–Azure DevOps -migraatio tehdään kahdessa vaiheessa: ensin data viedään Jirasta tekstitiedostoihin. Tämä voidaan tehdä erissä, kunnes oikea joukko kohteita on valmiina tuotavaksi. Toisessa vaiheessa datatiedostot tuodaan Azure DevOpsin/TFS:n työkohteiksi.
Työkalun tärkeimmät ominaisuudet:
- Jira-kohteet viedään JQL-kyselyiden perusteella.
- Käyttäjät voidaan muuntaa migraation aikana, jotta historia säilyy oikeana.
- Kenttien yhdistäminen voidaan määrittää asetuksissa lähde- ja kohdetilin kenttien välille.
- Tilojen yhdistäminen Jiran ja Azure DevOpsin tilojen välillä.
- Jiran historia säilyy.
- Linkkien ja liitteiden migraatio.
- Päivämäärät, kuten luonti- ja muokkauspäivä, säilyvät.
- Area- ja Iteration-poluille voidaan määrittää oletusarvo, jos niitä ei ole kohdeprojektissa.
Migraatio Jirasta Azure DevOpsiin tai TFS:ään
Nyt kun käytössämme on työkalu, katsotaan, miten sitä voidaan käyttää.
Huomautus: tarkista migraatio-oppaan uusin versio täältä.
Kuva 1. Jira–Azure DevOps -migraatioprosessi
Käytännön esimerkki
Käymme nyt läpi käytännön esimerkin Jirasta Azure DevOpsiin tehtävästä migraatiosta. Mukana ovat kuvakaappaukset, asetusten määritys, viennin tulokset sekä lopuksi näkymä siitä, miltä projekti näyttää Azure DevOpsissa. Aloitamme Jiran valmiilla Scrum-projektilla. Kyseessä on demoprojekti, mutta se voisi aivan yhtä hyvin olla oman yrityksesi todellinen Scrum-projekti. Jiran näkymä näyttää tältä:
Kuva 2. Scrum-demoprojekti Jirassa
Osa yksi: asetusten määrittäminen
Aloita migraatio siirtymällä GitHubiin ja lataamalla työkalun uusin julkaisu: [https://github.com/solidify/jira-azuredevops-migrator/releases] (https://github.com/solidify/jira-azuredevops-migrator/releases).
Lataa tiedosto nimeltä jira-azuredevops-migrator-<version>.zip ja pura se. Kyseessä on käännetty versio, joka on valmis käytettäväksi.
Koska haluamme siirtää Jiran demoprojektin Azure DevOpsin Scrum-malliin, käytämme Azure DevOpsin Scrum-malliin perustuvaa esimerkkiasetustiedostoa. Esimerkkiasetustiedosto sijaitsee Samples-kansiossa, ja sen nimi on config-scrum.json. Kaikkien kenttien täydellinen dokumentaatio on saatavilla täältä.
Oletusasetukset näyttävät tältä:
Kuva 3. Esimerkkiasetukset
Tämä oletusasetus määrittää, että viemme kaikki Jira-projektin kohteet, joiden lyhytnimi on "SCRUM", ja siirrämme ne Azure DevOps -projektiin nimeltä "Scrum-Demo-From-Jira".
Kaikkien kohteiden valintaan käyttämämme kysely voisi olla myös project = SCRUM AND issue type in (Story, Sub-task) ORDER BY Rank ASC, jos haluat esimerkiksi viedä vain User storyt ja Sub taskit. Viedyt Jira-kohteet tallennetaan JSON-tiedostoina työtilaan C:TempJiraExport. Azure DevOpsin Area Path ja Iteration path on molemmat asetettu arvoon "Migrated”, jotta voimme helposti erottaa migroidut kohteet ja siirtää ne myöhemmin muualle.
Asetuksissa on myös yhdistetty Jiran vakiokohteet niitä vastaaviin Azure DevOpsin work item -tyyppeihin Microsoftin Scrum-mallin perusteella. Määritykset näyttävät tältä:
Feature = Feature
Epic = Epic
Story = Product Backlog Item
Bug = Bug
Task = Product Backlog Item
Sub-task = Task
Myös Jiran vakio kentät on yhdistetty Azure DevOpsin vakiokenttiin.
Kuten konfiguraatiotiedostosta näkyy, Azure DevOpsin work item -tyypin State on määritelty kolme kertaa. Tämä johtuu siitä, että work itemille on määritettävä eri tila sen mukaan, onko se Task, Bug, Product Backlog Item, Epic vai Feature. Lisätietoja eri templatejen eri tiloista Azure DevOpsissa löydät täältä.
Kun viemme Task-tyyppisiä work itemeitä, yhdistämme tilat seuraavasti:
To Do = To Do
Done = Done
In Progress = In Progress
Kun viemme Bug- tai Product Backlog Item -tyyppisiä work itemeitä, yhdistämme tilat seuraavasti:
To Do = New
Done = Done
In Progress = Committed
Kun viemme Epic- ja Feature-tyyppisiä work itemeitä, yhdistämme tilat seuraavasti:
To Do = New
Done = Done
In Progress = In Progress
Scrum-template eroaa work item -tyypin mukaan. Agile- ja CMMI-templatet ovat suoraviivaisempia work item -tyyppien tilojen osalta.
Jotta voimme migroida käyttäjät ja määrittää Azure DevOpsin uudet work itemit samalle käyttäjälle kuin alkuperäiset tehtävät Jirassa, meidän on lisättävä juurihakemistoon tekstitiedosto, joka näyttää esimerkiksi tältä:
Some.JiraUser@domain.com=Some.AzureDevOpsUser@domain.com
Mukauta tämä esimerkki projektiisi vaihtamalla "source-project" ja "target-project". Voit myös haluta muuttaa vietävien kohteiden kohdetta ("workspace") sekä Area Pathia ja Iteration Pathia ("base-area-path" ja "base-iteration-path") ennen viennin suorittamista.
Kun konfiguraatiotiedosto on päivitetty vastaamaan Jira- ja Azure DevOps -projekteja ja kysely tarpeitasi sekä projektien nimiä, on aika aloittaa varsinainen vienti Jirasta.
Osa kaksi: Vienti Jirasta
Avaa haluamasi komentorivityökalu ja siirry kansioon, jossa purettu zip-tiedosto sijaitsee. Tässä esimerkissä avaan komentokehotteen ja kirjoitan:
cd C:Tempjira-azuredevops-migrator-2.0.2Varmista, että päivitetyt tiedostot
config-scrum.jsonjausers.txtovat juurihakemistossa.Kerää Jiraa varten tarvitsemasi käyttöoikeustiedot:
Selvitä migraatiotilin käyttäjätunnus ja salasana Jiraan kirjautumista varten
Hae Jiran URL-osoite ja lähdeprojektin nimiSuorita vientityökalu kirjoittamalla seuraava komento:
Selvitä migraatiotilin käyttäjätunnus ja salasana Jiraan kirjautumista varten
Hae Jiran URL-osoite ja lähdeprojektin nimi
jira-export -u jiraaccount@some.domain -p xxxxxxx --url https://my.jira.url --config config-scrum.json --force
Kuva 4. Vienti Jirasta
Tarkista viennin lokitiedosto (luotu viitteeksi ja vianmääritystä varten)
Valmista. Viedyt kohteet ovat nyt määrityksessä määritetyssä workspace-kansiossa, ja se näyttää tältä:
Kuva 5. Viety Jira-luettelo
Kuva 6. Viety JSON-tiedosto
Osa kolme: Tuonti Azure DevOpsiin
Nyt kohteet ovat valmiita tuotaviksi Azure DevOpsiin.
Kerää Azure DevOpsia varten tarvitsemasi käyttöoikeustiedot:
Hae kohde-Azure DevOps -organisaation URL-osoite ja nimi
Hanki organisaatiolle henkilökohtainen käyttöoikeustunnus täältä, jolla on vähintään work item -kohteiden luku- ja kirjoitusoikeudet
Hae kohdeprojektin nimi (tuontityökalu luo kohdeprojektin, jos sitä ei vielä ole)Suorita tuontityökalu kirjoittamalla seuraava komento:
Kerää Azure DevOpsia varten tarvitsemasi käyttöoikeustiedot:
Hae kohde-Azure DevOps -organisaation URL-osoite ja nimi
Hanki organisaatiolle henkilökohtainen käyttöoikeustunnus täältä, jolla on vähintään work item -kohteiden luku- ja kirjoitusoikeudet
Hae kohdeprojektin nimi (tuontityökalu luo kohdeprojektin, jos sitä ei vielä ole)
Suorita tuontityökalu kirjoittamalla seuraava komento:
wi-import --token myAccessToken --url https://my.azuredevops.url --config config-scrum.json --force
Kuva 7. Tuonti Azure DevOpsiin
Valmista. Tuodut kohteet näkyvät nyt Azure DevOps -projektissasi.
Kuva 8. Tuotu Azure DevOps -projekti
Jos työkalussa ilmenee ongelmia tai tarvitset lisäominaisuuksia, voit forkata koodin, parantaa sitä ja lähettää meille pull requestin. Voit toki myös avata issuen, jos et ole varma, mistä aloittaa.
Resurssit
Alta löydät resursseja, joiden avulla pääset alkuun ensimmäisissä Java–Azure DevOps -migraatioissasi:
Jira–Azure DevOps -migraatiotyökalu: https://github.com/solidify/jira-azuredevops-migrator
Uusin julkaisu: https://github.com/solidify/jira-azuredevops-migrator/releases
Jira–VSTS-migraatio – work itemien migraatio: https://www.eficode.com/blog/jira-to-vsts-migration-work-items
Yhteenveto
Kun ymmärrät Jirasta Azure DevOpsiin siirtymisen vaatimukset, prosessi voi olla migraatiotyökalua käyttämällä varsin suoraviivainen.
Työkalut tarjotaan sellaisina kuin ne ovat, mutta onnistunut migraatio edellyttää yksityiskohtaista ymmärrystä siitä, miten work itemit siirretään eri järjestelmien välillä. Tässä artikkelissa kerroimme, miten migraatio tehdään Jiran ja Azure DevOpsin välillä. Jos tarvitset tukea tai apua work itemien migraatioihin, ota meihin yhteyttä ja hyödynnä asiantuntijakonsultointiamme.
- DevOps
- Atlassian
Subscribe to our newsletter
Related blogs