The Jira to Azure DevOps work item migration tool lets you export data from Jira and import it as work items in Azure DevOps or Microsoft Team Foundation Server.
The migration process is done in two phases, first data is exported from Jira to text files. This can be done in a number of batches until the right set of items are ready for import.
The second step imports the data files to work items in Azure DevOps/TFS.
The key capabilities of the tool includes:
- Jira items are exported based on JQL queries.
- Users can be translated during migration in order to maintain proper history.
- Field mapping is provided to map fields from the source to target account based on configuration file.
- State mapping between Jira and Azure DevOps states.
- History from Jira is maintained.
- Dates such as created or changed date are maintained.
- Area/Iteration paths can be defaulted to a specific value when they don't exist in the target project.
- Identify the migration account (username and password) to access Jira
- Get the url to Jira and the name of the source project
Azure DevOps/TFS requirements
- Get the name of the target Azure DevOps organization/TFS collection
- Aquire a personal access token for the organization/collection with the following scopes
- Get the url and the name of the target project. The import tool can create the target project if it does not already exist.
- Discuss how users should be mapped between Jira and Azure DevOps/TFS.
Migrate work items
The process below describes the high-level steps requred to migrate data from Jira to Azure DevOps.
Define a Jira JQL filter for the items to export, for instance here's how to export all stories and sub-tasks from the SCRUM project:
project = SCRUM AND issuetype in (Story, Sub-task) ORDER BY Rank ASC
Define how to map users
This is an optional step but it's common that the names/account in Jira and Azure DevOps/TFS are different. Map Jira users to Azure DevOps/TFS users in a text file with email value pairs like this:
If no specific path to the user mapping file is provided in the configuration file, the program expects it in the location of "workspace" setting. If no file name or path including file name is provided, the import just skips mapping users.
To add support for setting a default user when the Jira user of a task is not found in the user mapping file just add this in the user mapping file:
Define configuration for the migration process.
Run the export phase.
Review the export logfile (created for reference and troubleshooting).
The migration process tracks progress in a journal file. The journal makes it possible to resume a migration, for instance to import items that failed in the import due to configuration issues.
The export will generate migration items for all Jira isses.
Run the import phase.
Review the import logfile (created for reference and troubleshooting).
The options for configuring the migration process is documented here.
Sample configuration files are provided with documentation of typical migration settings in the "samples" folder.
|config-scrum.json||Configuration to migrate to a Scrum project|
- Artifact links (other than git) are not migrated
- Board fields are not migrated