Professional Documents
Culture Documents
Import to ADO
With Solidify (Warning some Developments knowledge are required for using this tool)
Prerequisite:
From solidify Website Download Latest version. https://github.com/solidify/jira-
azuredevops-migrator/releases
Ie When I did
This token will be used the same way you would your password -p API_TOKEN
Ie: C:\Temp
Even my project is AGILE one, after copying this file in the Main folder “migrator” you will face many
customizations to be done.
So first copy the json file corresponding to your project type on Migration API folder.
Basically, you will need to change some info inside JSON File
o "source-project": "SourceProject" replace it with your project Name in JIRA (if wrong
it doesn’t create error)
o "target-project": "TargetProject" replace it with your project Name in ADO (if wrong
it doesn’t create error)
o "query": "project=ProjectName ORDER BY Rank ASC" replace it with the proper
query for the issue you want extract from JIRA.
o "workspace": "C:\\Temp\\JiraExport\\" it’s the folder where all issue will be
extracted into JSON file
You don’t need to change other parameter first.
o For info "user-mapping-file": "users.txt" is a file you may need to create if you want
map user in JIRA with user in ADO. This file need to be place in the extract folder.
After this change in JSON config file, you can try a first extract of JIRA.
Go to migration folder
If you are really lucky you will not have any error/warning then you can go directly to the Import
Step. Otherwise take some of my experience tips below
Debug mapping:
Issue Type Mapping:
In Json AGILE File only this mapping exists for type:
"Epic" -> "Epic"
"Story" -> "Feature"
"Bug" -> "Bug"
"Task" -> "User Story"
"Sub-task" -> "Task"
For my project export I was needed to add/modify many. This is my new Type Map code:
"type-map": {
"type": [
{
"source": "Epic",
"target": "Epic"
},
{
"source": "Story",
"target": "User Story"
},
{
"source": "Bug",
"target": "Bug"
},
{
"source": "Task",
"target": "Task"
},
{
"source": "Sub-task",
"target": "Task"
},
{
"source": "Feature",
"target": "Feature"
},
{
"source": "Incident",
"target": "Issue"
},
{
"source": "Change Request",
"target": "Feature"
},
{
"source": "Improvement",
"target": "Feature"
},
{
"source": "Initiative",
"target": "Initiative"
},
{
"source": "User Story",
"target": "User Story"
}
]
},
After relaunch of export normally you shouldn’t get Error. Only Many Warnings.
Error mean Issue is not extracted from Jira and will can’t be imported to ADO.
A Warning mean issue will be created in ADO but as some mappings aren’t correct and you will
need to manually fix them later in ADO.
It’s for that I also update some Status and other fields. This my new code
"field-map": {
"field": [
{
"source": "summary",
"target": "System.Title",
"mapper": "MapTitle"
},
{
"source": "assignee",
"target": "System.AssignedTo",
"mapper": "MapUser"
},
{
"source": "description",
"target": "System.Description",
"mapper": "MapRendered"
},
{
"source": "priority",
"target": "Microsoft.VSTS.Common.Priority",
"mapping": {
"values": [
{
"source": "Blocker",
"target": "1"
},
{
"source": "Critical",
"target": "1"
},
{
"source": "Highest",
"target": "1"
},
{
"source": "Major",
"target": "2"
},
{
"source": "High",
"target": "2"
},
{
"source": "Medium",
"target": "3"
},
{
"source": "Low",
"target": "3"
},
{
"source": "Lowest",
"target": "4"
},
{
"source": "Minor",
"target": "4"
},
{
"source": "Trivial",
"target": "4"
}
]
}
},
{
"source": "Sprint",
"source-type": "name",
"target": "System.IterationPath",
"mapper": "MapSprint"
},
{
"source": "labels",
"target": "System.Tags",
"mapper": "MapTags"
},
{
"source": "comment",
"target": "System.History",
"mapper": "MapRendered"
},
{
"source": "status",
"target": "System.State",
"for": "Task,Change Request",
"mapping": {
"values": [
{
"source": "To Do",
"target": "To Do"
},
{
"source": "Done",
"target": "Done"
},
{
"source": "In Progress",
"target": "Active"
},
{
"source": "Reviewing",
"target": "Testing"
},
{
"source": "Cancelled",
"target": "Removed"
},
{
"source": "Awaiting Feedback",
"target": "Blocked"
},
{
"source": "Blocked",
"target": "Blocked"
},
]
}
},
{
"source": "status",
"target": "System.State",
"for": "Bug,Product Backlog Item",
"mapping": {
"values": [
{
"source": "To Do",
"target": "New"
},
{
"source": "Testing",
"target": "Testing"
},
{
"source": "Reviewing",
"target": "Testing"
},
{
"source": "Done",
"target": "Done"
},
{
"source": "In Progress",
"target": "Committed"
},
{
"source": "Awaiting Feedback",
"target": "Blocked"
},
{
"source": "Blocked",
"target": "Blocked"
},
]
}
},
{
"source": "status",
"target": "System.State",
"for": "Epic,Feature",
"mapping": {
"values": [
{
"source": "To Do",
"target": "New"
},
{
"source": "Done",
"target": "Done"
},
{
"source": "In Progress",
"target": "Active"
},
{
"source": "Researching",
"target": "Discovery"
}
]
}
},
{
"source": "Story Points",
"source-type": "name",
"target": "Microsoft.VSTS.Scheduling.Effort",
"not-for": "Task,User Story"
},
{
"source": "Story Points",
"source-type": "name",
"target": "Story Points",
"for": "User Story"
},
{
"source": "timeestimate",
"target": "Microsoft.VSTS.Scheduling.RemainingWork",
"mapper": "MapRemainingWork",
"for": "Bug,Task"
},
{
"source": "description",
"target": "Microsoft.VSTS.TCM.ReproSteps",
"for": "Bug"
}
]
}
Import TO ADO:
Open Command Line prompt “like CMD”
Go to migration folder
Enter command:
!!!! Don’t forget replacing ADO_token and url (-sandbox or not) !!!!
NB:
I found much informations on Solidify tuto/Github:
- Migrate Jira to Azure DevOps | Move from Jira to Azure DevOps | Tooling by (solidify.se)