TfsWorkItemMigrationProcessor
Ref
Less than 1 minute to read
2024-09-10 16:11:58 +0000
draft
This page is in draft and may include errors or omissions. Please check the discussions for any pending updates and changes to the content or to suggest your own changes.
WorkItemMigrationConfig is the main processor used to Migrate Work Items, Links, and Attachments. Use WorkItemMigrationConfig
to configure.
Options
Parameter name | Type | Description | Default Value |
AttachRevisionHistory | Boolean | This will create a json file with the revision history and attach it to the work item. Best used with `MaxRevisions` or `ReplayRevisions`. | ? |
Enabled | Boolean | If set to `true` then the processor will run. Set to `false` and the processor will not run. | missng XML code comments |
Enrichers | List | List of Enrichers that can be used to add more features to this processor. Only works with Native Processors and not legacy Processors. | missng XML code comments |
FilterWorkItemsThatAlreadyExistInTarget | Boolean | This loads all of the work items already saved to the Target and removes them from the Source work item list prior to commencing the run. While this may take some time in large data sets it reduces the time of the overall migration significantly if you need to restart. | true |
FixHtmlAttachmentLinks | Boolean | **beta** If enabled this will fix any image attachments URL's, work item mention URL's or user mentions in the HTML fields as well as discussion comments. You must specify a PersonalAccessToken in the Source project for Azure DevOps; TFS should use integrated authentication. | ? |
GenerateMigrationComment | Boolean | If enabled, adds a comment recording the migration | false |
MaxGracefulFailures | Int32 | The maximum number of failures to tolerate before the migration fails. When set above zero, a work item migration error is logged but the migration will continue until the number of failed items reaches the configured value, after which the migration fails. | 0 |
PauseAfterEachWorkItem | Boolean | Pause after each work item is migrated | false |
RefName | String | `Refname` will be used in the future to allow for using named Options without the need to copy all of the options. | missng XML code comments |
SkipRevisionWithInvalidAreaPath | Boolean | When set to true, this setting will skip a revision if the source area has not been migrated, has been deleted or is somehow invalid, etc. | missng XML code comments |
SkipRevisionWithInvalidIterationPath | Boolean | This will skip a revision if the source iteration has not been migrated i.e. it was deleted | missng XML code comments |
SourceName | String | missng XML code comments | missng XML code comments |
TargetName | String | missng XML code comments | missng XML code comments |
UpdateCreatedBy | Boolean | If this is enabled the creation process on the target project will create the items with the original creation date. (Important: The item history is always pointed to the date of the migration, it's change only the data column CreateDate, not the internal create date) | true |
UpdateCreatedDate | Boolean | If this is enabled the creation process on the target project will create the items with the original creation date. (Important: The item history is always pointed to the date of the migration, it's change only the data column CreateDate, not the internal create date) | true |
WIQLQuery | String | A work item query based on WIQL to select only important work items. To migrate all leave this empty. See [WIQL Query Bits](#wiql-query-bits) | SELECT [System.Id] FROM WorkItems WHERE [System.TeamProject] = @TeamProject AND [[System.WorkItemType] NOT IN ('Test Suite', 'Test Plan','Shared Steps','Shared Parameter','Feedback Request') ORDER BY [System.ChangedDate] desc |
WorkItemCreateRetryLimit | Int32 | **beta** If set to a number greater than 0 work items that fail to save will retry after a number of seconds equal to the retry count. This allows for periodic network glitches not to end the process. | 5 |
WorkItemIDs | IList | A list of work items to import | [] |
Examples
defaults
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
{
"MigrationTools": {
"Processors": [
{
"ProcessorType": "TfsWorkItemMigrationProcessor",
"AttachRevisionHistory": "False",
"Enabled": "False",
"FilterWorkItemsThatAlreadyExistInTarget": "False",
"FixHtmlAttachmentLinks": "True",
"GenerateMigrationComment": "True",
"MaxGracefulFailures": "0",
"PauseAfterEachWorkItem": "False",
"SkipRevisionWithInvalidAreaPath": "False",
"SkipRevisionWithInvalidIterationPath": "False",
"SourceName": "Source",
"TargetName": "Target",
"UpdateCreatedBy": "True",
"UpdateCreatedDate": "True",
"WIQLQuery": "SELECT [System.Id] FROM WorkItems WHERE [System.TeamProject] = @TeamProject AND [System.WorkItemType] NOT IN ('Test Suite', 'Test Plan','Shared Steps','Shared Parameter','Feedback Request') ORDER BY [System.ChangedDate] desc",
"WorkItemCreateRetryLimit": "5",
"WorkItemIDs": null
}
]
}
}
sample
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
{
"MigrationTools": {
"Processors": [
{
"ProcessorType": "TfsWorkItemMigrationProcessor",
"AttachRevisionHistory": "False",
"Enabled": "False",
"FilterWorkItemsThatAlreadyExistInTarget": "False",
"FixHtmlAttachmentLinks": "True",
"GenerateMigrationComment": "True",
"MaxGracefulFailures": "0",
"PauseAfterEachWorkItem": "False",
"SkipRevisionWithInvalidAreaPath": "False",
"SkipRevisionWithInvalidIterationPath": "False",
"SourceName": "Source",
"TargetName": "Target",
"UpdateCreatedBy": "True",
"UpdateCreatedDate": "True",
"WIQLQuery": "SELECT [System.Id] FROM WorkItems WHERE [System.TeamProject] = @TeamProject AND [System.WorkItemType] NOT IN ('Test Suite', 'Test Plan','Shared Steps','Shared Parameter','Feedback Request') ORDER BY [System.ChangedDate] desc",
"WorkItemCreateRetryLimit": "5",
"WorkItemIDs": null
}
]
}
}
classic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
"$type": "TfsWorkItemMigrationProcessorOptions",
"Enabled": false,
"UpdateCreatedDate": true,
"UpdateCreatedBy": true,
"WIQLQuery": "SELECT [System.Id] FROM WorkItems WHERE [System.TeamProject] = @TeamProject AND [System.WorkItemType] NOT IN ('Test Suite', 'Test Plan','Shared Steps','Shared Parameter','Feedback Request') ORDER BY [System.ChangedDate] desc",
"FixHtmlAttachmentLinks": true,
"WorkItemCreateRetryLimit": 5,
"FilterWorkItemsThatAlreadyExistInTarget": false,
"PauseAfterEachWorkItem": false,
"AttachRevisionHistory": false,
"GenerateMigrationComment": true,
"WorkItemIDs": null,
"MaxGracefulFailures": 0,
"SkipRevisionWithInvalidIterationPath": false,
"SkipRevisionWithInvalidAreaPath": false,
"Enrichers": null,
"SourceName": "Source",
"TargetName": "Target",
"RefName": null
}