Azure DevOps Migration Tools

v16.0.2

Azure DevOps Migration Tools allow you to migrate Teams, Backlogs, Tasks, Test Cases, and Plans & Suits from one Project to another in Azure DevOps / TFS both within the same Organisation, and between Organisations.

Home
 › 
Learn
 › 
Overview
 › 
Reference
 › 
Processors
 › 
Tfsworkitemmigrationprocessor
Overview

TfsWorkItemMigrationProcessor

Ref

  

Less than 1 minute to read

  

2024-09-10 16:11:58 +0000

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
}
    

...
Getting Support

Community Support

Question & Discussion - The first place to look for usage, configuration, and general help.

Commercial Support

We provide training, ad-hoc support, and full service migrations through Azure DevOps Migration Services