You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/faq.md
+93-18Lines changed: 93 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -81,13 +81,88 @@ If your custom field is not imported correctly into Azure DevOps, please go thro
81
81
82
82
This error is usually indicative of incorrect configuration on the user's side. Please follow the checklist [here](https://github.com/solidify/jira-azuredevops-migrator/blob/master/docs/faq.md#troubleshooting-my-custom-field-is-not-migrated-correctlynot-migrated-at-all) (the section above this one, in the same document) to ensure that you do not have any issues with your `config.json` file.
83
83
84
-
## 4. I need to obtain a field reference name/link type in Azure DevOps
84
+
## 4. (In depth) How does Link Mapping work?
85
+
86
+
The Jira Azure DevOps Migration Tool uses the **link-map** property in the `config.json` file to map link types between Jira and Azure DevOps (ADO).
87
+
88
+
The `link-map` property in your `config.json` file should look like this:
89
+
90
+
```json
91
+
"link-map": {
92
+
"link": [
93
+
{
94
+
"source": "Epic",
95
+
"target": "System.LinkTypes.Hierarchy-Reverse"
96
+
},
97
+
{
98
+
"source": "Parent",
99
+
"target": "System.LinkTypes.Hierarchy-Reverse"
100
+
},
101
+
{
102
+
"source": "Child",
103
+
"target": "System.LinkTypes.Hierarchy-Forward"
104
+
},
105
+
{
106
+
"source": "Relates",
107
+
"target": "System.LinkTypes.Related"
108
+
},
109
+
{
110
+
"source": "Cloners",
111
+
"target": "System.LinkTypes.Related"
112
+
},
113
+
{
114
+
"source": "Duplicate",
115
+
"target": "System.LinkTypes.Duplicate-Forward"
116
+
}
117
+
]
118
+
}
119
+
```
120
+
121
+
### **How to Configure Link Mapping**
122
+
123
+
1.**Identify Jira Link Types:**
124
+
- Go to **Settings > Jira Settings > Issues > Issue Types > Issue Types** in Jira Cloud.
125
+
- Locate the **Name**, **Outward Description**, and **Inward Description** for each link type.
126
+
127
+
2.**Map Jira Link Types to ADO:**
128
+
- The **source** property in the mapping should match the **Name** of the link type in Jira.
129
+
- The **target** property should be the corresponding ADO link type.
130
+
131
+
#### **Example: Standard Jira Link Types**
132
+
133
+
| Name | Outward Description | Inward Description |
The tool automatically considers the direction of links. By default, links are assumed to be **outward**. If the link's description matches the **inward description** from Jira, the tool automatically **reverses the direction**:
148
+
149
+
-**Forward:** Represents downward or child relationships (e.g., `Hierarchy-Forward`).
150
+
-**Reverse:** Represents upward or parent relationships (e.g., `Hierarchy-Reverse`).
151
+
152
+
#### **Example:**
153
+
- If the **inwardDescription** of a link is "is blocked by" (from the "Blocks" link type), the tool will map it as `System.LinkTypes.Hierarchy-Reverse`.
154
+
- Conversely, if the **outwardDescription** is "blocks", it will map as `System.LinkTypes.Hierarchy-Forward`.
155
+
156
+
The tool retrieves the outward and inward descriptions from Jira's project metadata API. In directional or hierarchical link types, **"-Forward"** indicates a downward or child relationship, while **"Reverse-"** indicates an upward or parent relationship. The tool will adjust the link direction accordingly if the description matches the inward description of a given link type.
157
+
158
+
159
+
## 5. I need to obtain a field reference name/link type in Azure DevOps
85
160
86
161
Here is a reference sheet with all of the default fields in Azure DevOps: <https://learn.microsoft.com/en-us/azure/devops/boards/work-items/guidance/work-item-field?view=azure-devops> (click each field to open up the documentation page and view the field reference name).
87
162
88
163
Here is a reference sheet with all of the default link types in Azure DevOps: <https://learn.microsoft.com/en-us/azure/devops/boards/queries/link-type-reference?view=azure-devops>.
89
164
90
-
## 5. Guideline for migrating multiple projects
165
+
## 6. Guideline for migrating multiple projects
91
166
92
167
### Scenario 1: Single project
93
168
@@ -132,7 +207,7 @@ For example, let us say you are migrating the Jira projects A, B and C in sequen
132
207
7. Export project C into **workspaceC**
133
208
8. Import project C1
134
209
135
-
## 6. What is the purpose of the --force flag?
210
+
## 7. What is the purpose of the --force flag?
136
211
137
212
Here you will find a description on what the `--force` flag does under various circumstances.
138
213
@@ -141,7 +216,7 @@ Here you will find a description on what the `--force` flag does under various c
141
216
| Jira Exporter | Items in the migration workspace (local) will be overwritten. | Items already downloaded in the workspace will be skipped. Items in the workspace will remain intact. |[jira-export.md](https://github.com/solidify/jira-azuredevops-migrator/blob/master/docs/jira-export.md)|
142
217
| Work Item Importer | Work Items in ADO will remain intact. New duplicate work items may be created. | Revisions which already have been imported will be skipped. Existing Work Items may be updated with new data if the incoming revisions have not already been imported. |[wi-import.md](https://github.com/solidify/jira-azuredevops-migrator/blob/master/docs/wi-import.md)|
143
218
144
-
## 7. How to migrate custom fields having dropdown lists?
219
+
## 8. How to migrate custom fields having dropdown lists?
145
220
146
221
- To map a custom field which is an dropdown list you can use MapArray mapper to get in a better way.
147
222
Also take a look at the other possible [Mappers](config.md#mappers) to use.
@@ -158,7 +233,7 @@ Example:
158
233
}
159
234
```
160
235
161
-
## 8. How to migrate correct user from Jira to Azure DevOps and assign to the new work items?
236
+
## 9. How to migrate correct user from Jira to Azure DevOps and assign to the new work items?
162
237
163
238
- User mapping differs between Jira Cloud and Jira Server. To migrate users and assign the new work items in Azure DevOps to the same user as the original task had in Jira, we need to add a text file in the root that would look something like this:
## 13. How to omit the Jira issue ID/key in the work item title
352
+
## 14. How to omit the Jira issue ID/key in the work item title
278
353
279
354
By default, the field mapping for `System.Title` will be set up so that the title is prefixed with the Issue key. This can be prevented by omitting the **MapTitle mapper** from the field map in the configuration:
280
355
@@ -295,7 +370,7 @@ Instead of the default:
295
370
}
296
371
```
297
372
298
-
## 14. What are the base-area-path and base-iteration-path properties in the config.json file?
373
+
## 15. What are the base-area-path and base-iteration-path properties in the config.json file?
299
374
300
375
**`base-area-path`:**
301
376
The `base-area-path` property in the migrator configuration specifies the root area path under which all migrated work items will be placed. This path organizes work items into different functional or project areas within Azure DevOps.
@@ -312,7 +387,7 @@ The `base-iteration-path` property defines the root iteration path for the migra
312
387
313
388
In such cases, you may need to create a mapping strategy to translate Jira project components to Azure DevOps area and iteration paths. This might involve some manual configuration and planning to ensure that the migrated work items fit into the desired structure. See the next section in this FAQ for a guide on how to map sprints, iteration paths and area paths.
314
389
315
-
## 15. How to map sprints, iteration paths and area paths
390
+
## 16. How to map sprints, iteration paths and area paths
316
391
317
392
It is possible to do custom mappings of the **Jira Sprints** as **Iteration Paths**, and vice versa for **Area Paths**.
318
393
@@ -371,7 +446,7 @@ This will set the Iteration path correctly. The final path will be like the foll
## 16. How to migrate Development Links (commit, PR, branch)
449
+
## 17. How to migrate Development Links (commit, PR, branch)
375
450
376
451
If you have previously migrated your BitBucket git repositories to your Azure DevOps Server/organization, you can also migrate the development links of the Jira Issues to the corresponding ADO Work Items.
377
452
@@ -393,7 +468,7 @@ In your configuration file, you must specify the following properties:
393
468
394
469
The **repository-map** must contain a key-value lookup table with the names of the Bitbucket git repositories and their translations in ADO.
395
470
396
-
## 17. How to limit the number of issues to be exported during JIRA export (pagination)
471
+
## 18. How to limit the number of issues to be exported during JIRA export (pagination)
397
472
398
473
If you export or the whole migration takes too long, you can achieve something similar to pagination by limiting the export to batches of issues through the `query` property of your `config.json` file. Simply enter a JQL query that filters issues on the `ìd` property, for example:
399
474
@@ -407,7 +482,7 @@ And so on.
407
482
408
483
You can always use the **issues** view in your Jira project to experiment with different JQL queries.
409
484
410
-
## 18. I get https response code 400 and a System.Aggregate Exception with the warning "Failed to get item count using query ...", and no items are exported
485
+
## 19. I get https response code 400 and a System.Aggregate Exception with the warning "Failed to get item count using query ...", and no items are exported
411
486
412
487
The issue is usually a malformed query. Make sure that you have tried all of the following solutions:
413
488
@@ -430,7 +505,7 @@ curl -D-
430
505
"http://johnie:8081/rest/api/2/search"
431
506
```
432
507
433
-
## 19. I get the warning message "VS402625: Dates must be increasing with each revision."
508
+
## 20. I get the warning message "VS402625: Dates must be increasing with each revision."
434
509
435
510
This warning message will show up if the tool attempts to import a subsequent revision with a changedDate that is less than the current changedDate of the current state of the Work Item.
436
511
@@ -454,7 +529,7 @@ Example `config.json`:
454
529
"changeddate-bump-ms": 5,
455
530
```
456
531
457
-
## 20. Sprint names are corrupted. ADO Iteration paths are named "[ synced = false ]"
532
+
## 21. Sprint names are corrupted. ADO Iteration paths are named "[ synced = false ]"
458
533
459
534
The issue is usually that a custom field has been defined in Jira which is also named "Sprint", and the tool is picking up this field instead of the default Srpint field.
460
535
@@ -482,7 +557,7 @@ It could be worth trying this mapping when running against Jira Cloud too:
482
557
483
558
It seems that for jira server, the field IDs can different between different developer instances. You can use the Get Fields endpoint to find out which field ID (customfield_xxxxx) is used by Sprint in your instance: https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#about
0 commit comments