diff --git a/docs/_data/reference.endpoints.azuredevopsendpoint.yaml b/docs/_data/reference.endpoints.azuredevopsendpoint.yaml
index a15680b5f..76e266d5f 100644
--- a/docs/_data/reference.endpoints.azuredevopsendpoint.yaml
+++ b/docs/_data/reference.endpoints.azuredevopsendpoint.yaml
@@ -39,32 +39,32 @@ configurationSamples:
"ReflectedWorkItemIdField": "Custom.ReflectedWorkItemId"
}
sampleFor: MigrationTools.Endpoints.AzureDevOpsEndpointOptions
-description: missing XML code comments
+description: Azure DevOps REST API endpoint implementation for connecting to Azure DevOps organizations. Provides HTTP client access and pipeline-related API operations for migration scenarios.
className: AzureDevOpsEndpoint
typeName: Endpoints
architecture:
options:
- parameterName: AccessToken
type: String
- description: missing XML code comments
+ description: Personal Access Token (PAT) or other authentication token for accessing the Azure DevOps organization. Required for API authentication.
defaultValue: missing XML code comments
- parameterName: AuthenticationMode
type: AuthenticationMode
- description: missing XML code comments
+ description: Authentication mode to use when connecting to Azure DevOps. Typically uses AccessToken for modern Azure DevOps organizations.
defaultValue: missing XML code comments
- parameterName: Organisation
type: String
- description: missing XML code comments
+ description: URL of the Azure DevOps organization (e.g., "https://dev.azure.com/myorganization/"). Must include the full organization URL.
defaultValue: missing XML code comments
- parameterName: Project
type: String
- description: missing XML code comments
+ description: Name of the Azure DevOps project within the organization to connect to. This is the project that will be used for migration operations.
defaultValue: missing XML code comments
- parameterName: ReflectedWorkItemIdField
type: String
- description: missing XML code comments
+ description: Name of the custom field used to store the reflected work item ID for tracking migrated items. Typically "Custom.ReflectedWorkItemId".
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.AzureDevops.Rest/Endpoints/AzureDevOpsEndpoint.cs
-optionsClassFile: /src/MigrationTools.Clients.AzureDevops.Rest/Endpoints/AzureDevOpsEndpointOptions.cs
+classFile: src/MigrationTools.Clients.AzureDevops.Rest/Endpoints/AzureDevOpsEndpoint.cs
+optionsClassFile: src/MigrationTools.Clients.AzureDevops.Rest/Endpoints/AzureDevOpsEndpointOptions.cs
diff --git a/docs/_data/reference.endpoints.filesystemworkitemendpoint.yaml b/docs/_data/reference.endpoints.filesystemworkitemendpoint.yaml
index ec2891dff..d9a3e7dfc 100644
--- a/docs/_data/reference.endpoints.filesystemworkitemendpoint.yaml
+++ b/docs/_data/reference.endpoints.filesystemworkitemendpoint.yaml
@@ -27,9 +27,9 @@ architecture:
options:
- parameterName: FileStore
type: String
- description: missing XML code comments
+ description: Path to the directory where work item data will be stored or read from. This should be a valid local file system path with appropriate read/write permissions.
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.FileSystem/Endpoints/FileSystemWorkItemEndpoint.cs
-optionsClassFile: /src/MigrationTools.Clients.FileSystem/Endpoints/FileSystemWorkItemEndpointOptions.cs
+classFile: src/MigrationTools.Clients.FileSystem/Endpoints/FileSystemWorkItemEndpoint.cs
+optionsClassFile: src/MigrationTools.Clients.FileSystem/Endpoints/FileSystemWorkItemEndpointOptions.cs
diff --git a/docs/_data/reference.endpoints.tfsendpoint.yaml b/docs/_data/reference.endpoints.tfsendpoint.yaml
index c97e736c0..1ca4d5b03 100644
--- a/docs/_data/reference.endpoints.tfsendpoint.yaml
+++ b/docs/_data/reference.endpoints.tfsendpoint.yaml
@@ -97,25 +97,25 @@ architecture:
options:
- parameterName: Authentication
type: TfsAuthenticationOptions
- description: missing XML code comments
+ description: Authentication configuration for connecting to the TFS server. Supports various authentication modes including Windows authentication and access tokens.
defaultValue: missing XML code comments
- parameterName: Collection
type: Uri
- description: missing XML code comments
+ description: URI of the TFS collection (e.g., "http://tfsserver:8080/tfs/DefaultCollection"). Must be a valid absolute URL pointing to the TFS collection.
defaultValue: missing XML code comments
- parameterName: LanguageMaps
type: TfsLanguageMapOptions
- description: missing XML code comments
+ description: Language mapping configuration for translating area and iteration path names between different language versions of TFS.
defaultValue: missing XML code comments
- parameterName: Project
type: String
- description: missing XML code comments
+ description: Name of the TFS project within the collection to connect to. This is the project that will be used for migration operations.
defaultValue: missing XML code comments
- parameterName: ReflectedWorkItemIdField
type: String
- description: missing XML code comments
+ description: Name of the custom field used to store the reflected work item ID for tracking migrated items. Typically "Custom.ReflectedWorkItemId".
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/EndPoints/TfsEndpoint.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/EndPoints/TfsEndpointOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/EndPoints/TfsEndpoint.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/EndPoints/TfsEndpointOptions.cs
diff --git a/docs/_data/reference.endpoints.tfsteamprojectendpoint.yaml b/docs/_data/reference.endpoints.tfsteamprojectendpoint.yaml
index 63e85bac1..ec65a973d 100644
--- a/docs/_data/reference.endpoints.tfsteamprojectendpoint.yaml
+++ b/docs/_data/reference.endpoints.tfsteamprojectendpoint.yaml
@@ -93,25 +93,25 @@ architecture:
options:
- parameterName: Authentication
type: TfsAuthenticationOptions
- description: missing XML code comments
+ description: Authentication configuration for connecting to the TFS server. Supports various authentication modes including Windows authentication and access tokens.
defaultValue: missing XML code comments
- parameterName: Collection
type: Uri
- description: missing XML code comments
+ description: URI of the TFS collection (e.g., "http://tfsserver:8080/tfs/DefaultCollection"). Must be a valid absolute URL pointing to the TFS collection.
defaultValue: missing XML code comments
- parameterName: LanguageMaps
type: TfsLanguageMapOptions
- description: missing XML code comments
+ description: Language mapping configuration for translating area and iteration path names between different language versions of TFS.
defaultValue: missing XML code comments
- parameterName: Project
type: String
- description: missing XML code comments
+ description: Name of the TFS project within the collection to connect to. This is the project that will be used for migration operations.
defaultValue: missing XML code comments
- parameterName: ReflectedWorkItemIdField
type: String
- description: missing XML code comments
+ description: Name of the custom field used to store the reflected work item ID for tracking migrated items. Typically "Custom.ReflectedWorkItemId".
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/EndPoints/TfsTeamProjectEndpoint.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/EndPoints/TfsTeamProjectEndPointOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/EndPoints/TfsTeamProjectEndpoint.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/EndPoints/TfsTeamProjectEndPointOptions.cs
diff --git a/docs/_data/reference.endpoints.tfsteamsettingsendpoint.yaml b/docs/_data/reference.endpoints.tfsteamsettingsendpoint.yaml
index c89d76353..a9d95738e 100644
--- a/docs/_data/reference.endpoints.tfsteamsettingsendpoint.yaml
+++ b/docs/_data/reference.endpoints.tfsteamsettingsendpoint.yaml
@@ -34,25 +34,25 @@ architecture:
options:
- parameterName: Authentication
type: TfsAuthenticationOptions
- description: missing XML code comments
+ description: Authentication configuration for connecting to the TFS server. Supports various authentication modes including Windows authentication and access tokens.
defaultValue: missing XML code comments
- parameterName: Collection
type: Uri
- description: missing XML code comments
+ description: URI of the TFS collection (e.g., "http://tfsserver:8080/tfs/DefaultCollection"). Must be a valid absolute URL pointing to the TFS collection.
defaultValue: missing XML code comments
- parameterName: LanguageMaps
type: TfsLanguageMapOptions
- description: missing XML code comments
+ description: Language mapping configuration for translating area and iteration path names between different language versions of TFS.
defaultValue: missing XML code comments
- parameterName: Project
type: String
- description: missing XML code comments
+ description: Name of the TFS project within the collection to connect to. This is the project that will be used for migration operations.
defaultValue: missing XML code comments
- parameterName: ReflectedWorkItemIdField
type: String
- description: missing XML code comments
+ description: Name of the custom field used to store the reflected work item ID for tracking migrated items. Typically "Custom.ReflectedWorkItemId".
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/EndPoints/TfsTeamSettingsEndpoint.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/EndPoints/TfsTeamSettingsEndpointOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/EndPoints/TfsTeamSettingsEndpoint.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/EndPoints/TfsTeamSettingsEndpointOptions.cs
diff --git a/docs/_data/reference.endpoints.tfsworkitemendpoint.yaml b/docs/_data/reference.endpoints.tfsworkitemendpoint.yaml
index f62426294..234699661 100644
--- a/docs/_data/reference.endpoints.tfsworkitemendpoint.yaml
+++ b/docs/_data/reference.endpoints.tfsworkitemendpoint.yaml
@@ -35,29 +35,29 @@ architecture:
options:
- parameterName: Authentication
type: TfsAuthenticationOptions
- description: missing XML code comments
+ description: Authentication configuration for connecting to the TFS server. Supports various authentication modes including Windows authentication and access tokens.
defaultValue: missing XML code comments
- parameterName: Collection
type: Uri
- description: missing XML code comments
+ description: URI of the TFS collection (e.g., "http://tfsserver:8080/tfs/DefaultCollection"). Must be a valid absolute URL pointing to the TFS collection.
defaultValue: missing XML code comments
- parameterName: LanguageMaps
type: TfsLanguageMapOptions
- description: missing XML code comments
+ description: Language mapping configuration for translating area and iteration path names between different language versions of TFS.
defaultValue: missing XML code comments
- parameterName: Project
type: String
- description: missing XML code comments
+ description: Name of the TFS project within the collection to connect to. This is the project that will be used for migration operations.
defaultValue: missing XML code comments
- parameterName: Query
type: QueryOptions
- description: missing XML code comments
+ description: Gets or sets the query options that define which work items to retrieve from the source endpoint, including WIQL queries and parameters.
defaultValue: missing XML code comments
- parameterName: ReflectedWorkItemIdField
type: String
- description: missing XML code comments
+ description: Name of the custom field used to store the reflected work item ID for tracking migrated items. Typically "Custom.ReflectedWorkItemId".
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/EndPoints/TfsWorkItemEndpoint.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/EndPoints/TfsWorkItemEndpointOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/EndPoints/TfsWorkItemEndpoint.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/EndPoints/TfsWorkItemEndpointOptions.cs
diff --git a/docs/_data/reference.fieldmaps.fieldclearmap.yaml b/docs/_data/reference.fieldmaps.fieldclearmap.yaml
index c0dff37dd..ef4b56b8e 100644
--- a/docs/_data/reference.fieldmaps.fieldclearmap.yaml
+++ b/docs/_data/reference.fieldmaps.fieldclearmap.yaml
@@ -59,7 +59,7 @@ configurationSamples:
]
}
sampleFor: MigrationTools.Tools.FieldClearMapOptions
-description: missing XML code comments
+description: Clears a target field by setting its value to null, useful for removing data from specific fields during migration.
className: FieldClearMap
typeName: FieldMaps
architecture:
@@ -70,9 +70,9 @@ options:
defaultValue: missing XML code comments
- parameterName: targetField
type: String
- description: missing XML code comments
+ description: Gets or sets the name of the target field to be cleared/set to null during work item migration.
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldClearMap.cs
-optionsClassFile: /src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldClearMapOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldClearMap.cs
+optionsClassFile: src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldClearMapOptions.cs
diff --git a/docs/_data/reference.fieldmaps.fieldliteralmap.yaml b/docs/_data/reference.fieldmaps.fieldliteralmap.yaml
index ff51f303d..17d84f8cd 100644
--- a/docs/_data/reference.fieldmaps.fieldliteralmap.yaml
+++ b/docs/_data/reference.fieldmaps.fieldliteralmap.yaml
@@ -61,7 +61,7 @@ configurationSamples:
]
}
sampleFor: MigrationTools.Tools.FieldLiteralMapOptions
-description: missing XML code comments
+description: Maps a literal (static) value to a target field, useful for setting constant values across all migrated work items.
className: FieldLiteralMap
typeName: FieldMaps
architecture:
@@ -72,13 +72,13 @@ options:
defaultValue: missing XML code comments
- parameterName: targetField
type: String
- description: missing XML code comments
+ description: Gets or sets the name of the target field that will be set to the specified literal value.
defaultValue: missing XML code comments
- parameterName: value
type: String
- description: missing XML code comments
+ description: Gets or sets the literal value that will be assigned to the target field during migration.
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldLiteralMap.cs
-optionsClassFile: /src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldLiteralMapOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldLiteralMap.cs
+optionsClassFile: src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldLiteralMapOptions.cs
diff --git a/docs/_data/reference.fieldmaps.fieldmergemap.yaml b/docs/_data/reference.fieldmaps.fieldmergemap.yaml
index 667d8acca..ec54d7693 100644
--- a/docs/_data/reference.fieldmaps.fieldmergemap.yaml
+++ b/docs/_data/reference.fieldmaps.fieldmergemap.yaml
@@ -69,7 +69,7 @@ configurationSamples:
]
}
sampleFor: MigrationTools.Tools.FieldMergeMapOptions
-description: missing XML code comments
+description: Merges values from multiple source fields into a single target field using a specified format template.
className: FieldMergeMap
typeName: FieldMaps
architecture:
@@ -92,5 +92,5 @@ options:
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldMergeMap.cs
-optionsClassFile: /src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldMergeMapOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldMergeMap.cs
+optionsClassFile: src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldMergeMapOptions.cs
diff --git a/docs/_data/reference.fieldmaps.fieldskipmap.yaml b/docs/_data/reference.fieldmaps.fieldskipmap.yaml
index 8230b2e7e..d1f374be7 100644
--- a/docs/_data/reference.fieldmaps.fieldskipmap.yaml
+++ b/docs/_data/reference.fieldmaps.fieldskipmap.yaml
@@ -40,7 +40,7 @@ configurationSamples:
]
}
sampleFor: MigrationTools.Tools.FieldSkipMapOptions
-description: missing XML code comments
+description: Skips field mapping for a specific target field, effectively leaving the field unchanged during migration.
className: FieldSkipMap
typeName: FieldMaps
architecture:
@@ -51,9 +51,9 @@ options:
defaultValue: missing XML code comments
- parameterName: targetField
type: String
- description: missing XML code comments
+ description: Gets or sets the name of the target field that should be skipped during migration, resetting it to its original value.
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldSkipMap.cs
-optionsClassFile: /src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldSkipMapOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldSkipMap.cs
+optionsClassFile: src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldSkipMapOptions.cs
diff --git a/docs/_data/reference.fieldmaps.fieldtofieldmap.yaml b/docs/_data/reference.fieldmaps.fieldtofieldmap.yaml
index ac04009d9..0ba38b5fd 100644
--- a/docs/_data/reference.fieldmaps.fieldtofieldmap.yaml
+++ b/docs/_data/reference.fieldmaps.fieldtofieldmap.yaml
@@ -63,7 +63,7 @@ configurationSamples:
]
}
sampleFor: MigrationTools.Tools.FieldToFieldMapOptions
-description: missing XML code comments
+description: Maps the value from a source field to a target field directly, with optional default value substitution for empty or null values.
className: FieldToFieldMap
typeName: FieldMaps
architecture:
@@ -74,17 +74,17 @@ options:
defaultValue: missing XML code comments
- parameterName: defaultValue
type: String
- description: missing XML code comments
+ description: Gets or sets the default value to use when the source field is empty or null.
defaultValue: missing XML code comments
- parameterName: sourceField
type: String
- description: missing XML code comments
+ description: Gets or sets the name of the source field to copy data from during migration.
defaultValue: missing XML code comments
- parameterName: targetField
type: String
- description: missing XML code comments
+ description: Gets or sets the name of the target field to copy data to during migration.
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldToFieldMap.cs
-optionsClassFile: /src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldtoFieldMapOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldToFieldMap.cs
+optionsClassFile: src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldtoFieldMapOptions.cs
diff --git a/docs/_data/reference.fieldmaps.fieldtofieldmultimap.yaml b/docs/_data/reference.fieldmaps.fieldtofieldmultimap.yaml
index b72af78d3..398b98c20 100644
--- a/docs/_data/reference.fieldmaps.fieldtofieldmultimap.yaml
+++ b/docs/_data/reference.fieldmaps.fieldtofieldmultimap.yaml
@@ -82,5 +82,5 @@ options:
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldtoFieldMultiMap.cs
-optionsClassFile: /src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldtoFieldMultiMapOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldtoFieldMultiMap.cs
+optionsClassFile: src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldtoFieldMultiMapOptions.cs
diff --git a/docs/_data/reference.fieldmaps.fieldtotagfieldmap.yaml b/docs/_data/reference.fieldmaps.fieldtotagfieldmap.yaml
index 705029e76..8f266427a 100644
--- a/docs/_data/reference.fieldmaps.fieldtotagfieldmap.yaml
+++ b/docs/_data/reference.fieldmaps.fieldtotagfieldmap.yaml
@@ -84,5 +84,5 @@ options:
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldToTagFieldMap.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldToTagFieldMap.cs
optionsClassFile: ''
diff --git a/docs/_data/reference.fieldmaps.fieldvaluemap.yaml b/docs/_data/reference.fieldmaps.fieldvaluemap.yaml
index 10a839a45..d4a9dacfe 100644
--- a/docs/_data/reference.fieldmaps.fieldvaluemap.yaml
+++ b/docs/_data/reference.fieldmaps.fieldvaluemap.yaml
@@ -69,7 +69,7 @@ configurationSamples:
]
}
sampleFor: MigrationTools.Tools.FieldValueMapOptions
-description: missing XML code comments
+description: Maps field values based on a lookup table, allowing specific source values to be translated to different target values.
className: FieldValueMap
typeName: FieldMaps
architecture:
@@ -80,21 +80,21 @@ options:
defaultValue: missing XML code comments
- parameterName: defaultValue
type: String
- description: missing XML code comments
+ description: Gets or sets the default value to use when no mapping is found for the source field value.
defaultValue: missing XML code comments
- parameterName: sourceField
type: String
- description: missing XML code comments
+ description: Gets or sets the name of the source field to read values from during migration.
defaultValue: missing XML code comments
- parameterName: targetField
type: String
- description: missing XML code comments
+ description: Gets or sets the name of the target field to write mapped values to during migration.
defaultValue: missing XML code comments
- parameterName: valueMapping
type: Dictionary
- description: missing XML code comments
+ description: Gets or sets the dictionary that maps source field values to target field values. Key is the source value, value is the target value.
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldValueMap.cs
-optionsClassFile: /src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldValueMapOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldValueMap.cs
+optionsClassFile: src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldValueMapOptions.cs
diff --git a/docs/_data/reference.fieldmaps.multivalueconditionalmap.yaml b/docs/_data/reference.fieldmaps.multivalueconditionalmap.yaml
index 0f8006cdd..6508bf43d 100644
--- a/docs/_data/reference.fieldmaps.multivalueconditionalmap.yaml
+++ b/docs/_data/reference.fieldmaps.multivalueconditionalmap.yaml
@@ -92,5 +92,5 @@ options:
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/MultiValueConditionalMap.cs
-optionsClassFile: /src/MigrationTools/Tools/FieldMappingTool/FieldMaps/MultiValueConditionalMapOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/MultiValueConditionalMap.cs
+optionsClassFile: src/MigrationTools/Tools/FieldMappingTool/FieldMaps/MultiValueConditionalMapOptions.cs
diff --git a/docs/_data/reference.fieldmaps.regexfieldmap.yaml b/docs/_data/reference.fieldmaps.regexfieldmap.yaml
index d02593fd8..5c7e97495 100644
--- a/docs/_data/reference.fieldmaps.regexfieldmap.yaml
+++ b/docs/_data/reference.fieldmaps.regexfieldmap.yaml
@@ -65,7 +65,7 @@ configurationSamples:
]
}
sampleFor: MigrationTools.Tools.RegexFieldMapOptions
-description: missing XML code comments
+description: Applies regular expression transformations to map values from a source field to a target field using pattern matching and replacement.
className: RegexFieldMap
typeName: FieldMaps
architecture:
@@ -76,21 +76,21 @@ options:
defaultValue: missing XML code comments
- parameterName: pattern
type: String
- description: missing XML code comments
+ description: Gets or sets the regular expression pattern to match against the source field value.
defaultValue: missing XML code comments
- parameterName: replacement
type: String
- description: missing XML code comments
+ description: Gets or sets the replacement pattern that defines how matched groups should be used to construct the target value.
defaultValue: missing XML code comments
- parameterName: sourceField
type: String
- description: missing XML code comments
+ description: Gets or sets the name of the source field to read data from and apply regex pattern matching.
defaultValue: missing XML code comments
- parameterName: targetField
type: String
- description: missing XML code comments
+ description: Gets or sets the name of the target field to write the regex-transformed data to.
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/RegexFieldMap.cs
-optionsClassFile: /src/MigrationTools/Tools/FieldMappingTool/FieldMaps/RegexFieldMapOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/RegexFieldMap.cs
+optionsClassFile: src/MigrationTools/Tools/FieldMappingTool/FieldMaps/RegexFieldMapOptions.cs
diff --git a/docs/_data/reference.fieldmaps.treetotagfieldmap.yaml b/docs/_data/reference.fieldmaps.treetotagfieldmap.yaml
index 13f1e6209..fa314f3ad 100644
--- a/docs/_data/reference.fieldmaps.treetotagfieldmap.yaml
+++ b/docs/_data/reference.fieldmaps.treetotagfieldmap.yaml
@@ -41,7 +41,7 @@ configurationSamples:
]
}
sampleFor: MigrationTools.Tools.TreeToTagFieldMapOptions
-description: missing XML code comments
+description: Maps work item area path or iteration path hierarchies to tags, allowing tree structures to be represented as flat tag collections.
className: TreeToTagFieldMap
typeName: FieldMaps
architecture:
@@ -52,13 +52,13 @@ options:
defaultValue: missing XML code comments
- parameterName: timeTravel
type: Int32
- description: missing XML code comments
+ description: Gets or sets the number of months to travel back in time when looking up historical area path values. Use 0 for current values.
defaultValue: missing XML code comments
- parameterName: toSkip
type: Int32
- description: missing XML code comments
+ description: Gets or sets the number of levels to skip from the root when converting area path hierarchy to tags. For example, if set to 2, "ProjectName\Level1\Level2\Level3" would skip "ProjectName\Level1" and start from "Level2".
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/TreeToTagFieldMap.cs
-optionsClassFile: /src/MigrationTools/Tools/FieldMappingTool/FieldMaps/TreeToTagFieldMapOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/TreeToTagFieldMap.cs
+optionsClassFile: src/MigrationTools/Tools/FieldMappingTool/FieldMaps/TreeToTagFieldMapOptions.cs
diff --git a/docs/_data/reference.processorenrichers.pauseaftereachitem.yaml b/docs/_data/reference.processorenrichers.pauseaftereachitem.yaml
index 0c418777f..c5d39db87 100644
--- a/docs/_data/reference.processorenrichers.pauseaftereachitem.yaml
+++ b/docs/_data/reference.processorenrichers.pauseaftereachitem.yaml
@@ -41,5 +41,5 @@ options:
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools/Processors/Enrichers/PauseAfterEachItem.cs
-optionsClassFile: /src/MigrationTools/Processors/Enrichers/PauseAfterEachItemOptions.cs
+classFile: src/MigrationTools/Processors/Enrichers/PauseAfterEachItem.cs
+optionsClassFile: src/MigrationTools/Processors/Enrichers/PauseAfterEachItemOptions.cs
diff --git a/docs/_data/reference.processors.azuredevopspipelineprocessor.yaml b/docs/_data/reference.processors.azuredevopspipelineprocessor.yaml
index 3b81ceab9..54fd30948 100644
--- a/docs/_data/reference.processors.azuredevopspipelineprocessor.yaml
+++ b/docs/_data/reference.processors.azuredevopspipelineprocessor.yaml
@@ -65,7 +65,7 @@ configurationSamples:
"MigrateServiceConnections": true,
"BuildPipelines": null,
"ReleasePipelines": null,
- "RepositoryNameMaps": null,
+ "RepositoryNameMaps": {},
"SourceName": "sourceName",
"TargetName": "targetName"
}
@@ -101,7 +101,7 @@ options:
defaultValue: true
- parameterName: MigrateVariableGroups
type: Boolean
- description: Migrate Valiable Groups
+ description: Migrate Variable Groups
defaultValue: true
- parameterName: ReleasePipelines
type: List
@@ -121,5 +121,5 @@ options:
defaultValue: missing XML code comments
status: Beta
processingTarget: Pipelines
-classFile: /src/MigrationTools.Clients.AzureDevops.Rest/Processors/AzureDevOpsPipelineProcessor.cs
-optionsClassFile: /src/MigrationTools.Clients.AzureDevops.Rest/Processors/AzureDevOpsPipelineProcessorOptions.cs
+classFile: src/MigrationTools.Clients.AzureDevops.Rest/Processors/AzureDevOpsPipelineProcessor.cs
+optionsClassFile: src/MigrationTools.Clients.AzureDevops.Rest/Processors/AzureDevOpsPipelineProcessorOptions.cs
diff --git a/docs/_data/reference.processors.keepoutboundlinktargetprocessor.yaml b/docs/_data/reference.processors.keepoutboundlinktargetprocessor.yaml
index cfd275e83..8dfe8fb6d 100644
--- a/docs/_data/reference.processors.keepoutboundlinktargetprocessor.yaml
+++ b/docs/_data/reference.processors.keepoutboundlinktargetprocessor.yaml
@@ -20,7 +20,7 @@ configurationSamples:
"Enabled": false,
"WIQLQuery": "Select [System.Id] From WorkItems Where [System.TeamProject] = @project and not [System.WorkItemType] contains 'Test Suite, Test Plan,Shared Steps,Shared Parameter,Feedback Request'",
"TargetLinksToKeepOrganization": "https://dev.azure.com/nkdagility",
- "TargetLinksToKeepProject": "332b7ec5-b938-4c13-8ab4-06d6c70ea68a",
+ "TargetLinksToKeepProject": "8950f163-3d8d-48d4-b14a-b7b250903fe1",
"CleanupFileName": "c:/temp/OutboundLinkTargets.bat",
"PrependCommand": "start",
"DryRun": true,
@@ -35,11 +35,11 @@ architecture:
options:
- parameterName: CleanupFileName
type: String
- description: missing XML code comments
+ description: File path where the cleanup script or batch file will be generated for removing unwanted outbound links.
defaultValue: missing XML code comments
- parameterName: DryRun
type: Boolean
- description: missing XML code comments
+ description: When true, performs a dry run without making actual changes, only generating the cleanup script for review.
defaultValue: missing XML code comments
- parameterName: Enabled
type: Boolean
@@ -47,7 +47,7 @@ options:
defaultValue: missing XML code comments
- parameterName: PrependCommand
type: String
- description: missing XML code comments
+ description: Command to prepend to each line in the cleanup script, such as "start" for Windows batch files.
defaultValue: missing XML code comments
- parameterName: SourceName
type: String
@@ -55,11 +55,11 @@ options:
defaultValue: missing XML code comments
- parameterName: TargetLinksToKeepOrganization
type: String
- description: missing XML code comments
+ description: URL of the Azure DevOps organization whose links should be preserved during cleanup operations.
defaultValue: missing XML code comments
- parameterName: TargetLinksToKeepProject
type: String
- description: missing XML code comments
+ description: Project name or GUID within the target organization whose links should be preserved.
defaultValue: missing XML code comments
- parameterName: TargetName
type: String
@@ -67,9 +67,9 @@ options:
defaultValue: missing XML code comments
- parameterName: WIQLQuery
type: String
- description: missing XML code comments
+ description: WIQL (Work Item Query Language) query used to select the work items whose outbound links should be processed for preservation.
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.AzureDevops.Rest/Processors/KeepOutboundLinkTargetProcessor.cs
-optionsClassFile: /src/MigrationTools.Clients.AzureDevops.Rest/Processors/KeepOutboundLinkTargetProcessorOptions.cs
+classFile: src/MigrationTools.Clients.AzureDevops.Rest/Processors/KeepOutboundLinkTargetProcessor.cs
+optionsClassFile: src/MigrationTools.Clients.AzureDevops.Rest/Processors/KeepOutboundLinkTargetProcessorOptions.cs
diff --git a/docs/_data/reference.processors.outboundlinkcheckingprocessor.yaml b/docs/_data/reference.processors.outboundlinkcheckingprocessor.yaml
index e6d9a98ef..cd2d5aff5 100644
--- a/docs/_data/reference.processors.outboundlinkcheckingprocessor.yaml
+++ b/docs/_data/reference.processors.outboundlinkcheckingprocessor.yaml
@@ -35,7 +35,7 @@ options:
defaultValue: missing XML code comments
- parameterName: ResultFileName
type: String
- description: missing XML code comments
+ description: File name where the results of the outbound link checking process will be saved, typically containing details of broken or invalid links.
defaultValue: missing XML code comments
- parameterName: SourceName
type: String
@@ -47,9 +47,9 @@ options:
defaultValue: missing XML code comments
- parameterName: WIQLQuery
type: String
- description: missing XML code comments
+ description: WIQL (Work Item Query Language) query used to select the work items whose outbound links should be checked for validity.
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.AzureDevops.Rest/Processors/OutboundLinkCheckingProcessor.cs
-optionsClassFile: /src/MigrationTools.Clients.AzureDevops.Rest/Processors/OutboundLinkCheckingProcessorOptions.cs
+classFile: src/MigrationTools.Clients.AzureDevops.Rest/Processors/OutboundLinkCheckingProcessor.cs
+optionsClassFile: src/MigrationTools.Clients.AzureDevops.Rest/Processors/OutboundLinkCheckingProcessorOptions.cs
diff --git a/docs/_data/reference.processors.processdefinitionprocessor.yaml b/docs/_data/reference.processors.processdefinitionprocessor.yaml
index c9d5514a3..2e37d63bd 100644
--- a/docs/_data/reference.processors.processdefinitionprocessor.yaml
+++ b/docs/_data/reference.processors.processdefinitionprocessor.yaml
@@ -37,15 +37,15 @@ options:
defaultValue: missing XML code comments
- parameterName: MaxDegreeOfParallelism
type: Int32
- description: missing XML code comments
+ description: Maximum number of parallel operations to execute simultaneously during process definition migration to optimize performance.
defaultValue: missing XML code comments
- parameterName: Processes
type: Dictionary
- description: missing XML code comments
+ description: Dictionary mapping process names to lists of work item type names to be included in the migration. If null, all work item types will be migrated.
defaultValue: missing XML code comments
- parameterName: ProcessMaps
type: Dictionary
- description: missing XML code comments
+ description: Dictionary mapping source process names to target process names for process template transformations during migration.
defaultValue: missing XML code comments
- parameterName: SourceName
type: String
@@ -57,9 +57,9 @@ options:
defaultValue: missing XML code comments
- parameterName: UpdateProcessDetails
type: Boolean
- description: missing XML code comments
+ description: Indicates whether to update existing process details in the target organization or only create new processes.
defaultValue: missing XML code comments
status: Beta
processingTarget: Pipelines
-classFile: /src/MigrationTools.Clients.AzureDevops.Rest/Processors/ProcessDefinitionProcessor.cs
-optionsClassFile: /src/MigrationTools.Clients.AzureDevops.Rest/Processors/ProcessDefinitionProcessorOptions.cs
+classFile: src/MigrationTools.Clients.AzureDevops.Rest/Processors/ProcessDefinitionProcessor.cs
+optionsClassFile: src/MigrationTools.Clients.AzureDevops.Rest/Processors/ProcessDefinitionProcessorOptions.cs
diff --git a/docs/_data/reference.processors.tfsexportprofilepicturefromadprocessor.yaml b/docs/_data/reference.processors.tfsexportprofilepicturefromadprocessor.yaml
index b9fb8df90..3f402b02e 100644
--- a/docs/_data/reference.processors.tfsexportprofilepicturefromadprocessor.yaml
+++ b/docs/_data/reference.processors.tfsexportprofilepicturefromadprocessor.yaml
@@ -61,5 +61,5 @@ options:
defaultValue: String.Empty
status: alpha
processingTarget: Profiles
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsExportProfilePictureFromADProcessor.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsExportProfilePictureFromADProcessorOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsExportProfilePictureFromADProcessor.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsExportProfilePictureFromADProcessorOptions.cs
diff --git a/docs/_data/reference.processors.tfsexportusersformappingprocessor.yaml b/docs/_data/reference.processors.tfsexportusersformappingprocessor.yaml
index aa59d2d0c..cfc2eb254 100644
--- a/docs/_data/reference.processors.tfsexportusersformappingprocessor.yaml
+++ b/docs/_data/reference.processors.tfsexportusersformappingprocessor.yaml
@@ -20,6 +20,8 @@ configurationSamples:
"Enabled": false,
"WIQLQuery": null,
"OnlyListUsersInWorkItems": true,
+ "ExportAllUsers": false,
+ "UserExportFile": null,
"SourceName": null,
"TargetName": null
}
@@ -33,10 +35,14 @@ options:
type: Boolean
description: If set to `true` then the processor will run. Set to `false` and the processor will not run.
defaultValue: missing XML code comments
-- parameterName: OnlyListUsersInWorkItems
+- parameterName: ExportAllUsers
type: Boolean
- description: missing XML code comments
+ description: Set to , if you want to export all users in source and target server. The lists of user can be useful, if you need tu manually edit mapping file. Users will be exported to file set in .
defaultValue: missing XML code comments
+- parameterName: OnlyListUsersInWorkItems
+ type: Boolean
+ description: '`OnlyListUsersInWorkItems`'
+ defaultValue: true
- parameterName: SourceName
type: String
description: missing XML code comments
@@ -45,11 +51,15 @@ options:
type: String
description: missing XML code comments
defaultValue: missing XML code comments
+- parameterName: UserExportFile
+ type: String
+ description: Path to export file where all source and target servers' users will be exported. Users are exported only if is set to .
+ defaultValue: missing XML code comments
- parameterName: WIQLQuery
type: String
- description: missing XML code comments
+ description: WIQL (Work Item Query Language) query used to select the work items from which user information should be extracted.
defaultValue: missing XML code comments
status: ready
processingTarget: Work Items
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsExportUsersForMappingProcessor.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsExportUsersForMappingProcessorOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsExportUsersForMappingProcessor.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsExportUsersForMappingProcessorOptions.cs
diff --git a/docs/_data/reference.processors.tfsimportprofilepictureprocessor.yaml b/docs/_data/reference.processors.tfsimportprofilepictureprocessor.yaml
index 2dfeb08d7..5f479a69f 100644
--- a/docs/_data/reference.processors.tfsimportprofilepictureprocessor.yaml
+++ b/docs/_data/reference.processors.tfsimportprofilepictureprocessor.yaml
@@ -41,5 +41,5 @@ options:
defaultValue: missing XML code comments
status: alpha
processingTarget: Profiles
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsImportProfilePictureProcessor.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsImportProfilePictureProcessorOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsImportProfilePictureProcessor.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsImportProfilePictureProcessorOptions.cs
diff --git a/docs/_data/reference.processors.tfssharedqueryprocessor.yaml b/docs/_data/reference.processors.tfssharedqueryprocessor.yaml
index 69afccc25..ed16864c6 100644
--- a/docs/_data/reference.processors.tfssharedqueryprocessor.yaml
+++ b/docs/_data/reference.processors.tfssharedqueryprocessor.yaml
@@ -56,5 +56,5 @@ options:
defaultValue: missing XML code comments
status: Beta
processingTarget: Queries
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsSharedQueryProcessor.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsSharedQueryProcessorOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsSharedQueryProcessor.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsSharedQueryProcessorOptions.cs
diff --git a/docs/_data/reference.processors.tfsteamsettingsprocessor.yaml b/docs/_data/reference.processors.tfsteamsettingsprocessor.yaml
index a9349bbbf..a5d73cd1a 100644
--- a/docs/_data/reference.processors.tfsteamsettingsprocessor.yaml
+++ b/docs/_data/reference.processors.tfsteamsettingsprocessor.yaml
@@ -23,6 +23,7 @@ configurationSamples:
"PrefixProjectToNodes": false,
"MigrateTeamCapacities": false,
"Teams": null,
+ "UseUserMapping": false,
"SourceName": null,
"TargetName": null
}
@@ -64,7 +65,11 @@ options:
type: Boolean
description: Reset the target team settings to match the source if the team exists
defaultValue: false
+- parameterName: UseUserMapping
+ type: Boolean
+ description: Use user mapping file from TfsTeamSettingsTool when matching users when migrating capacities. By default, users in source are matched in target users by current display name. When this is set to `true`, users are matched also by mapped name from user mapping file.
+ defaultValue: missing XML code comments
status: Beta
processingTarget: Teams
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTeamSettingsProcessor.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTeamSettingsProcessorOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTeamSettingsProcessor.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTeamSettingsProcessorOptions.cs
diff --git a/docs/_data/reference.processors.tfstestconfigurationsmigrationprocessor.yaml b/docs/_data/reference.processors.tfstestconfigurationsmigrationprocessor.yaml
index 968646c69..f9cca75ab 100644
--- a/docs/_data/reference.processors.tfstestconfigurationsmigrationprocessor.yaml
+++ b/docs/_data/reference.processors.tfstestconfigurationsmigrationprocessor.yaml
@@ -41,5 +41,5 @@ options:
defaultValue: missing XML code comments
status: Beta
processingTarget: Suites & Plans
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTestConfigurationsMigrationProcessor.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTestConfigurationsMigrationProcessorOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTestConfigurationsMigrationProcessor.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTestConfigurationsMigrationProcessorOptions.cs
diff --git a/docs/_data/reference.processors.tfstestplansandsuitesmigrationprocessor.yaml b/docs/_data/reference.processors.tfstestplansandsuitesmigrationprocessor.yaml
index dce4cf7ab..47f5d89dd 100644
--- a/docs/_data/reference.processors.tfstestplansandsuitesmigrationprocessor.yaml
+++ b/docs/_data/reference.processors.tfstestplansandsuitesmigrationprocessor.yaml
@@ -24,6 +24,7 @@ configurationSamples:
"MigrationDelay": 0,
"RemoveInvalidTestSuiteLinks": false,
"FilterCompleted": false,
+ "TestPlanIds": [],
"SourceName": null,
"TargetName": null
}
@@ -65,11 +66,15 @@ options:
type: String
description: missing XML code comments
defaultValue: missing XML code comments
+- parameterName: TestPlanIds
+ type: Int32[]
+ description: 'This flag filters all test plans and retains only the specified ones for migration. Pass the test plan IDs as an array. Example: "TestPlanIds": [123, 456, 789] Works optimally when "TestPlanQuery" is set to null.'
+ defaultValue: missing XML code comments
- parameterName: TestPlanQuery
type: String
description: Filtering conditions to decide whether to migrate a test plan or not. When provided, this partial query is added after `Select * From TestPlan Where` when selecting test plans. Among filtering options, `AreaPath`, `PlanName` and `PlanState` are known to work. There is unfortunately no documentation regarding the available fields.
defaultValue: '`String.Empty`'
status: Beta
processingTarget: Suites & Plans
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTestPlansAndSuitesMigrationProcessor.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTestPlansAndSuitesMigrationProcessorOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTestPlansAndSuitesMigrationProcessor.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTestPlansAndSuitesMigrationProcessorOptions.cs
diff --git a/docs/_data/reference.processors.tfstestvariablesmigrationprocessor.yaml b/docs/_data/reference.processors.tfstestvariablesmigrationprocessor.yaml
index dbaefea61..8d43fb3b3 100644
--- a/docs/_data/reference.processors.tfstestvariablesmigrationprocessor.yaml
+++ b/docs/_data/reference.processors.tfstestvariablesmigrationprocessor.yaml
@@ -30,11 +30,11 @@ architecture:
options:
- parameterName: Enabled
type: Boolean
- description: missing XML code comments
+ description: If set to `true` then the processor will run. Set to `false` and the processor will not run.
defaultValue: missing XML code comments
- parameterName: Processor
type: String
- description: missing XML code comments
+ description: Gets the processor identifier for test variables migration.
defaultValue: missing XML code comments
- parameterName: SourceName
type: String
@@ -46,5 +46,5 @@ options:
defaultValue: missing XML code comments
status: Beta
processingTarget: Suites & Plans
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTestVariablesMigrationProcessor.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTestVariablesMigrationProcessorOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTestVariablesMigrationProcessor.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTestVariablesMigrationProcessorOptions.cs
diff --git a/docs/_data/reference.processors.tfsworkitembulkeditprocessor.yaml b/docs/_data/reference.processors.tfsworkitembulkeditprocessor.yaml
index d30978e8e..5634184f3 100644
--- a/docs/_data/reference.processors.tfsworkitembulkeditprocessor.yaml
+++ b/docs/_data/reference.processors.tfsworkitembulkeditprocessor.yaml
@@ -28,7 +28,7 @@ configurationSamples:
"TargetName": null
}
sampleFor: MigrationTools._EngineV1.Configuration.Processing.TfsWorkItemBulkEditProcessorOptions
-description: This processor allows you to make changes in place where we load from teh Target and update the Target. This is used for bulk updates with the most common reason being a process template change.
+description: This processor allows you to make changes in place where we load from the Target and update the Target. This is used for bulk updates with the most common reason being a process template change.
className: TfsWorkItemBulkEditProcessor
typeName: Processors
architecture:
@@ -55,8 +55,8 @@ options:
defaultValue: missing XML code comments
- parameterName: WhatIf
type: Boolean
- description: missing XML code comments
- defaultValue: missing XML code comments
+ description: Gets or sets a value indicating whether to run in "what if" mode without making actual changes to work items.
+ defaultValue: false
- parameterName: WIQLQuery
type: String
description: 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)
@@ -71,5 +71,5 @@ options:
defaultValue: '[]'
status: missing XML code comments
processingTarget: WorkItem
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemBulkEditProcessor.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemBulkEditProcessorOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemBulkEditProcessor.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemBulkEditProcessorOptions.cs
diff --git a/docs/_data/reference.processors.tfsworkitemdeleteprocessor.yaml b/docs/_data/reference.processors.tfsworkitemdeleteprocessor.yaml
index 420afd6a4..4679fcbb9 100644
--- a/docs/_data/reference.processors.tfsworkitemdeleteprocessor.yaml
+++ b/docs/_data/reference.processors.tfsworkitemdeleteprocessor.yaml
@@ -38,11 +38,11 @@ options:
defaultValue: missing XML code comments
- parameterName: FilterWorkItemsThatAlreadyExistInTarget
type: Boolean
- description: missing XML code comments
+ description: Gets or sets a value indicating whether to filter out work items that already exist in the target before deletion. Typically used to avoid deleting items that shouldn't be removed.
defaultValue: missing XML code comments
- parameterName: PauseAfterEachWorkItem
type: Boolean
- description: missing XML code comments
+ description: Gets or sets a value indicating whether to pause after each work item is deleted for review or debugging purposes.
defaultValue: missing XML code comments
- parameterName: SourceName
type: String
@@ -54,17 +54,17 @@ options:
defaultValue: missing XML code comments
- parameterName: WIQLQuery
type: String
- description: missing XML code comments
- defaultValue: missing XML code comments
+ description: Gets or sets the WIQL query used to select work items for deletion. Should return a list of work item IDs.
+ defaultValue: 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
- parameterName: WorkItemCreateRetryLimit
type: Int32
- description: missing XML code comments
+ description: Gets or sets the number of retry attempts for work item deletion operations when they fail due to transient errors.
defaultValue: missing XML code comments
- parameterName: WorkItemIDs
type: IList
- description: missing XML code comments
+ description: Gets or sets a specific list of work item IDs to delete. When specified, takes precedence over the WIQL query.
defaultValue: missing XML code comments
status: ready
processingTarget: WorkItem
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemDeleteProcessor.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemDeleteProcessorOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemDeleteProcessor.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemDeleteProcessorOptions.cs
diff --git a/docs/_data/reference.processors.tfsworkitemmigrationprocessor.yaml b/docs/_data/reference.processors.tfsworkitemmigrationprocessor.yaml
index 54bc6067e..df8fa2fbe 100644
--- a/docs/_data/reference.processors.tfsworkitemmigrationprocessor.yaml
+++ b/docs/_data/reference.processors.tfsworkitemmigrationprocessor.yaml
@@ -117,5 +117,5 @@ options:
defaultValue: 5
status: ready
processingTarget: Work Items
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemMigrationProcessor.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemMigrationProcessorOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemMigrationProcessor.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemMigrationProcessorOptions.cs
diff --git a/docs/_data/reference.processors.tfsworkitemoverwriteareasastagsprocessor.yaml b/docs/_data/reference.processors.tfsworkitemoverwriteareasastagsprocessor.yaml
index a8009e4f7..091eb0c93 100644
--- a/docs/_data/reference.processors.tfsworkitemoverwriteareasastagsprocessor.yaml
+++ b/docs/_data/reference.processors.tfsworkitemoverwriteareasastagsprocessor.yaml
@@ -31,7 +31,7 @@ options:
- parameterName: AreaIterationPath
type: String
description: This is a required parameter. That define the root path of the iteration. To get the full path use `\`
- defaultValue: '\'
+ defaultValue: \
- parameterName: Enabled
type: Boolean
description: If set to `true` then the processor will run. Set to `false` and the processor will not run.
@@ -46,5 +46,5 @@ options:
defaultValue: missing XML code comments
status: Beta
processingTarget: Work Item
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemOverwriteAreasAsTagsProcessor.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemOverwriteAreasAsTagsProcessorOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemOverwriteAreasAsTagsProcessor.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemOverwriteAreasAsTagsProcessorOptions.cs
diff --git a/docs/_data/reference.processors.tfsworkitemoverwriteprocessor.yaml b/docs/_data/reference.processors.tfsworkitemoverwriteprocessor.yaml
index 096b4abfe..3fa8af577 100644
--- a/docs/_data/reference.processors.tfsworkitemoverwriteprocessor.yaml
+++ b/docs/_data/reference.processors.tfsworkitemoverwriteprocessor.yaml
@@ -27,7 +27,7 @@ configurationSamples:
"TargetName": null
}
sampleFor: MigrationTools.Processors.TfsWorkItemOverwriteProcessorOptions
-description: Reapply field mappings after a migration. Does not migtate Work Items, only reapplied changes to filed mappings.
+description: Reapply field mappings after a migration. Does not migrate Work Items, only reapplies changes to field mappings.
className: TfsWorkItemOverwriteProcessor
typeName: Processors
architecture:
@@ -66,5 +66,5 @@ options:
defaultValue: '[]'
status: preview
processingTarget: Work Items
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemOverwriteProcessor.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemOverwriteProcessorOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemOverwriteProcessor.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemOverwriteProcessorOptions.cs
diff --git a/docs/_data/reference.processors.workitemtrackingprocessor.yaml b/docs/_data/reference.processors.workitemtrackingprocessor.yaml
index 8d17cbf39..aa66e76c0 100644
--- a/docs/_data/reference.processors.workitemtrackingprocessor.yaml
+++ b/docs/_data/reference.processors.workitemtrackingprocessor.yaml
@@ -32,7 +32,7 @@ architecture:
options:
- parameterName: CollapseRevisions
type: Boolean
- description: missing XML code comments
+ description: Gets or sets a value indicating whether to collapse revisions into a single work item.
defaultValue: missing XML code comments
- parameterName: Enabled
type: Boolean
@@ -40,7 +40,7 @@ options:
defaultValue: missing XML code comments
- parameterName: ReplayRevisions
type: Boolean
- description: missing XML code comments
+ description: Gets or sets a value indicating whether to replay all revisions during migration.
defaultValue: missing XML code comments
- parameterName: SourceName
type: String
@@ -52,9 +52,9 @@ options:
defaultValue: missing XML code comments
- parameterName: WorkItemCreateRetryLimit
type: Int32
- description: missing XML code comments
+ description: Gets or sets the number of times to retry work item creation if it fails.
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools/Processors/WorkItemTrackingProcessor.cs
-optionsClassFile: /src/MigrationTools/Processors/WorkItemTrackingProcessorOptions.cs
+classFile: src/MigrationTools/Processors/WorkItemTrackingProcessor.cs
+optionsClassFile: src/MigrationTools/Processors/WorkItemTrackingProcessorOptions.cs
diff --git a/docs/_data/reference.tools.fieldmappingtool.yaml b/docs/_data/reference.tools.fieldmappingtool.yaml
index 407ad565a..0c433051c 100644
--- a/docs/_data/reference.tools.fieldmappingtool.yaml
+++ b/docs/_data/reference.tools.fieldmappingtool.yaml
@@ -200,7 +200,7 @@ configurationSamples:
"FieldMaps": []
}
sampleFor: MigrationTools.Tools.FieldMappingToolOptions
-description: missing XML code comments
+description: Tool for applying field mapping transformations to work items during migration, supporting various field mapping strategies like direct mapping, regex transformations, and value lookups.
className: FieldMappingTool
typeName: Tools
architecture:
@@ -211,9 +211,9 @@ options:
defaultValue: missing XML code comments
- parameterName: FieldMaps
type: List
- description: missing XML code comments
+ description: Gets or sets the list of field mapping configurations to apply.
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools/Tools/FieldMappingTool.cs
-optionsClassFile: /src/MigrationTools/Tools/FieldMappingToolOptions.cs
+classFile: src/MigrationTools/Tools/FieldMappingTool.cs
+optionsClassFile: src/MigrationTools/Tools/FieldMappingToolOptions.cs
diff --git a/docs/_data/reference.tools.stringmanipulatortool.yaml b/docs/_data/reference.tools.stringmanipulatortool.yaml
index 3cc0780fb..94c8f7f04 100644
--- a/docs/_data/reference.tools.stringmanipulatortool.yaml
+++ b/docs/_data/reference.tools.stringmanipulatortool.yaml
@@ -80,5 +80,5 @@ options:
defaultValue: 1000000
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools/Tools/StringManipulatorTool.cs
-optionsClassFile: /src/MigrationTools/Tools/StringManipulatorToolOptions.cs
+classFile: src/MigrationTools/Tools/StringManipulatorTool.cs
+optionsClassFile: src/MigrationTools/Tools/StringManipulatorToolOptions.cs
diff --git a/docs/_data/reference.tools.tfsattachmenttool.yaml b/docs/_data/reference.tools.tfsattachmenttool.yaml
index 5f63321fe..91f48faca 100644
--- a/docs/_data/reference.tools.tfsattachmenttool.yaml
+++ b/docs/_data/reference.tools.tfsattachmenttool.yaml
@@ -48,7 +48,7 @@ configurationSamples:
"MaxAttachmentSize": 480000000
}
sampleFor: MigrationTools.Tools.TfsAttachmentToolOptions
-description: missing XML code comments
+description: Tool for processing and migrating work item attachments between Team Foundation Server instances, handling file downloads, uploads, and attachment metadata.
className: TfsAttachmentTool
typeName: Tools
architecture:
@@ -67,5 +67,5 @@ options:
defaultValue: 480000000
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsAttachmentTool.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsAttachmentToolOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsAttachmentTool.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsAttachmentToolOptions.cs
diff --git a/docs/_data/reference.tools.tfschangesetmappingtool.yaml b/docs/_data/reference.tools.tfschangesetmappingtool.yaml
index cbfa4e7e6..0e3b543fb 100644
--- a/docs/_data/reference.tools.tfschangesetmappingtool.yaml
+++ b/docs/_data/reference.tools.tfschangesetmappingtool.yaml
@@ -58,5 +58,5 @@ options:
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsChangeSetMappingTool.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsChangeSetMappingToolOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsChangeSetMappingTool.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsChangeSetMappingToolOptions.cs
diff --git a/docs/_data/reference.tools.tfsembededimagestool.yaml b/docs/_data/reference.tools.tfsembededimagestool.yaml
index cbe503c35..e61a66e33 100644
--- a/docs/_data/reference.tools.tfsembededimagestool.yaml
+++ b/docs/_data/reference.tools.tfsembededimagestool.yaml
@@ -51,5 +51,5 @@ options:
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsEmbededImagesTool.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsEmbededImagesToolOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsEmbededImagesTool.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsEmbededImagesToolOptions.cs
diff --git a/docs/_data/reference.tools.tfsgitrepositorytool.yaml b/docs/_data/reference.tools.tfsgitrepositorytool.yaml
index bcc99f6cc..72b3f7819 100644
--- a/docs/_data/reference.tools.tfsgitrepositorytool.yaml
+++ b/docs/_data/reference.tools.tfsgitrepositorytool.yaml
@@ -42,6 +42,7 @@ configurationSamples:
{
"$type": "TfsGitRepositoryToolOptions",
"Enabled": true,
+ "ShouldDropChangedSetLinks": false,
"Mappings": {
"RepoInSource": "RepoInTarget"
}
@@ -58,9 +59,13 @@ options:
defaultValue: missing XML code comments
- parameterName: Mappings
type: Dictionary
- description: List of work item mappings.
+ description: Dictionary mapping source repository names to target repository names. Used to update Git repository links and references in work items during migration.
defaultValue: '{}'
+- parameterName: ShouldDropChangedSetLinks
+ type: Boolean
+ description: When set to true, changeset links in work items will be removed during migration to prevent broken links when repositories are not migrated.
+ defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsGitRepositoryTool.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsGitRepositoryToolOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsGitRepositoryTool.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsGitRepositoryToolOptions.cs
diff --git a/docs/_data/reference.tools.tfsnodestructuretool.yaml b/docs/_data/reference.tools.tfsnodestructuretool.yaml
index e296195b1..a403703a2 100644
--- a/docs/_data/reference.tools.tfsnodestructuretool.yaml
+++ b/docs/_data/reference.tools.tfsnodestructuretool.yaml
@@ -96,7 +96,7 @@ configurationSamples:
"ReplicateAllExistingNodes": true
}
sampleFor: MigrationTools.Tools.TfsNodeStructureToolOptions
-description: The TfsNodeStructureToolEnricher is used to create missing nodes in the target project. To configure it add a `TfsNodeStructureToolOptions` section to `CommonEnrichersConfig` in the config file. Otherwise defaults will be applied.
+description: Tool for creating missing area and iteration path nodes in the target project during migration. Configurable through TfsNodeStructureToolOptions to specify which node types to create.
className: TfsNodeStructureTool
typeName: Tools
architecture:
@@ -123,5 +123,5 @@ options:
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsNodeStructureTool.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsNodeStructureToolOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsNodeStructureTool.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsNodeStructureToolOptions.cs
diff --git a/docs/_data/reference.tools.tfsrevisionmanagertool.yaml b/docs/_data/reference.tools.tfsrevisionmanagertool.yaml
index 034a1d10d..36dc1f3cd 100644
--- a/docs/_data/reference.tools.tfsrevisionmanagertool.yaml
+++ b/docs/_data/reference.tools.tfsrevisionmanagertool.yaml
@@ -65,5 +65,5 @@ options:
defaultValue: true
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsRevisionManagerTool.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsRevisionManagerToolOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsRevisionManagerTool.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsRevisionManagerToolOptions.cs
diff --git a/docs/_data/reference.tools.tfsteamsettingstool.yaml b/docs/_data/reference.tools.tfsteamsettingstool.yaml
index 43b14db48..3ee946172 100644
--- a/docs/_data/reference.tools.tfsteamsettingstool.yaml
+++ b/docs/_data/reference.tools.tfsteamsettingstool.yaml
@@ -52,13 +52,14 @@ configurationSamples:
"MigrateTeamSettings": true,
"UpdateTeamSettings": true,
"MigrateTeamCapacities": true,
+ "UseUserMapping": false,
"Teams": [
"Team 1",
"Team 2"
]
}
sampleFor: MigrationTools.Tools.TfsTeamSettingsToolOptions
-description: The TfsUserMappingTool is used to map users from the source to the target system. Run it with the ExportUsersForMappingContext to create a mapping file then with WorkItemMigrationContext to use the mapping file to update the users in the target system as you migrate the work items.
+description: Tool for migrating team settings including team configurations, area paths, iterations, and team-specific settings from source to target Team Foundation Server or Azure DevOps.
className: TfsTeamSettingsTool
typeName: Tools
architecture:
@@ -83,7 +84,11 @@ options:
type: Boolean
description: Reset the target team settings to match the source if the team exists
defaultValue: false
+- parameterName: UseUserMapping
+ type: Boolean
+ description: Use user mapping file from TfsTeamSettingsTool when matching users when migrating capacities. By default, users in source are matched in target users by current display name. When this is set to `true`, users are matched also by mapped name from user mapping file.
+ defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsTeamSettingsTool.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsTeamSettingsToolOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsTeamSettingsTool.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsTeamSettingsToolOptions.cs
diff --git a/docs/_data/reference.tools.tfsusermappingtool.yaml b/docs/_data/reference.tools.tfsusermappingtool.yaml
index 21e992a85..012f71c9b 100644
--- a/docs/_data/reference.tools.tfsusermappingtool.yaml
+++ b/docs/_data/reference.tools.tfsusermappingtool.yaml
@@ -70,7 +70,8 @@ configurationSamples:
"Microsoft.VSTS.Common.ResolvedBy",
"Microsoft.VSTS.Common.ClosedBy"
],
- "UserMappingFile": "C:\\temp\\userExport.json"
+ "UserMappingFile": "C:\\temp\\userExport.json",
+ "MatchUsersByEmail": false
}
sampleFor: MigrationTools.Tools.TfsUserMappingToolOptions
description: The TfsUserMappingTool is used to map users from the source to the target system. Run it with the ExportUsersForMappingContext to create a mapping file then with WorkItemMigrationContext to use the mapping file to update the users in the target system as you migrate the work items.
@@ -84,7 +85,11 @@ options:
defaultValue: missing XML code comments
- parameterName: IdentityFieldsToCheck
type: List
- description: This is a list of the Identiy fields in the Source to check for user mapping purposes. You should list all identiy fields that you wan to map.
+ description: This is a list of the Identiy fields in the Source to check for user mapping purposes. You should list all identiy fields that you want to map.
+ defaultValue: missing XML code comments
+- parameterName: MatchUsersByEmail
+ type: Boolean
+ description: By default, users in source are mapped to target users by their display name. If this is set to true, then the users will be mapped by their email address first. If no match is found, then the display name will be used.
defaultValue: missing XML code comments
- parameterName: UserMappingFile
type: String
@@ -92,5 +97,5 @@ options:
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsUserMappingTool.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsUserMappingToolOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsUserMappingTool.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsUserMappingToolOptions.cs
diff --git a/docs/_data/reference.tools.tfsvalidaterequiredfieldtool.yaml b/docs/_data/reference.tools.tfsvalidaterequiredfieldtool.yaml
index 194b9de78..37e605167 100644
--- a/docs/_data/reference.tools.tfsvalidaterequiredfieldtool.yaml
+++ b/docs/_data/reference.tools.tfsvalidaterequiredfieldtool.yaml
@@ -20,7 +20,7 @@ configurationSamples:
"Enabled": false
}
sampleFor: MigrationTools.Tools.TfsValidateRequiredFieldToolOptions
-description: missing XML code comments
+description: Tool for validating that required fields exist in target work item types before migration, preventing migration failures due to missing required fields.
className: TfsValidateRequiredFieldTool
typeName: Tools
architecture:
@@ -31,5 +31,5 @@ options:
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsValidateRequiredFieldTool.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsValidateRequiredFieldToolOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsValidateRequiredFieldTool.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsValidateRequiredFieldToolOptions.cs
diff --git a/docs/_data/reference.tools.tfsworkitemembededlinktool.yaml b/docs/_data/reference.tools.tfsworkitemembededlinktool.yaml
index 2c06c3f3b..97ad6ca6b 100644
--- a/docs/_data/reference.tools.tfsworkitemembededlinktool.yaml
+++ b/docs/_data/reference.tools.tfsworkitemembededlinktool.yaml
@@ -40,7 +40,7 @@ configurationSamples:
"Enabled": true
}
sampleFor: MigrationTools.Tools.TfsWorkItemEmbededLinkToolOptions
-description: missing XML code comments
+description: Tool for processing embedded links within work item fields, such as links in HTML fields and converting work item references between source and target systems.
className: TfsWorkItemEmbededLinkTool
typeName: Tools
architecture:
@@ -51,5 +51,5 @@ options:
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsWorkItemEmbededLinkTool.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsWorkItemEmbededLinkToolOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsWorkItemEmbededLinkTool.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsWorkItemEmbededLinkToolOptions.cs
diff --git a/docs/_data/reference.tools.tfsworkitemlinktool.yaml b/docs/_data/reference.tools.tfsworkitemlinktool.yaml
index 7439af47e..cd24b2d58 100644
--- a/docs/_data/reference.tools.tfsworkitemlinktool.yaml
+++ b/docs/_data/reference.tools.tfsworkitemlinktool.yaml
@@ -46,7 +46,7 @@ configurationSamples:
"SaveAfterEachLinkIsAdded": false
}
sampleFor: MigrationTools.Tools.TfsWorkItemLinkToolOptions
-description: missing XML code comments
+description: Tool for migrating work item links and relationships between work items, including shared steps and parameters for test cases.
className: TfsWorkItemLinkTool
typeName: Tools
architecture:
@@ -65,5 +65,5 @@ options:
defaultValue: false
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsWorkItemLinkTool.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsWorkItemLinkToolOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsWorkItemLinkTool.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsWorkItemLinkToolOptions.cs
diff --git a/docs/_data/reference.tools.workitemtypemappingtool.yaml b/docs/_data/reference.tools.workitemtypemappingtool.yaml
index 74881e764..9941dd1ee 100644
--- a/docs/_data/reference.tools.workitemtypemappingtool.yaml
+++ b/docs/_data/reference.tools.workitemtypemappingtool.yaml
@@ -50,7 +50,7 @@ configurationSamples:
}
}
sampleFor: MigrationTools.Tools.WorkItemTypeMappingToolOptions
-description: Used to process the String fields of a work item. This is useful for cleaning up data. It will limit fields to a max length and apply regex replacements based on what is configured. Each regex replacement is applied in order and can be enabled or disabled.
+description: Provides mapping functionality for transforming work item types from source to target systems during migration, allowing different work item type names to be used in the target.
className: WorkItemTypeMappingTool
typeName: Tools
architecture:
@@ -65,5 +65,5 @@ options:
defaultValue: '{}'
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools/Tools/WorkItemTypeMappingTool.cs
-optionsClassFile: /src/MigrationTools/Tools/WorkItemTypeMappingToolOptions.cs
+classFile: src/MigrationTools/Tools/WorkItemTypeMappingTool.cs
+optionsClassFile: src/MigrationTools/Tools/WorkItemTypeMappingToolOptions.cs
diff --git a/docs/collections/_reference/reference.endpoints.azuredevopsendpoint.md b/docs/collections/_reference/reference.endpoints.azuredevopsendpoint.md
index f1a5a3b68..b961fff2b 100644
--- a/docs/collections/_reference/reference.endpoints.azuredevopsendpoint.md
+++ b/docs/collections/_reference/reference.endpoints.azuredevopsendpoint.md
@@ -40,35 +40,35 @@ configurationSamples:
"ReflectedWorkItemIdField": "Custom.ReflectedWorkItemId"
}
sampleFor: MigrationTools.Endpoints.AzureDevOpsEndpointOptions
-description: missing XML code comments
+description: Azure DevOps REST API endpoint implementation for connecting to Azure DevOps organizations. Provides HTTP client access and pipeline-related API operations for migration scenarios.
className: AzureDevOpsEndpoint
typeName: Endpoints
architecture:
options:
- parameterName: AccessToken
type: String
- description: missing XML code comments
+ description: Personal Access Token (PAT) or other authentication token for accessing the Azure DevOps organization. Required for API authentication.
defaultValue: missing XML code comments
- parameterName: AuthenticationMode
type: AuthenticationMode
- description: missing XML code comments
+ description: Authentication mode to use when connecting to Azure DevOps. Typically uses AccessToken for modern Azure DevOps organizations.
defaultValue: missing XML code comments
- parameterName: Organisation
type: String
- description: missing XML code comments
+ description: URL of the Azure DevOps organization (e.g., "https://dev.azure.com/myorganization/"). Must include the full organization URL.
defaultValue: missing XML code comments
- parameterName: Project
type: String
- description: missing XML code comments
+ description: Name of the Azure DevOps project within the organization to connect to. This is the project that will be used for migration operations.
defaultValue: missing XML code comments
- parameterName: ReflectedWorkItemIdField
type: String
- description: missing XML code comments
+ description: Name of the custom field used to store the reflected work item ID for tracking migrated items. Typically "Custom.ReflectedWorkItemId".
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.AzureDevops.Rest/Endpoints/AzureDevOpsEndpoint.cs
-optionsClassFile: /src/MigrationTools.Clients.AzureDevops.Rest/Endpoints/AzureDevOpsEndpointOptions.cs
+classFile: src/MigrationTools.Clients.AzureDevops.Rest/Endpoints/AzureDevOpsEndpoint.cs
+optionsClassFile: src/MigrationTools.Clients.AzureDevops.Rest/Endpoints/AzureDevOpsEndpointOptions.cs
redirectFrom:
- /Reference/Endpoints/AzureDevOpsEndpointOptions/
diff --git a/docs/collections/_reference/reference.endpoints.filesystemworkitemendpoint.md b/docs/collections/_reference/reference.endpoints.filesystemworkitemendpoint.md
index 1457e0dd2..90c6e78c1 100644
--- a/docs/collections/_reference/reference.endpoints.filesystemworkitemendpoint.md
+++ b/docs/collections/_reference/reference.endpoints.filesystemworkitemendpoint.md
@@ -28,12 +28,12 @@ architecture:
options:
- parameterName: FileStore
type: String
- description: missing XML code comments
+ description: Path to the directory where work item data will be stored or read from. This should be a valid local file system path with appropriate read/write permissions.
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.FileSystem/Endpoints/FileSystemWorkItemEndpoint.cs
-optionsClassFile: /src/MigrationTools.Clients.FileSystem/Endpoints/FileSystemWorkItemEndpointOptions.cs
+classFile: src/MigrationTools.Clients.FileSystem/Endpoints/FileSystemWorkItemEndpoint.cs
+optionsClassFile: src/MigrationTools.Clients.FileSystem/Endpoints/FileSystemWorkItemEndpointOptions.cs
redirectFrom:
- /Reference/Endpoints/FileSystemWorkItemEndpointOptions/
diff --git a/docs/collections/_reference/reference.endpoints.tfsendpoint.md b/docs/collections/_reference/reference.endpoints.tfsendpoint.md
index b876b9ce8..d2c0a8db0 100644
--- a/docs/collections/_reference/reference.endpoints.tfsendpoint.md
+++ b/docs/collections/_reference/reference.endpoints.tfsendpoint.md
@@ -98,28 +98,28 @@ architecture:
options:
- parameterName: Authentication
type: TfsAuthenticationOptions
- description: missing XML code comments
+ description: Authentication configuration for connecting to the TFS server. Supports various authentication modes including Windows authentication and access tokens.
defaultValue: missing XML code comments
- parameterName: Collection
type: Uri
- description: missing XML code comments
+ description: URI of the TFS collection (e.g., "http://tfsserver:8080/tfs/DefaultCollection"). Must be a valid absolute URL pointing to the TFS collection.
defaultValue: missing XML code comments
- parameterName: LanguageMaps
type: TfsLanguageMapOptions
- description: missing XML code comments
+ description: Language mapping configuration for translating area and iteration path names between different language versions of TFS.
defaultValue: missing XML code comments
- parameterName: Project
type: String
- description: missing XML code comments
+ description: Name of the TFS project within the collection to connect to. This is the project that will be used for migration operations.
defaultValue: missing XML code comments
- parameterName: ReflectedWorkItemIdField
type: String
- description: missing XML code comments
+ description: Name of the custom field used to store the reflected work item ID for tracking migrated items. Typically "Custom.ReflectedWorkItemId".
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/EndPoints/TfsEndpoint.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/EndPoints/TfsEndpointOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/EndPoints/TfsEndpoint.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/EndPoints/TfsEndpointOptions.cs
redirectFrom:
- /Reference/Endpoints/TfsEndpointOptions/
diff --git a/docs/collections/_reference/reference.endpoints.tfsteamprojectendpoint.md b/docs/collections/_reference/reference.endpoints.tfsteamprojectendpoint.md
index fdfed068d..34a3d14e5 100644
--- a/docs/collections/_reference/reference.endpoints.tfsteamprojectendpoint.md
+++ b/docs/collections/_reference/reference.endpoints.tfsteamprojectendpoint.md
@@ -94,28 +94,28 @@ architecture:
options:
- parameterName: Authentication
type: TfsAuthenticationOptions
- description: missing XML code comments
+ description: Authentication configuration for connecting to the TFS server. Supports various authentication modes including Windows authentication and access tokens.
defaultValue: missing XML code comments
- parameterName: Collection
type: Uri
- description: missing XML code comments
+ description: URI of the TFS collection (e.g., "http://tfsserver:8080/tfs/DefaultCollection"). Must be a valid absolute URL pointing to the TFS collection.
defaultValue: missing XML code comments
- parameterName: LanguageMaps
type: TfsLanguageMapOptions
- description: missing XML code comments
+ description: Language mapping configuration for translating area and iteration path names between different language versions of TFS.
defaultValue: missing XML code comments
- parameterName: Project
type: String
- description: missing XML code comments
+ description: Name of the TFS project within the collection to connect to. This is the project that will be used for migration operations.
defaultValue: missing XML code comments
- parameterName: ReflectedWorkItemIdField
type: String
- description: missing XML code comments
+ description: Name of the custom field used to store the reflected work item ID for tracking migrated items. Typically "Custom.ReflectedWorkItemId".
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/EndPoints/TfsTeamProjectEndpoint.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/EndPoints/TfsTeamProjectEndPointOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/EndPoints/TfsTeamProjectEndpoint.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/EndPoints/TfsTeamProjectEndPointOptions.cs
redirectFrom:
- /Reference/Endpoints/TfsTeamProjectEndpointOptions/
diff --git a/docs/collections/_reference/reference.endpoints.tfsteamsettingsendpoint.md b/docs/collections/_reference/reference.endpoints.tfsteamsettingsendpoint.md
index bd515631b..20cf9ac67 100644
--- a/docs/collections/_reference/reference.endpoints.tfsteamsettingsendpoint.md
+++ b/docs/collections/_reference/reference.endpoints.tfsteamsettingsendpoint.md
@@ -35,28 +35,28 @@ architecture:
options:
- parameterName: Authentication
type: TfsAuthenticationOptions
- description: missing XML code comments
+ description: Authentication configuration for connecting to the TFS server. Supports various authentication modes including Windows authentication and access tokens.
defaultValue: missing XML code comments
- parameterName: Collection
type: Uri
- description: missing XML code comments
+ description: URI of the TFS collection (e.g., "http://tfsserver:8080/tfs/DefaultCollection"). Must be a valid absolute URL pointing to the TFS collection.
defaultValue: missing XML code comments
- parameterName: LanguageMaps
type: TfsLanguageMapOptions
- description: missing XML code comments
+ description: Language mapping configuration for translating area and iteration path names between different language versions of TFS.
defaultValue: missing XML code comments
- parameterName: Project
type: String
- description: missing XML code comments
+ description: Name of the TFS project within the collection to connect to. This is the project that will be used for migration operations.
defaultValue: missing XML code comments
- parameterName: ReflectedWorkItemIdField
type: String
- description: missing XML code comments
+ description: Name of the custom field used to store the reflected work item ID for tracking migrated items. Typically "Custom.ReflectedWorkItemId".
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/EndPoints/TfsTeamSettingsEndpoint.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/EndPoints/TfsTeamSettingsEndpointOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/EndPoints/TfsTeamSettingsEndpoint.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/EndPoints/TfsTeamSettingsEndpointOptions.cs
redirectFrom:
- /Reference/Endpoints/TfsTeamSettingsEndpointOptions/
diff --git a/docs/collections/_reference/reference.endpoints.tfsworkitemendpoint.md b/docs/collections/_reference/reference.endpoints.tfsworkitemendpoint.md
index 42f0848ce..f0f1f1689 100644
--- a/docs/collections/_reference/reference.endpoints.tfsworkitemendpoint.md
+++ b/docs/collections/_reference/reference.endpoints.tfsworkitemendpoint.md
@@ -36,32 +36,32 @@ architecture:
options:
- parameterName: Authentication
type: TfsAuthenticationOptions
- description: missing XML code comments
+ description: Authentication configuration for connecting to the TFS server. Supports various authentication modes including Windows authentication and access tokens.
defaultValue: missing XML code comments
- parameterName: Collection
type: Uri
- description: missing XML code comments
+ description: URI of the TFS collection (e.g., "http://tfsserver:8080/tfs/DefaultCollection"). Must be a valid absolute URL pointing to the TFS collection.
defaultValue: missing XML code comments
- parameterName: LanguageMaps
type: TfsLanguageMapOptions
- description: missing XML code comments
+ description: Language mapping configuration for translating area and iteration path names between different language versions of TFS.
defaultValue: missing XML code comments
- parameterName: Project
type: String
- description: missing XML code comments
+ description: Name of the TFS project within the collection to connect to. This is the project that will be used for migration operations.
defaultValue: missing XML code comments
- parameterName: Query
type: QueryOptions
- description: missing XML code comments
+ description: Gets or sets the query options that define which work items to retrieve from the source endpoint, including WIQL queries and parameters.
defaultValue: missing XML code comments
- parameterName: ReflectedWorkItemIdField
type: String
- description: missing XML code comments
+ description: Name of the custom field used to store the reflected work item ID for tracking migrated items. Typically "Custom.ReflectedWorkItemId".
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/EndPoints/TfsWorkItemEndpoint.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/EndPoints/TfsWorkItemEndpointOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/EndPoints/TfsWorkItemEndpoint.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/EndPoints/TfsWorkItemEndpointOptions.cs
redirectFrom:
- /Reference/Endpoints/TfsWorkItemEndpointOptions/
diff --git a/docs/collections/_reference/reference.fieldmaps.fieldclearmap.md b/docs/collections/_reference/reference.fieldmaps.fieldclearmap.md
index 105608355..52df2ef31 100644
--- a/docs/collections/_reference/reference.fieldmaps.fieldclearmap.md
+++ b/docs/collections/_reference/reference.fieldmaps.fieldclearmap.md
@@ -60,7 +60,7 @@ configurationSamples:
]
}
sampleFor: MigrationTools.Tools.FieldClearMapOptions
-description: missing XML code comments
+description: Clears a target field by setting its value to null, useful for removing data from specific fields during migration.
className: FieldClearMap
typeName: FieldMaps
architecture:
@@ -71,12 +71,12 @@ options:
defaultValue: missing XML code comments
- parameterName: targetField
type: String
- description: missing XML code comments
+ description: Gets or sets the name of the target field to be cleared/set to null during work item migration.
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldClearMap.cs
-optionsClassFile: /src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldClearMapOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldClearMap.cs
+optionsClassFile: src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldClearMapOptions.cs
redirectFrom:
- /Reference/FieldMaps/FieldClearMapOptions/
diff --git a/docs/collections/_reference/reference.fieldmaps.fieldliteralmap.md b/docs/collections/_reference/reference.fieldmaps.fieldliteralmap.md
index 7fcdcc30f..89130c889 100644
--- a/docs/collections/_reference/reference.fieldmaps.fieldliteralmap.md
+++ b/docs/collections/_reference/reference.fieldmaps.fieldliteralmap.md
@@ -62,7 +62,7 @@ configurationSamples:
]
}
sampleFor: MigrationTools.Tools.FieldLiteralMapOptions
-description: missing XML code comments
+description: Maps a literal (static) value to a target field, useful for setting constant values across all migrated work items.
className: FieldLiteralMap
typeName: FieldMaps
architecture:
@@ -73,16 +73,16 @@ options:
defaultValue: missing XML code comments
- parameterName: targetField
type: String
- description: missing XML code comments
+ description: Gets or sets the name of the target field that will be set to the specified literal value.
defaultValue: missing XML code comments
- parameterName: value
type: String
- description: missing XML code comments
+ description: Gets or sets the literal value that will be assigned to the target field during migration.
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldLiteralMap.cs
-optionsClassFile: /src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldLiteralMapOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldLiteralMap.cs
+optionsClassFile: src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldLiteralMapOptions.cs
redirectFrom:
- /Reference/FieldMaps/FieldLiteralMapOptions/
diff --git a/docs/collections/_reference/reference.fieldmaps.fieldmergemap.md b/docs/collections/_reference/reference.fieldmaps.fieldmergemap.md
index 82f3e9b30..863430062 100644
--- a/docs/collections/_reference/reference.fieldmaps.fieldmergemap.md
+++ b/docs/collections/_reference/reference.fieldmaps.fieldmergemap.md
@@ -70,7 +70,7 @@ configurationSamples:
]
}
sampleFor: MigrationTools.Tools.FieldMergeMapOptions
-description: missing XML code comments
+description: Merges values from multiple source fields into a single target field using a specified format template.
className: FieldMergeMap
typeName: FieldMaps
architecture:
@@ -93,8 +93,8 @@ options:
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldMergeMap.cs
-optionsClassFile: /src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldMergeMapOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldMergeMap.cs
+optionsClassFile: src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldMergeMapOptions.cs
redirectFrom:
- /Reference/FieldMaps/FieldMergeMapOptions/
diff --git a/docs/collections/_reference/reference.fieldmaps.fieldskipmap.md b/docs/collections/_reference/reference.fieldmaps.fieldskipmap.md
index 4e3d84792..8c93663e0 100644
--- a/docs/collections/_reference/reference.fieldmaps.fieldskipmap.md
+++ b/docs/collections/_reference/reference.fieldmaps.fieldskipmap.md
@@ -41,7 +41,7 @@ configurationSamples:
]
}
sampleFor: MigrationTools.Tools.FieldSkipMapOptions
-description: missing XML code comments
+description: Skips field mapping for a specific target field, effectively leaving the field unchanged during migration.
className: FieldSkipMap
typeName: FieldMaps
architecture:
@@ -52,12 +52,12 @@ options:
defaultValue: missing XML code comments
- parameterName: targetField
type: String
- description: missing XML code comments
+ description: Gets or sets the name of the target field that should be skipped during migration, resetting it to its original value.
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldSkipMap.cs
-optionsClassFile: /src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldSkipMapOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldSkipMap.cs
+optionsClassFile: src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldSkipMapOptions.cs
redirectFrom:
- /Reference/FieldMaps/FieldSkipMapOptions/
diff --git a/docs/collections/_reference/reference.fieldmaps.fieldtofieldmap.md b/docs/collections/_reference/reference.fieldmaps.fieldtofieldmap.md
index af06378f9..e29164389 100644
--- a/docs/collections/_reference/reference.fieldmaps.fieldtofieldmap.md
+++ b/docs/collections/_reference/reference.fieldmaps.fieldtofieldmap.md
@@ -64,7 +64,7 @@ configurationSamples:
]
}
sampleFor: MigrationTools.Tools.FieldToFieldMapOptions
-description: missing XML code comments
+description: Maps the value from a source field to a target field directly, with optional default value substitution for empty or null values.
className: FieldToFieldMap
typeName: FieldMaps
architecture:
@@ -75,20 +75,20 @@ options:
defaultValue: missing XML code comments
- parameterName: defaultValue
type: String
- description: missing XML code comments
+ description: Gets or sets the default value to use when the source field is empty or null.
defaultValue: missing XML code comments
- parameterName: sourceField
type: String
- description: missing XML code comments
+ description: Gets or sets the name of the source field to copy data from during migration.
defaultValue: missing XML code comments
- parameterName: targetField
type: String
- description: missing XML code comments
+ description: Gets or sets the name of the target field to copy data to during migration.
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldToFieldMap.cs
-optionsClassFile: /src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldtoFieldMapOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldToFieldMap.cs
+optionsClassFile: src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldtoFieldMapOptions.cs
redirectFrom:
- /Reference/FieldMaps/FieldToFieldMapOptions/
diff --git a/docs/collections/_reference/reference.fieldmaps.fieldtofieldmultimap.md b/docs/collections/_reference/reference.fieldmaps.fieldtofieldmultimap.md
index 87fe4fb47..b7fdfadc4 100644
--- a/docs/collections/_reference/reference.fieldmaps.fieldtofieldmultimap.md
+++ b/docs/collections/_reference/reference.fieldmaps.fieldtofieldmultimap.md
@@ -83,8 +83,8 @@ options:
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldtoFieldMultiMap.cs
-optionsClassFile: /src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldtoFieldMultiMapOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldtoFieldMultiMap.cs
+optionsClassFile: src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldtoFieldMultiMapOptions.cs
redirectFrom:
- /Reference/FieldMaps/FieldToFieldMultiMapOptions/
diff --git a/docs/collections/_reference/reference.fieldmaps.fieldtotagfieldmap.md b/docs/collections/_reference/reference.fieldmaps.fieldtotagfieldmap.md
index bbaf965a6..0f0ee3241 100644
--- a/docs/collections/_reference/reference.fieldmaps.fieldtotagfieldmap.md
+++ b/docs/collections/_reference/reference.fieldmaps.fieldtotagfieldmap.md
@@ -85,7 +85,7 @@ options:
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldToTagFieldMap.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldToTagFieldMap.cs
optionsClassFile: ''
redirectFrom:
diff --git a/docs/collections/_reference/reference.fieldmaps.fieldvaluemap.md b/docs/collections/_reference/reference.fieldmaps.fieldvaluemap.md
index 42abcc1bd..ee92bed61 100644
--- a/docs/collections/_reference/reference.fieldmaps.fieldvaluemap.md
+++ b/docs/collections/_reference/reference.fieldmaps.fieldvaluemap.md
@@ -70,7 +70,7 @@ configurationSamples:
]
}
sampleFor: MigrationTools.Tools.FieldValueMapOptions
-description: missing XML code comments
+description: Maps field values based on a lookup table, allowing specific source values to be translated to different target values.
className: FieldValueMap
typeName: FieldMaps
architecture:
@@ -81,24 +81,24 @@ options:
defaultValue: missing XML code comments
- parameterName: defaultValue
type: String
- description: missing XML code comments
+ description: Gets or sets the default value to use when no mapping is found for the source field value.
defaultValue: missing XML code comments
- parameterName: sourceField
type: String
- description: missing XML code comments
+ description: Gets or sets the name of the source field to read values from during migration.
defaultValue: missing XML code comments
- parameterName: targetField
type: String
- description: missing XML code comments
+ description: Gets or sets the name of the target field to write mapped values to during migration.
defaultValue: missing XML code comments
- parameterName: valueMapping
type: Dictionary
- description: missing XML code comments
+ description: Gets or sets the dictionary that maps source field values to target field values. Key is the source value, value is the target value.
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldValueMap.cs
-optionsClassFile: /src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldValueMapOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldValueMap.cs
+optionsClassFile: src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldValueMapOptions.cs
redirectFrom:
- /Reference/FieldMaps/FieldValueMapOptions/
diff --git a/docs/collections/_reference/reference.fieldmaps.multivalueconditionalmap.md b/docs/collections/_reference/reference.fieldmaps.multivalueconditionalmap.md
index 40c263f06..fc7f67093 100644
--- a/docs/collections/_reference/reference.fieldmaps.multivalueconditionalmap.md
+++ b/docs/collections/_reference/reference.fieldmaps.multivalueconditionalmap.md
@@ -93,8 +93,8 @@ options:
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/MultiValueConditionalMap.cs
-optionsClassFile: /src/MigrationTools/Tools/FieldMappingTool/FieldMaps/MultiValueConditionalMapOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/MultiValueConditionalMap.cs
+optionsClassFile: src/MigrationTools/Tools/FieldMappingTool/FieldMaps/MultiValueConditionalMapOptions.cs
redirectFrom:
- /Reference/FieldMaps/MultiValueConditionalMapOptions/
diff --git a/docs/collections/_reference/reference.fieldmaps.regexfieldmap.md b/docs/collections/_reference/reference.fieldmaps.regexfieldmap.md
index 84da66e9d..a26fd9118 100644
--- a/docs/collections/_reference/reference.fieldmaps.regexfieldmap.md
+++ b/docs/collections/_reference/reference.fieldmaps.regexfieldmap.md
@@ -66,7 +66,7 @@ configurationSamples:
]
}
sampleFor: MigrationTools.Tools.RegexFieldMapOptions
-description: missing XML code comments
+description: Applies regular expression transformations to map values from a source field to a target field using pattern matching and replacement.
className: RegexFieldMap
typeName: FieldMaps
architecture:
@@ -77,24 +77,24 @@ options:
defaultValue: missing XML code comments
- parameterName: pattern
type: String
- description: missing XML code comments
+ description: Gets or sets the regular expression pattern to match against the source field value.
defaultValue: missing XML code comments
- parameterName: replacement
type: String
- description: missing XML code comments
+ description: Gets or sets the replacement pattern that defines how matched groups should be used to construct the target value.
defaultValue: missing XML code comments
- parameterName: sourceField
type: String
- description: missing XML code comments
+ description: Gets or sets the name of the source field to read data from and apply regex pattern matching.
defaultValue: missing XML code comments
- parameterName: targetField
type: String
- description: missing XML code comments
+ description: Gets or sets the name of the target field to write the regex-transformed data to.
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/RegexFieldMap.cs
-optionsClassFile: /src/MigrationTools/Tools/FieldMappingTool/FieldMaps/RegexFieldMapOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/RegexFieldMap.cs
+optionsClassFile: src/MigrationTools/Tools/FieldMappingTool/FieldMaps/RegexFieldMapOptions.cs
redirectFrom:
- /Reference/FieldMaps/RegexFieldMapOptions/
diff --git a/docs/collections/_reference/reference.fieldmaps.treetotagfieldmap.md b/docs/collections/_reference/reference.fieldmaps.treetotagfieldmap.md
index e5ada12d0..4e8686d41 100644
--- a/docs/collections/_reference/reference.fieldmaps.treetotagfieldmap.md
+++ b/docs/collections/_reference/reference.fieldmaps.treetotagfieldmap.md
@@ -42,7 +42,7 @@ configurationSamples:
]
}
sampleFor: MigrationTools.Tools.TreeToTagFieldMapOptions
-description: missing XML code comments
+description: Maps work item area path or iteration path hierarchies to tags, allowing tree structures to be represented as flat tag collections.
className: TreeToTagFieldMap
typeName: FieldMaps
architecture:
@@ -53,16 +53,16 @@ options:
defaultValue: missing XML code comments
- parameterName: timeTravel
type: Int32
- description: missing XML code comments
+ description: Gets or sets the number of months to travel back in time when looking up historical area path values. Use 0 for current values.
defaultValue: missing XML code comments
- parameterName: toSkip
type: Int32
- description: missing XML code comments
+ description: Gets or sets the number of levels to skip from the root when converting area path hierarchy to tags. For example, if set to 2, "ProjectName\Level1\Level2\Level3" would skip "ProjectName\Level1" and start from "Level2".
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/TreeToTagFieldMap.cs
-optionsClassFile: /src/MigrationTools/Tools/FieldMappingTool/FieldMaps/TreeToTagFieldMapOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/TreeToTagFieldMap.cs
+optionsClassFile: src/MigrationTools/Tools/FieldMappingTool/FieldMaps/TreeToTagFieldMapOptions.cs
redirectFrom:
- /Reference/FieldMaps/TreeToTagFieldMapOptions/
diff --git a/docs/collections/_reference/reference.processorenrichers.pauseaftereachitem.md b/docs/collections/_reference/reference.processorenrichers.pauseaftereachitem.md
index cfda69c2a..a828ba3ff 100644
--- a/docs/collections/_reference/reference.processorenrichers.pauseaftereachitem.md
+++ b/docs/collections/_reference/reference.processorenrichers.pauseaftereachitem.md
@@ -42,8 +42,8 @@ options:
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools/Processors/Enrichers/PauseAfterEachItem.cs
-optionsClassFile: /src/MigrationTools/Processors/Enrichers/PauseAfterEachItemOptions.cs
+classFile: src/MigrationTools/Processors/Enrichers/PauseAfterEachItem.cs
+optionsClassFile: src/MigrationTools/Processors/Enrichers/PauseAfterEachItemOptions.cs
redirectFrom:
- /Reference/ProcessorEnrichers/PauseAfterEachItemOptions/
diff --git a/docs/collections/_reference/reference.processors.azuredevopspipelineprocessor.md b/docs/collections/_reference/reference.processors.azuredevopspipelineprocessor.md
index 913b61b90..8773adcd8 100644
--- a/docs/collections/_reference/reference.processors.azuredevopspipelineprocessor.md
+++ b/docs/collections/_reference/reference.processors.azuredevopspipelineprocessor.md
@@ -66,7 +66,7 @@ configurationSamples:
"MigrateServiceConnections": true,
"BuildPipelines": null,
"ReleasePipelines": null,
- "RepositoryNameMaps": null,
+ "RepositoryNameMaps": {},
"SourceName": "sourceName",
"TargetName": "targetName"
}
@@ -102,7 +102,7 @@ options:
defaultValue: true
- parameterName: MigrateVariableGroups
type: Boolean
- description: Migrate Valiable Groups
+ description: Migrate Variable Groups
defaultValue: true
- parameterName: ReleasePipelines
type: List
@@ -122,8 +122,8 @@ options:
defaultValue: missing XML code comments
status: Beta
processingTarget: Pipelines
-classFile: /src/MigrationTools.Clients.AzureDevops.Rest/Processors/AzureDevOpsPipelineProcessor.cs
-optionsClassFile: /src/MigrationTools.Clients.AzureDevops.Rest/Processors/AzureDevOpsPipelineProcessorOptions.cs
+classFile: src/MigrationTools.Clients.AzureDevops.Rest/Processors/AzureDevOpsPipelineProcessor.cs
+optionsClassFile: src/MigrationTools.Clients.AzureDevops.Rest/Processors/AzureDevOpsPipelineProcessorOptions.cs
redirectFrom:
- /Reference/Processors/AzureDevOpsPipelineProcessorOptions/
diff --git a/docs/collections/_reference/reference.processors.keepoutboundlinktargetprocessor.md b/docs/collections/_reference/reference.processors.keepoutboundlinktargetprocessor.md
index a9e54ddda..5f8c60965 100644
--- a/docs/collections/_reference/reference.processors.keepoutboundlinktargetprocessor.md
+++ b/docs/collections/_reference/reference.processors.keepoutboundlinktargetprocessor.md
@@ -21,7 +21,7 @@ configurationSamples:
"Enabled": false,
"WIQLQuery": "Select [System.Id] From WorkItems Where [System.TeamProject] = @project and not [System.WorkItemType] contains 'Test Suite, Test Plan,Shared Steps,Shared Parameter,Feedback Request'",
"TargetLinksToKeepOrganization": "https://dev.azure.com/nkdagility",
- "TargetLinksToKeepProject": "332b7ec5-b938-4c13-8ab4-06d6c70ea68a",
+ "TargetLinksToKeepProject": "8950f163-3d8d-48d4-b14a-b7b250903fe1",
"CleanupFileName": "c:/temp/OutboundLinkTargets.bat",
"PrependCommand": "start",
"DryRun": true,
@@ -36,11 +36,11 @@ architecture:
options:
- parameterName: CleanupFileName
type: String
- description: missing XML code comments
+ description: File path where the cleanup script or batch file will be generated for removing unwanted outbound links.
defaultValue: missing XML code comments
- parameterName: DryRun
type: Boolean
- description: missing XML code comments
+ description: When true, performs a dry run without making actual changes, only generating the cleanup script for review.
defaultValue: missing XML code comments
- parameterName: Enabled
type: Boolean
@@ -48,7 +48,7 @@ options:
defaultValue: missing XML code comments
- parameterName: PrependCommand
type: String
- description: missing XML code comments
+ description: Command to prepend to each line in the cleanup script, such as "start" for Windows batch files.
defaultValue: missing XML code comments
- parameterName: SourceName
type: String
@@ -56,11 +56,11 @@ options:
defaultValue: missing XML code comments
- parameterName: TargetLinksToKeepOrganization
type: String
- description: missing XML code comments
+ description: URL of the Azure DevOps organization whose links should be preserved during cleanup operations.
defaultValue: missing XML code comments
- parameterName: TargetLinksToKeepProject
type: String
- description: missing XML code comments
+ description: Project name or GUID within the target organization whose links should be preserved.
defaultValue: missing XML code comments
- parameterName: TargetName
type: String
@@ -68,12 +68,12 @@ options:
defaultValue: missing XML code comments
- parameterName: WIQLQuery
type: String
- description: missing XML code comments
+ description: WIQL (Work Item Query Language) query used to select the work items whose outbound links should be processed for preservation.
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.AzureDevops.Rest/Processors/KeepOutboundLinkTargetProcessor.cs
-optionsClassFile: /src/MigrationTools.Clients.AzureDevops.Rest/Processors/KeepOutboundLinkTargetProcessorOptions.cs
+classFile: src/MigrationTools.Clients.AzureDevops.Rest/Processors/KeepOutboundLinkTargetProcessor.cs
+optionsClassFile: src/MigrationTools.Clients.AzureDevops.Rest/Processors/KeepOutboundLinkTargetProcessorOptions.cs
redirectFrom:
- /Reference/Processors/KeepOutboundLinkTargetProcessorOptions/
diff --git a/docs/collections/_reference/reference.processors.outboundlinkcheckingprocessor.md b/docs/collections/_reference/reference.processors.outboundlinkcheckingprocessor.md
index d2a5fdda0..b5711ceb4 100644
--- a/docs/collections/_reference/reference.processors.outboundlinkcheckingprocessor.md
+++ b/docs/collections/_reference/reference.processors.outboundlinkcheckingprocessor.md
@@ -36,7 +36,7 @@ options:
defaultValue: missing XML code comments
- parameterName: ResultFileName
type: String
- description: missing XML code comments
+ description: File name where the results of the outbound link checking process will be saved, typically containing details of broken or invalid links.
defaultValue: missing XML code comments
- parameterName: SourceName
type: String
@@ -48,12 +48,12 @@ options:
defaultValue: missing XML code comments
- parameterName: WIQLQuery
type: String
- description: missing XML code comments
+ description: WIQL (Work Item Query Language) query used to select the work items whose outbound links should be checked for validity.
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.AzureDevops.Rest/Processors/OutboundLinkCheckingProcessor.cs
-optionsClassFile: /src/MigrationTools.Clients.AzureDevops.Rest/Processors/OutboundLinkCheckingProcessorOptions.cs
+classFile: src/MigrationTools.Clients.AzureDevops.Rest/Processors/OutboundLinkCheckingProcessor.cs
+optionsClassFile: src/MigrationTools.Clients.AzureDevops.Rest/Processors/OutboundLinkCheckingProcessorOptions.cs
redirectFrom:
- /Reference/Processors/OutboundLinkCheckingProcessorOptions/
diff --git a/docs/collections/_reference/reference.processors.processdefinitionprocessor.md b/docs/collections/_reference/reference.processors.processdefinitionprocessor.md
index d499aaaf3..81400e146 100644
--- a/docs/collections/_reference/reference.processors.processdefinitionprocessor.md
+++ b/docs/collections/_reference/reference.processors.processdefinitionprocessor.md
@@ -38,15 +38,15 @@ options:
defaultValue: missing XML code comments
- parameterName: MaxDegreeOfParallelism
type: Int32
- description: missing XML code comments
+ description: Maximum number of parallel operations to execute simultaneously during process definition migration to optimize performance.
defaultValue: missing XML code comments
- parameterName: Processes
type: Dictionary
- description: missing XML code comments
+ description: Dictionary mapping process names to lists of work item type names to be included in the migration. If null, all work item types will be migrated.
defaultValue: missing XML code comments
- parameterName: ProcessMaps
type: Dictionary
- description: missing XML code comments
+ description: Dictionary mapping source process names to target process names for process template transformations during migration.
defaultValue: missing XML code comments
- parameterName: SourceName
type: String
@@ -58,12 +58,12 @@ options:
defaultValue: missing XML code comments
- parameterName: UpdateProcessDetails
type: Boolean
- description: missing XML code comments
+ description: Indicates whether to update existing process details in the target organization or only create new processes.
defaultValue: missing XML code comments
status: Beta
processingTarget: Pipelines
-classFile: /src/MigrationTools.Clients.AzureDevops.Rest/Processors/ProcessDefinitionProcessor.cs
-optionsClassFile: /src/MigrationTools.Clients.AzureDevops.Rest/Processors/ProcessDefinitionProcessorOptions.cs
+classFile: src/MigrationTools.Clients.AzureDevops.Rest/Processors/ProcessDefinitionProcessor.cs
+optionsClassFile: src/MigrationTools.Clients.AzureDevops.Rest/Processors/ProcessDefinitionProcessorOptions.cs
redirectFrom:
- /Reference/Processors/ProcessDefinitionProcessorOptions/
diff --git a/docs/collections/_reference/reference.processors.tfsexportprofilepicturefromadprocessor.md b/docs/collections/_reference/reference.processors.tfsexportprofilepicturefromadprocessor.md
index c494bd492..0059368fd 100644
--- a/docs/collections/_reference/reference.processors.tfsexportprofilepicturefromadprocessor.md
+++ b/docs/collections/_reference/reference.processors.tfsexportprofilepicturefromadprocessor.md
@@ -62,8 +62,8 @@ options:
defaultValue: String.Empty
status: alpha
processingTarget: Profiles
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsExportProfilePictureFromADProcessor.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsExportProfilePictureFromADProcessorOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsExportProfilePictureFromADProcessor.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsExportProfilePictureFromADProcessorOptions.cs
redirectFrom:
- /Reference/Processors/TfsExportProfilePictureFromADProcessorOptions/
diff --git a/docs/collections/_reference/reference.processors.tfsexportusersformappingprocessor.md b/docs/collections/_reference/reference.processors.tfsexportusersformappingprocessor.md
index 291686e94..1709cfef0 100644
--- a/docs/collections/_reference/reference.processors.tfsexportusersformappingprocessor.md
+++ b/docs/collections/_reference/reference.processors.tfsexportusersformappingprocessor.md
@@ -21,6 +21,8 @@ configurationSamples:
"Enabled": false,
"WIQLQuery": null,
"OnlyListUsersInWorkItems": true,
+ "ExportAllUsers": false,
+ "UserExportFile": null,
"SourceName": null,
"TargetName": null
}
@@ -34,10 +36,14 @@ options:
type: Boolean
description: If set to `true` then the processor will run. Set to `false` and the processor will not run.
defaultValue: missing XML code comments
-- parameterName: OnlyListUsersInWorkItems
+- parameterName: ExportAllUsers
type: Boolean
- description: missing XML code comments
+ description: Set to , if you want to export all users in source and target server. The lists of user can be useful, if you need tu manually edit mapping file. Users will be exported to file set in .
defaultValue: missing XML code comments
+- parameterName: OnlyListUsersInWorkItems
+ type: Boolean
+ description: '`OnlyListUsersInWorkItems`'
+ defaultValue: true
- parameterName: SourceName
type: String
description: missing XML code comments
@@ -46,14 +52,18 @@ options:
type: String
description: missing XML code comments
defaultValue: missing XML code comments
+- parameterName: UserExportFile
+ type: String
+ description: Path to export file where all source and target servers' users will be exported. Users are exported only if is set to .
+ defaultValue: missing XML code comments
- parameterName: WIQLQuery
type: String
- description: missing XML code comments
+ description: WIQL (Work Item Query Language) query used to select the work items from which user information should be extracted.
defaultValue: missing XML code comments
status: ready
processingTarget: Work Items
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsExportUsersForMappingProcessor.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsExportUsersForMappingProcessorOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsExportUsersForMappingProcessor.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsExportUsersForMappingProcessorOptions.cs
redirectFrom:
- /Reference/Processors/TfsExportUsersForMappingProcessorOptions/
diff --git a/docs/collections/_reference/reference.processors.tfsimportprofilepictureprocessor.md b/docs/collections/_reference/reference.processors.tfsimportprofilepictureprocessor.md
index e803c8534..3e0a0db9a 100644
--- a/docs/collections/_reference/reference.processors.tfsimportprofilepictureprocessor.md
+++ b/docs/collections/_reference/reference.processors.tfsimportprofilepictureprocessor.md
@@ -42,8 +42,8 @@ options:
defaultValue: missing XML code comments
status: alpha
processingTarget: Profiles
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsImportProfilePictureProcessor.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsImportProfilePictureProcessorOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsImportProfilePictureProcessor.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsImportProfilePictureProcessorOptions.cs
redirectFrom:
- /Reference/Processors/TfsImportProfilePictureProcessorOptions/
diff --git a/docs/collections/_reference/reference.processors.tfssharedqueryprocessor.md b/docs/collections/_reference/reference.processors.tfssharedqueryprocessor.md
index 3027b6cf3..f92dcae23 100644
--- a/docs/collections/_reference/reference.processors.tfssharedqueryprocessor.md
+++ b/docs/collections/_reference/reference.processors.tfssharedqueryprocessor.md
@@ -57,8 +57,8 @@ options:
defaultValue: missing XML code comments
status: Beta
processingTarget: Queries
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsSharedQueryProcessor.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsSharedQueryProcessorOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsSharedQueryProcessor.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsSharedQueryProcessorOptions.cs
redirectFrom:
- /Reference/Processors/TfsSharedQueryProcessorOptions/
diff --git a/docs/collections/_reference/reference.processors.tfsteamsettingsprocessor.md b/docs/collections/_reference/reference.processors.tfsteamsettingsprocessor.md
index 6332a9082..537c0d1cf 100644
--- a/docs/collections/_reference/reference.processors.tfsteamsettingsprocessor.md
+++ b/docs/collections/_reference/reference.processors.tfsteamsettingsprocessor.md
@@ -24,6 +24,7 @@ configurationSamples:
"PrefixProjectToNodes": false,
"MigrateTeamCapacities": false,
"Teams": null,
+ "UseUserMapping": false,
"SourceName": null,
"TargetName": null
}
@@ -65,10 +66,14 @@ options:
type: Boolean
description: Reset the target team settings to match the source if the team exists
defaultValue: false
+- parameterName: UseUserMapping
+ type: Boolean
+ description: Use user mapping file from TfsTeamSettingsTool when matching users when migrating capacities. By default, users in source are matched in target users by current display name. When this is set to `true`, users are matched also by mapped name from user mapping file.
+ defaultValue: missing XML code comments
status: Beta
processingTarget: Teams
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTeamSettingsProcessor.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTeamSettingsProcessorOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTeamSettingsProcessor.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTeamSettingsProcessorOptions.cs
redirectFrom:
- /Reference/Processors/TfsTeamSettingsProcessorOptions/
diff --git a/docs/collections/_reference/reference.processors.tfstestconfigurationsmigrationprocessor.md b/docs/collections/_reference/reference.processors.tfstestconfigurationsmigrationprocessor.md
index d92d0b5f3..7ed4785c8 100644
--- a/docs/collections/_reference/reference.processors.tfstestconfigurationsmigrationprocessor.md
+++ b/docs/collections/_reference/reference.processors.tfstestconfigurationsmigrationprocessor.md
@@ -42,8 +42,8 @@ options:
defaultValue: missing XML code comments
status: Beta
processingTarget: Suites & Plans
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTestConfigurationsMigrationProcessor.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTestConfigurationsMigrationProcessorOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTestConfigurationsMigrationProcessor.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTestConfigurationsMigrationProcessorOptions.cs
redirectFrom:
- /Reference/Processors/TfsTestConfigurationsMigrationProcessorOptions/
diff --git a/docs/collections/_reference/reference.processors.tfstestplansandsuitesmigrationprocessor.md b/docs/collections/_reference/reference.processors.tfstestplansandsuitesmigrationprocessor.md
index 985fd2a1f..89d3bd026 100644
--- a/docs/collections/_reference/reference.processors.tfstestplansandsuitesmigrationprocessor.md
+++ b/docs/collections/_reference/reference.processors.tfstestplansandsuitesmigrationprocessor.md
@@ -25,6 +25,7 @@ configurationSamples:
"MigrationDelay": 0,
"RemoveInvalidTestSuiteLinks": false,
"FilterCompleted": false,
+ "TestPlanIds": [],
"SourceName": null,
"TargetName": null
}
@@ -66,14 +67,18 @@ options:
type: String
description: missing XML code comments
defaultValue: missing XML code comments
+- parameterName: TestPlanIds
+ type: Int32[]
+ description: 'This flag filters all test plans and retains only the specified ones for migration. Pass the test plan IDs as an array. Example: "TestPlanIds": [123, 456, 789] Works optimally when "TestPlanQuery" is set to null.'
+ defaultValue: missing XML code comments
- parameterName: TestPlanQuery
type: String
description: Filtering conditions to decide whether to migrate a test plan or not. When provided, this partial query is added after `Select * From TestPlan Where` when selecting test plans. Among filtering options, `AreaPath`, `PlanName` and `PlanState` are known to work. There is unfortunately no documentation regarding the available fields.
defaultValue: '`String.Empty`'
status: Beta
processingTarget: Suites & Plans
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTestPlansAndSuitesMigrationProcessor.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTestPlansAndSuitesMigrationProcessorOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTestPlansAndSuitesMigrationProcessor.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTestPlansAndSuitesMigrationProcessorOptions.cs
redirectFrom:
- /Reference/Processors/TfsTestPlansAndSuitesMigrationProcessorOptions/
@@ -88,12 +93,11 @@ topics:
- topic: notes
path: /docs/Reference/Processors/TfsTestPlansAndSuitesMigrationProcessor-notes.md
exists: true
- markdown: >2-
-
+ markdown: >+
## Additional Samples & Info
- To run a full plans and suits you should run the three processors in this order below. `TestVariablesMigrationConfig` and `TestConfigurationsMigrationConfig` only need run once.
+ To run a full plans and suites you should run the three processors in this order below. `TestVariablesMigrationConfig` and `TestConfigurationsMigrationConfig` only need run once.
```json
@@ -126,6 +130,7 @@ topics:
```
+
## Known working TestPlanQueryBit filter fields names
diff --git a/docs/collections/_reference/reference.processors.tfstestvariablesmigrationprocessor.md b/docs/collections/_reference/reference.processors.tfstestvariablesmigrationprocessor.md
index d16ea39b3..16843b7f9 100644
--- a/docs/collections/_reference/reference.processors.tfstestvariablesmigrationprocessor.md
+++ b/docs/collections/_reference/reference.processors.tfstestvariablesmigrationprocessor.md
@@ -31,11 +31,11 @@ architecture:
options:
- parameterName: Enabled
type: Boolean
- description: missing XML code comments
+ description: If set to `true` then the processor will run. Set to `false` and the processor will not run.
defaultValue: missing XML code comments
- parameterName: Processor
type: String
- description: missing XML code comments
+ description: Gets the processor identifier for test variables migration.
defaultValue: missing XML code comments
- parameterName: SourceName
type: String
@@ -47,8 +47,8 @@ options:
defaultValue: missing XML code comments
status: Beta
processingTarget: Suites & Plans
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTestVariablesMigrationProcessor.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTestVariablesMigrationProcessorOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTestVariablesMigrationProcessor.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTestVariablesMigrationProcessorOptions.cs
redirectFrom:
- /Reference/Processors/TfsTestVariablesMigrationProcessorOptions/
diff --git a/docs/collections/_reference/reference.processors.tfsworkitembulkeditprocessor.md b/docs/collections/_reference/reference.processors.tfsworkitembulkeditprocessor.md
index 1dd9239ea..4ec1fbbc4 100644
--- a/docs/collections/_reference/reference.processors.tfsworkitembulkeditprocessor.md
+++ b/docs/collections/_reference/reference.processors.tfsworkitembulkeditprocessor.md
@@ -29,7 +29,7 @@ configurationSamples:
"TargetName": null
}
sampleFor: MigrationTools._EngineV1.Configuration.Processing.TfsWorkItemBulkEditProcessorOptions
-description: This processor allows you to make changes in place where we load from teh Target and update the Target. This is used for bulk updates with the most common reason being a process template change.
+description: This processor allows you to make changes in place where we load from the Target and update the Target. This is used for bulk updates with the most common reason being a process template change.
className: TfsWorkItemBulkEditProcessor
typeName: Processors
architecture:
@@ -56,8 +56,8 @@ options:
defaultValue: missing XML code comments
- parameterName: WhatIf
type: Boolean
- description: missing XML code comments
- defaultValue: missing XML code comments
+ description: Gets or sets a value indicating whether to run in "what if" mode without making actual changes to work items.
+ defaultValue: false
- parameterName: WIQLQuery
type: String
description: 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)
@@ -72,8 +72,8 @@ options:
defaultValue: '[]'
status: missing XML code comments
processingTarget: WorkItem
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemBulkEditProcessor.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemBulkEditProcessorOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemBulkEditProcessor.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemBulkEditProcessorOptions.cs
redirectFrom:
- /Reference/Processors/TfsWorkItemBulkEditProcessorOptions/
diff --git a/docs/collections/_reference/reference.processors.tfsworkitemdeleteprocessor.md b/docs/collections/_reference/reference.processors.tfsworkitemdeleteprocessor.md
index fb8130034..3f5dcf2cd 100644
--- a/docs/collections/_reference/reference.processors.tfsworkitemdeleteprocessor.md
+++ b/docs/collections/_reference/reference.processors.tfsworkitemdeleteprocessor.md
@@ -39,11 +39,11 @@ options:
defaultValue: missing XML code comments
- parameterName: FilterWorkItemsThatAlreadyExistInTarget
type: Boolean
- description: missing XML code comments
+ description: Gets or sets a value indicating whether to filter out work items that already exist in the target before deletion. Typically used to avoid deleting items that shouldn't be removed.
defaultValue: missing XML code comments
- parameterName: PauseAfterEachWorkItem
type: Boolean
- description: missing XML code comments
+ description: Gets or sets a value indicating whether to pause after each work item is deleted for review or debugging purposes.
defaultValue: missing XML code comments
- parameterName: SourceName
type: String
@@ -55,20 +55,20 @@ options:
defaultValue: missing XML code comments
- parameterName: WIQLQuery
type: String
- description: missing XML code comments
- defaultValue: missing XML code comments
+ description: Gets or sets the WIQL query used to select work items for deletion. Should return a list of work item IDs.
+ defaultValue: 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
- parameterName: WorkItemCreateRetryLimit
type: Int32
- description: missing XML code comments
+ description: Gets or sets the number of retry attempts for work item deletion operations when they fail due to transient errors.
defaultValue: missing XML code comments
- parameterName: WorkItemIDs
type: IList
- description: missing XML code comments
+ description: Gets or sets a specific list of work item IDs to delete. When specified, takes precedence over the WIQL query.
defaultValue: missing XML code comments
status: ready
processingTarget: WorkItem
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemDeleteProcessor.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemDeleteProcessorOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemDeleteProcessor.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemDeleteProcessorOptions.cs
redirectFrom:
- /Reference/Processors/TfsWorkItemDeleteProcessorOptions/
diff --git a/docs/collections/_reference/reference.processors.tfsworkitemmigrationprocessor.md b/docs/collections/_reference/reference.processors.tfsworkitemmigrationprocessor.md
index f25084647..22e5849a0 100644
--- a/docs/collections/_reference/reference.processors.tfsworkitemmigrationprocessor.md
+++ b/docs/collections/_reference/reference.processors.tfsworkitemmigrationprocessor.md
@@ -118,8 +118,8 @@ options:
defaultValue: 5
status: ready
processingTarget: Work Items
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemMigrationProcessor.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemMigrationProcessorOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemMigrationProcessor.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemMigrationProcessorOptions.cs
redirectFrom:
- /Reference/Processors/TfsWorkItemMigrationProcessorOptions/
@@ -138,7 +138,7 @@ topics:
## WIQL Query
- The Work Item queries are all built using Work Item [Query Language (WIQL)](https://docs.microsoft.com/en-us/azure/devops/boards/queries/wiql-syntax). We only support flat quereis that have `FROM WorkItems` in the query.
+ The Work Item queries are all built using Work Item [Query Language (WIQL)](https://docs.microsoft.com/en-us/azure/devops/boards/queries/wiql-syntax). We only support flat quereis that have `FROM WorkItems` in the query.
> Note: A useful Azure DevOps Extension to explore WIQL is the [WIQL Editor](https://marketplace.visualstudio.com/items?itemName=ottostreifel.wiql-editor)
@@ -159,6 +159,7 @@ topics:
```
+
Scope to Area Path (Team data):
@@ -169,26 +170,35 @@ topics:
```
- ## NodeBasePath Configuration
+ Limit to specific work items (for testing purposes)
- Moved to the TfsNodeStructure
+ ```
+ "WIQLQuery": "SELECT [System.Id] FROM WorkItems WHERE [System.Id] in (123,456,789) AND [System.TeamProject] = @TeamProject AND [System.AreaPath] UNDER 'project\Team 1\' AND [System.WorkItemType] NOT IN ('Test Suite', 'Test Plan','Shared Steps','Shared Parameter','Feedback Request') ORDER BY [System.ChangedDate] desc"
+
+ ```
- # Iteration Maps and Area Maps
+
+ ## NodeBasePath Configuration
Moved to the TfsNodeStructure
+ # Iteration Maps and Area Maps
+
+
+ Moved to the TfsNodeStructure
## More Complex Team Migrations
+
The above options allow you to bring over a sub-set of the WIs (using the `WIQLQueryBit`) and move their area or iteration path to a default location. However you may wish to do something more complex e.g. re-map the team structure. This can be done with addition of a `FieldMaps` block to configuration in addition to the `NodeBasePaths`.
- Using the above sample structure, if you wanted to map the source project `Team 1` to target project `Team A` etc. you could add the field map as follows
+ Using the above sample structure, if you wanted to map the source project `Team 1` to target project `Team A` etc. you could add the field map as follows
A complete list of [FieldMaps](../Reference/FieldMaps/index.md) are available.
@@ -213,7 +223,7 @@ topics:
```
- > Note: This mappings could also be achieved with other forms of Field mapper e.g. `RegexFieldMapConfig`, but the value mapper as an example is easy to understand
+ > Note: These mappings could also be achieved with other forms of Field mapper e.g. `RegexFieldMapConfig`, but the value mapper as an example is easy to understand
# Removed Properties
diff --git a/docs/collections/_reference/reference.processors.tfsworkitemoverwriteareasastagsprocessor.md b/docs/collections/_reference/reference.processors.tfsworkitemoverwriteareasastagsprocessor.md
index b26bd86e8..0effc1ccd 100644
--- a/docs/collections/_reference/reference.processors.tfsworkitemoverwriteareasastagsprocessor.md
+++ b/docs/collections/_reference/reference.processors.tfsworkitemoverwriteareasastagsprocessor.md
@@ -32,7 +32,7 @@ options:
- parameterName: AreaIterationPath
type: String
description: This is a required parameter. That define the root path of the iteration. To get the full path use `\`
- defaultValue: '\'
+ defaultValue: \
- parameterName: Enabled
type: Boolean
description: If set to `true` then the processor will run. Set to `false` and the processor will not run.
@@ -47,8 +47,8 @@ options:
defaultValue: missing XML code comments
status: Beta
processingTarget: Work Item
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemOverwriteAreasAsTagsProcessor.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemOverwriteAreasAsTagsProcessorOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemOverwriteAreasAsTagsProcessor.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemOverwriteAreasAsTagsProcessorOptions.cs
redirectFrom:
- /Reference/Processors/TfsWorkItemOverwriteAreasAsTagsProcessorOptions/
diff --git a/docs/collections/_reference/reference.processors.tfsworkitemoverwriteprocessor.md b/docs/collections/_reference/reference.processors.tfsworkitemoverwriteprocessor.md
index 2f0f651fa..1711b6f29 100644
--- a/docs/collections/_reference/reference.processors.tfsworkitemoverwriteprocessor.md
+++ b/docs/collections/_reference/reference.processors.tfsworkitemoverwriteprocessor.md
@@ -28,7 +28,7 @@ configurationSamples:
"TargetName": null
}
sampleFor: MigrationTools.Processors.TfsWorkItemOverwriteProcessorOptions
-description: Reapply field mappings after a migration. Does not migtate Work Items, only reapplied changes to filed mappings.
+description: Reapply field mappings after a migration. Does not migrate Work Items, only reapplies changes to field mappings.
className: TfsWorkItemOverwriteProcessor
typeName: Processors
architecture:
@@ -67,8 +67,8 @@ options:
defaultValue: '[]'
status: preview
processingTarget: Work Items
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemOverwriteProcessor.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemOverwriteProcessorOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemOverwriteProcessor.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemOverwriteProcessorOptions.cs
redirectFrom:
- /Reference/Processors/TfsWorkItemOverwriteProcessorOptions/
diff --git a/docs/collections/_reference/reference.processors.workitemtrackingprocessor.md b/docs/collections/_reference/reference.processors.workitemtrackingprocessor.md
index 4f968c072..656590e0f 100644
--- a/docs/collections/_reference/reference.processors.workitemtrackingprocessor.md
+++ b/docs/collections/_reference/reference.processors.workitemtrackingprocessor.md
@@ -33,7 +33,7 @@ architecture:
options:
- parameterName: CollapseRevisions
type: Boolean
- description: missing XML code comments
+ description: Gets or sets a value indicating whether to collapse revisions into a single work item.
defaultValue: missing XML code comments
- parameterName: Enabled
type: Boolean
@@ -41,7 +41,7 @@ options:
defaultValue: missing XML code comments
- parameterName: ReplayRevisions
type: Boolean
- description: missing XML code comments
+ description: Gets or sets a value indicating whether to replay all revisions during migration.
defaultValue: missing XML code comments
- parameterName: SourceName
type: String
@@ -53,12 +53,12 @@ options:
defaultValue: missing XML code comments
- parameterName: WorkItemCreateRetryLimit
type: Int32
- description: missing XML code comments
+ description: Gets or sets the number of times to retry work item creation if it fails.
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools/Processors/WorkItemTrackingProcessor.cs
-optionsClassFile: /src/MigrationTools/Processors/WorkItemTrackingProcessorOptions.cs
+classFile: src/MigrationTools/Processors/WorkItemTrackingProcessor.cs
+optionsClassFile: src/MigrationTools/Processors/WorkItemTrackingProcessorOptions.cs
redirectFrom:
- /Reference/Processors/WorkItemTrackingProcessorOptions/
diff --git a/docs/collections/_reference/reference.tools.fieldmappingtool.md b/docs/collections/_reference/reference.tools.fieldmappingtool.md
index b49db683f..d04d112c7 100644
--- a/docs/collections/_reference/reference.tools.fieldmappingtool.md
+++ b/docs/collections/_reference/reference.tools.fieldmappingtool.md
@@ -201,7 +201,7 @@ configurationSamples:
"FieldMaps": []
}
sampleFor: MigrationTools.Tools.FieldMappingToolOptions
-description: missing XML code comments
+description: Tool for applying field mapping transformations to work items during migration, supporting various field mapping strategies like direct mapping, regex transformations, and value lookups.
className: FieldMappingTool
typeName: Tools
architecture:
@@ -212,12 +212,12 @@ options:
defaultValue: missing XML code comments
- parameterName: FieldMaps
type: List
- description: missing XML code comments
+ description: Gets or sets the list of field mapping configurations to apply.
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools/Tools/FieldMappingTool.cs
-optionsClassFile: /src/MigrationTools/Tools/FieldMappingToolOptions.cs
+classFile: src/MigrationTools/Tools/FieldMappingTool.cs
+optionsClassFile: src/MigrationTools/Tools/FieldMappingToolOptions.cs
redirectFrom:
- /Reference/Tools/FieldMappingToolOptions/
diff --git a/docs/collections/_reference/reference.tools.stringmanipulatortool.md b/docs/collections/_reference/reference.tools.stringmanipulatortool.md
index a5bce773d..a41a72ed7 100644
--- a/docs/collections/_reference/reference.tools.stringmanipulatortool.md
+++ b/docs/collections/_reference/reference.tools.stringmanipulatortool.md
@@ -81,8 +81,8 @@ options:
defaultValue: 1000000
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools/Tools/StringManipulatorTool.cs
-optionsClassFile: /src/MigrationTools/Tools/StringManipulatorToolOptions.cs
+classFile: src/MigrationTools/Tools/StringManipulatorTool.cs
+optionsClassFile: src/MigrationTools/Tools/StringManipulatorToolOptions.cs
redirectFrom:
- /Reference/Tools/StringManipulatorToolOptions/
diff --git a/docs/collections/_reference/reference.tools.tfsattachmenttool.md b/docs/collections/_reference/reference.tools.tfsattachmenttool.md
index 42099a09a..a24111c50 100644
--- a/docs/collections/_reference/reference.tools.tfsattachmenttool.md
+++ b/docs/collections/_reference/reference.tools.tfsattachmenttool.md
@@ -49,7 +49,7 @@ configurationSamples:
"MaxAttachmentSize": 480000000
}
sampleFor: MigrationTools.Tools.TfsAttachmentToolOptions
-description: missing XML code comments
+description: Tool for processing and migrating work item attachments between Team Foundation Server instances, handling file downloads, uploads, and attachment metadata.
className: TfsAttachmentTool
typeName: Tools
architecture:
@@ -68,8 +68,8 @@ options:
defaultValue: 480000000
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsAttachmentTool.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsAttachmentToolOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsAttachmentTool.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsAttachmentToolOptions.cs
redirectFrom:
- /Reference/Tools/TfsAttachmentToolOptions/
diff --git a/docs/collections/_reference/reference.tools.tfschangesetmappingtool.md b/docs/collections/_reference/reference.tools.tfschangesetmappingtool.md
index 95b8ef3cd..eca3bc9c4 100644
--- a/docs/collections/_reference/reference.tools.tfschangesetmappingtool.md
+++ b/docs/collections/_reference/reference.tools.tfschangesetmappingtool.md
@@ -59,8 +59,8 @@ options:
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsChangeSetMappingTool.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsChangeSetMappingToolOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsChangeSetMappingTool.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsChangeSetMappingToolOptions.cs
redirectFrom:
- /Reference/Tools/TfsChangeSetMappingToolOptions/
diff --git a/docs/collections/_reference/reference.tools.tfsembededimagestool.md b/docs/collections/_reference/reference.tools.tfsembededimagestool.md
index 4cc6d2221..537fcd444 100644
--- a/docs/collections/_reference/reference.tools.tfsembededimagestool.md
+++ b/docs/collections/_reference/reference.tools.tfsembededimagestool.md
@@ -52,8 +52,8 @@ options:
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsEmbededImagesTool.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsEmbededImagesToolOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsEmbededImagesTool.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsEmbededImagesToolOptions.cs
redirectFrom:
- /Reference/Tools/TfsEmbededImagesToolOptions/
diff --git a/docs/collections/_reference/reference.tools.tfsgitrepositorytool.md b/docs/collections/_reference/reference.tools.tfsgitrepositorytool.md
index a745f98f6..aae863097 100644
--- a/docs/collections/_reference/reference.tools.tfsgitrepositorytool.md
+++ b/docs/collections/_reference/reference.tools.tfsgitrepositorytool.md
@@ -43,6 +43,7 @@ configurationSamples:
{
"$type": "TfsGitRepositoryToolOptions",
"Enabled": true,
+ "ShouldDropChangedSetLinks": false,
"Mappings": {
"RepoInSource": "RepoInTarget"
}
@@ -59,12 +60,16 @@ options:
defaultValue: missing XML code comments
- parameterName: Mappings
type: Dictionary
- description: List of work item mappings.
+ description: Dictionary mapping source repository names to target repository names. Used to update Git repository links and references in work items during migration.
defaultValue: '{}'
+- parameterName: ShouldDropChangedSetLinks
+ type: Boolean
+ description: When set to true, changeset links in work items will be removed during migration to prevent broken links when repositories are not migrated.
+ defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsGitRepositoryTool.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsGitRepositoryToolOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsGitRepositoryTool.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsGitRepositoryToolOptions.cs
redirectFrom:
- /Reference/Tools/TfsGitRepositoryToolOptions/
diff --git a/docs/collections/_reference/reference.tools.tfsnodestructuretool.md b/docs/collections/_reference/reference.tools.tfsnodestructuretool.md
index 1b971fc92..8c930b4f3 100644
--- a/docs/collections/_reference/reference.tools.tfsnodestructuretool.md
+++ b/docs/collections/_reference/reference.tools.tfsnodestructuretool.md
@@ -97,7 +97,7 @@ configurationSamples:
"ReplicateAllExistingNodes": true
}
sampleFor: MigrationTools.Tools.TfsNodeStructureToolOptions
-description: The TfsNodeStructureToolEnricher is used to create missing nodes in the target project. To configure it add a `TfsNodeStructureToolOptions` section to `CommonEnrichersConfig` in the config file. Otherwise defaults will be applied.
+description: Tool for creating missing area and iteration path nodes in the target project during migration. Configurable through TfsNodeStructureToolOptions to specify which node types to create.
className: TfsNodeStructureTool
typeName: Tools
architecture:
@@ -124,8 +124,8 @@ options:
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsNodeStructureTool.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsNodeStructureToolOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsNodeStructureTool.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsNodeStructureToolOptions.cs
redirectFrom:
- /Reference/Tools/TfsNodeStructureToolOptions/
@@ -140,10 +140,7 @@ topics:
- topic: notes
path: /docs/Reference/Tools/TfsNodeStructureTool-notes.md
exists: true
- markdown: >2+
-
-
-
+ markdown: >+
## Iteration Maps and Area Maps
@@ -185,7 +182,7 @@ topics:
The syntax is a dictionary of regular expressions and the replacement text.
- *Warning*: These follow the
+ _Warning_: These follow the
[.net regular expression language](https://docs.microsoft.com/en-us/dotnet/standard/base-types/regular-expression-language-quick-reference).
@@ -196,7 +193,7 @@ topics:
use back-references in the replacement string.
- *Warning*: Special characters in the acceptation of regular expressions _and_
+ _Warning_: Special characters in the acceptation of regular expressions _and_
json both need to be escaped. For a key, this means, for example, that a
@@ -213,7 +210,7 @@ topics:
(`\\`) due to the special meaning in json.
- *Advice*: To avoid unexpected results, always match terminating backslashes in
+ _Advice_: To avoid unexpected results, always match terminating backslashes in
the search pattern and replacement string: if a search pattern ends with a
@@ -224,7 +221,6 @@ topics:
in the replacement string.
-
### Configuration
@@ -291,7 +287,6 @@ topics:
`TargetProject\NewArea\ValidArea\` but `OriginalProject\DescopeThis` would not
be modified by this rule.
-
### PrefixProjectToNodes
@@ -341,6 +336,7 @@ topics:
```
+
Or you can use regular expressions to match the missing area or iteration paths:
@@ -371,26 +367,26 @@ topics:
```
- If the olf iteration path was `\oldproject1\Custom Reporting\Sprint 13`, then this would result in a match for each Iteration node after the project node. You would then be able to reference any of the nodes using "$" and then the number of the match.
+ If the old iteration path was `\oldproject1\Custom Reporting\Sprint 13`, then this would result in a match for each Iteration node after the project node. You would then be able to reference any of the nodes using "$" and then the number of the match.
Regular expressions are much more difficult to build and debug so it is a good idea to use a [regular expression tester](https://regex101.com/) to check that you are matching the right things and to build them in ChatGTP.
- _NOTE: You need `\\` to escape a `\` the pattern, and `\\` to escape a `\` in JSON. Therefor on the left of the match you need 4 `\` to represent the `\\` for the pattern and only 2 `\` in the match_
+ _NOTE: You need `\\` to escape a `\` the pattern, and `\\` to escape a `\` in JSON. Therefor on the left of the match you need 4 `\` to represent the `\\` for the pattern and only 2 `\` in the match_

- ### Example with PrefixProjectToNodes
+ ### Example with PrefixProjectToNodes
This will prepend a bucket to the area and iteration paths. This is useful when you want to keep the original paths but also want to be able to identify them as being from the original project.
- ```json
+ ````json
```json
@@ -403,7 +399,7 @@ topics:
"^OriginalProject(?:\\\\([^\\\\]+))?\\\\([^\\\\]+)$": "TargetProject\\BucketForIncommingInterations\$2",
}
- ```
+ ````
### Example with AreaMaps and IterationMaps
@@ -432,59 +428,60 @@ topics:
## Filters
+
The `NodeBasePaths` entry allows the filtering of the nodes to be replicated on the target projects. To try to explain the correct usage let us assume that we have a source team project `SourceProj` with the following node structures
- AreaPath
- - SourceProj
- - SourceProj\Team 1
- - SourceProj\Team 2
- - SourceProj\Team 2\Sub-Area 1
- - SourceProj\Team 2\Sub-Area 2
- - SourceProj\Team 3
+ - SourceProj
+ - SourceProj\Team 1
+ - SourceProj\Team 2
+ - SourceProj\Team 2\Sub-Area 1
+ - SourceProj\Team 2\Sub-Area 2
+ - SourceProj\Team 3
- IterationPath
- - SourceProj
- - SourceProj\Sprint 1
- - SourceProj\Sprint 2
- - SourceProj\Sprint 2\Sub-Iteration
- - SourceProj\Sprint 3
+ - SourceProj
+ - SourceProj\Sprint 1
+ - SourceProj\Sprint 2
+ - SourceProj\Sprint 2\Sub-Iteration
+ - SourceProj\Sprint 3
Depending upon what node structures you wish to migrate you would need the following settings. Exclusions are also possible by prefixing a path with an exclamation mark `!`. Example are
- | | |
+ | | |
- |-|-|
+ | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
- | Intention | Migrate all areas and iterations and all Work Items
+ | Intention | Migrate all areas and iterations and all Work Items |
- | Filters | `[]`
+ | Filters | `[]` |
- | Comment | The same AreaPath and Iteration Paths are created on the target as on the source. Hence, all migrated WI remain in their existing area and iteration paths.
This will be affected by the `AreaMaps` and `IterationMaps` settings.
+ | Comment | The same AreaPath and Iteration Paths are created on the target as on the source. Hence, all migrated WI remain in their existing area and iteration paths.
This will be affected by the `AreaMaps` and `IterationMaps` settings. |
- ||
+ | |
- | Intention | Only migrate area path `Team 2` and it associated Work Items, but all iteration paths
+ | Intention | Only migrate area path `Team 2` and it associated Work Items, but all iteration paths |
- | NodeBasePath | `["*\\Team 2", "*\\Sprint*"]`
+ | NodeBasePath | `["*\\Team 2", "*\\Sprint*"]` |
- | Comment | Only the area path ending `Team 2` will be migrated.
The `WIQLQuery` should be edited to limit the WI migrated to this area path e.g. add `AND [System.AreaPath] UNDER 'SampleProject\\Team 2'` .
The migrated WI will have an area path of `TargetProj\Team 2` but retain their iteration paths matching the sprint name on the source
+ | Comment | Only the area path ending `Team 2` will be migrated.
The `WIQLQuery` should be edited to limit the WI migrated to this area path e.g. add `AND [System.AreaPath] UNDER 'SampleProject\\Team 2'` .
The migrated WI will have an area path of `TargetProj\Team 2` but retain their iteration paths matching the sprint name on the source |
- ||
+ | |
- | Intention | Move the `Team 2` area, including its `Sub-Area`, and any others at the same level
+ | Intention | Move the `Team 2` area, including its `Sub-Area`, and any others at the same level |
- | NodeBasePath | `["*\\Team 2", "Team 2\\*"]`
+ | NodeBasePath | `["*\\Team 2", "Team 2\\*"]` |
- | Comment | The Work Items will have to be restricted to the right areas, e.g. with `AND [System.AreaPath] UNDER 'SampleProject\\Team 2' AND [System.AreaPath] NOT UNDER 'SampleProject\\Team 2\\Sub-Area'`, otherwise their migratin will fail
+ | Comment | The Work Items will have to be restricted to the right areas, e.g. with `AND [System.AreaPath] UNDER 'SampleProject\\Team 2' AND [System.AreaPath] NOT UNDER 'SampleProject\\Team 2\\Sub-Area'`, otherwise their migration will fail |
- ||
+ | |
- | Intention | Move the `Team 2` area, but not its `Sub-Area`
+ | Intention | Move the `Team 2` area, but not its `Sub-Area` |
- | NodeBasePath | `["*\\Team 2", "!Team 2\\SubArea"]`
+ | NodeBasePath | `["*\\Team 2", "!Team 2\\SubArea"]` |
- | Comment | The Work Items will have to be restricted to the right areas, e.g. with `AND [System.AreaPath] UNDER 'SampleProject\\Team 2' AND [System.AreaPath] NOT UNDER 'SampleProject\\Team 2\\Sub-Area'`, otherwise their migratin will fail
+ | Comment | The Work Items will have to be restricted to the right areas, e.g. with `AND [System.AreaPath] UNDER 'SampleProject\\Team 2' AND [System.AreaPath] NOT UNDER 'SampleProject\\Team 2\\Sub-Area'`, otherwise their migration will fail |
# Patterns
@@ -492,34 +489,32 @@ topics:
The following patterns are supported:
- >
- | Wildcard | Description | Example | Matches | Does not match |
+ > | Wildcard | Description | Example | Matches | Does not match |
- | -------- | ----------- | ------- | ------- | -------------- |
+ > | -------- | --------------------------------------------------------------------- | ------------ | -------------------------------------------------------- | ------------------------------------- |
- | \* | matches any number of any characters including none | Law\*| Law, Laws, or Lawyer |
+ > | \* | matches any number of any characters including none | Law\* | Law, Laws, or Lawyer |
- | ? | matches any single character | ?at | Cat, cat, Bat or bat | at |
+ > | ? | matches any single character | ?at | Cat, cat, Bat or bat | at |
- | [abc] | matches one character given in the bracket | [CB]at | Cat or Bat | cat or bat |
+ > | [abc] | matches one character given in the bracket | [CB]at | Cat or Bat | cat or bat |
- | [a-z] | matches one character from the range given in the bracket | Letter[0-9] | Letter0, Letter1, Letter2 up to Letter9 | Letters, Letter or Letter10 |
+ > | [a-z] | matches one character from the range given in the bracket | Letter[0-9] | Letter0, Letter1, Letter2 up to Letter9 | Letters, Letter or Letter10 |
- | [!abc] | matches one character that is not given in the bracket | [!C]at | Bat, bat, or cat | Cat |
+ > | [!abc] | matches one character that is not given in the bracket | [!C]at | Bat, bat, or cat | Cat |
- | [!a-z] | matches one character that is not from the range given in the bracket | Letter[!3-5] | Letter1, Letter2, Letter6 up to Letter9 and Letterx etc. | Letter3, Letter4, Letter5 or Letterxx |
+ > | [!a-z] | matches one character that is not from the range given in the bracket | Letter[!3-5] | Letter1, Letter2, Letter6 up to Letter9 and Letterx etc. | Letter3, Letter4, Letter5 or Letterxx |
In addition, Glob also supports:
- | Wildcard | Description | Example | Matches | Does not match |
-
- | -------- | ----------- | ------- | ------- | -------------- |
+ | Wildcard | Description | Example | Matches | Does not match |
- | `**` | matches any number of path / directory segments. When used must be the only contents of a segment. | /\*\*/some.\* | /foo/bar/bah/some.txt, /some.txt, or /foo/some.txt |
+ | -------- | -------------------------------------------------------------------------------------------------- | ------------- | -------------------------------------------------- | -------------- |
+ | `**` | matches any number of path / directory segments. When used must be the only contents of a segment. | /\*\*/some.\* | /foo/bar/bah/some.txt, /some.txt, or /foo/some.txt |
# Escaping special characters
diff --git a/docs/collections/_reference/reference.tools.tfsrevisionmanagertool.md b/docs/collections/_reference/reference.tools.tfsrevisionmanagertool.md
index 5c33f5264..9187713cf 100644
--- a/docs/collections/_reference/reference.tools.tfsrevisionmanagertool.md
+++ b/docs/collections/_reference/reference.tools.tfsrevisionmanagertool.md
@@ -66,8 +66,8 @@ options:
defaultValue: true
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsRevisionManagerTool.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsRevisionManagerToolOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsRevisionManagerTool.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsRevisionManagerToolOptions.cs
redirectFrom:
- /Reference/Tools/TfsRevisionManagerToolOptions/
diff --git a/docs/collections/_reference/reference.tools.tfsteamsettingstool.md b/docs/collections/_reference/reference.tools.tfsteamsettingstool.md
index 24d698267..ba7065c19 100644
--- a/docs/collections/_reference/reference.tools.tfsteamsettingstool.md
+++ b/docs/collections/_reference/reference.tools.tfsteamsettingstool.md
@@ -53,13 +53,14 @@ configurationSamples:
"MigrateTeamSettings": true,
"UpdateTeamSettings": true,
"MigrateTeamCapacities": true,
+ "UseUserMapping": false,
"Teams": [
"Team 1",
"Team 2"
]
}
sampleFor: MigrationTools.Tools.TfsTeamSettingsToolOptions
-description: The TfsUserMappingTool is used to map users from the source to the target system. Run it with the ExportUsersForMappingContext to create a mapping file then with WorkItemMigrationContext to use the mapping file to update the users in the target system as you migrate the work items.
+description: Tool for migrating team settings including team configurations, area paths, iterations, and team-specific settings from source to target Team Foundation Server or Azure DevOps.
className: TfsTeamSettingsTool
typeName: Tools
architecture:
@@ -84,10 +85,14 @@ options:
type: Boolean
description: Reset the target team settings to match the source if the team exists
defaultValue: false
+- parameterName: UseUserMapping
+ type: Boolean
+ description: Use user mapping file from TfsTeamSettingsTool when matching users when migrating capacities. By default, users in source are matched in target users by current display name. When this is set to `true`, users are matched also by mapped name from user mapping file.
+ defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsTeamSettingsTool.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsTeamSettingsToolOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsTeamSettingsTool.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsTeamSettingsToolOptions.cs
redirectFrom:
- /Reference/Tools/TfsTeamSettingsToolOptions/
diff --git a/docs/collections/_reference/reference.tools.tfsusermappingtool.md b/docs/collections/_reference/reference.tools.tfsusermappingtool.md
index 9745565ff..aa8ac43c4 100644
--- a/docs/collections/_reference/reference.tools.tfsusermappingtool.md
+++ b/docs/collections/_reference/reference.tools.tfsusermappingtool.md
@@ -71,7 +71,8 @@ configurationSamples:
"Microsoft.VSTS.Common.ResolvedBy",
"Microsoft.VSTS.Common.ClosedBy"
],
- "UserMappingFile": "C:\\temp\\userExport.json"
+ "UserMappingFile": "C:\\temp\\userExport.json",
+ "MatchUsersByEmail": false
}
sampleFor: MigrationTools.Tools.TfsUserMappingToolOptions
description: The TfsUserMappingTool is used to map users from the source to the target system. Run it with the ExportUsersForMappingContext to create a mapping file then with WorkItemMigrationContext to use the mapping file to update the users in the target system as you migrate the work items.
@@ -85,7 +86,11 @@ options:
defaultValue: missing XML code comments
- parameterName: IdentityFieldsToCheck
type: List
- description: This is a list of the Identiy fields in the Source to check for user mapping purposes. You should list all identiy fields that you wan to map.
+ description: This is a list of the Identiy fields in the Source to check for user mapping purposes. You should list all identiy fields that you want to map.
+ defaultValue: missing XML code comments
+- parameterName: MatchUsersByEmail
+ type: Boolean
+ description: By default, users in source are mapped to target users by their display name. If this is set to true, then the users will be mapped by their email address first. If no match is found, then the display name will be used.
defaultValue: missing XML code comments
- parameterName: UserMappingFile
type: String
@@ -93,8 +98,8 @@ options:
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsUserMappingTool.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsUserMappingToolOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsUserMappingTool.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsUserMappingToolOptions.cs
redirectFrom:
- /Reference/Tools/TfsUserMappingToolOptions/
diff --git a/docs/collections/_reference/reference.tools.tfsvalidaterequiredfieldtool.md b/docs/collections/_reference/reference.tools.tfsvalidaterequiredfieldtool.md
index 6c202ce80..8be1d453d 100644
--- a/docs/collections/_reference/reference.tools.tfsvalidaterequiredfieldtool.md
+++ b/docs/collections/_reference/reference.tools.tfsvalidaterequiredfieldtool.md
@@ -21,7 +21,7 @@ configurationSamples:
"Enabled": false
}
sampleFor: MigrationTools.Tools.TfsValidateRequiredFieldToolOptions
-description: missing XML code comments
+description: Tool for validating that required fields exist in target work item types before migration, preventing migration failures due to missing required fields.
className: TfsValidateRequiredFieldTool
typeName: Tools
architecture:
@@ -32,8 +32,8 @@ options:
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsValidateRequiredFieldTool.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsValidateRequiredFieldToolOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsValidateRequiredFieldTool.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsValidateRequiredFieldToolOptions.cs
redirectFrom:
- /Reference/Tools/TfsValidateRequiredFieldToolOptions/
diff --git a/docs/collections/_reference/reference.tools.tfsworkitemembededlinktool.md b/docs/collections/_reference/reference.tools.tfsworkitemembededlinktool.md
index 38e4122d0..5c4b4676a 100644
--- a/docs/collections/_reference/reference.tools.tfsworkitemembededlinktool.md
+++ b/docs/collections/_reference/reference.tools.tfsworkitemembededlinktool.md
@@ -41,7 +41,7 @@ configurationSamples:
"Enabled": true
}
sampleFor: MigrationTools.Tools.TfsWorkItemEmbededLinkToolOptions
-description: missing XML code comments
+description: Tool for processing embedded links within work item fields, such as links in HTML fields and converting work item references between source and target systems.
className: TfsWorkItemEmbededLinkTool
typeName: Tools
architecture:
@@ -52,8 +52,8 @@ options:
defaultValue: missing XML code comments
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsWorkItemEmbededLinkTool.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsWorkItemEmbededLinkToolOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsWorkItemEmbededLinkTool.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsWorkItemEmbededLinkToolOptions.cs
redirectFrom:
- /Reference/Tools/TfsWorkItemEmbededLinkToolOptions/
diff --git a/docs/collections/_reference/reference.tools.tfsworkitemlinktool.md b/docs/collections/_reference/reference.tools.tfsworkitemlinktool.md
index 4b5ad2fc7..c5b50f34f 100644
--- a/docs/collections/_reference/reference.tools.tfsworkitemlinktool.md
+++ b/docs/collections/_reference/reference.tools.tfsworkitemlinktool.md
@@ -47,7 +47,7 @@ configurationSamples:
"SaveAfterEachLinkIsAdded": false
}
sampleFor: MigrationTools.Tools.TfsWorkItemLinkToolOptions
-description: missing XML code comments
+description: Tool for migrating work item links and relationships between work items, including shared steps and parameters for test cases.
className: TfsWorkItemLinkTool
typeName: Tools
architecture:
@@ -66,8 +66,8 @@ options:
defaultValue: false
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsWorkItemLinkTool.cs
-optionsClassFile: /src/MigrationTools.Clients.TfsObjectModel/Tools/TfsWorkItemLinkToolOptions.cs
+classFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsWorkItemLinkTool.cs
+optionsClassFile: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsWorkItemLinkToolOptions.cs
redirectFrom:
- /Reference/Tools/TfsWorkItemLinkToolOptions/
diff --git a/docs/collections/_reference/reference.tools.workitemtypemappingtool.md b/docs/collections/_reference/reference.tools.workitemtypemappingtool.md
index 88fae7ad2..ebded1866 100644
--- a/docs/collections/_reference/reference.tools.workitemtypemappingtool.md
+++ b/docs/collections/_reference/reference.tools.workitemtypemappingtool.md
@@ -51,7 +51,7 @@ configurationSamples:
}
}
sampleFor: MigrationTools.Tools.WorkItemTypeMappingToolOptions
-description: Used to process the String fields of a work item. This is useful for cleaning up data. It will limit fields to a max length and apply regex replacements based on what is configured. Each regex replacement is applied in order and can be enabled or disabled.
+description: Provides mapping functionality for transforming work item types from source to target systems during migration, allowing different work item type names to be used in the target.
className: WorkItemTypeMappingTool
typeName: Tools
architecture:
@@ -66,8 +66,8 @@ options:
defaultValue: '{}'
status: missing XML code comments
processingTarget: missing XML code comments
-classFile: /src/MigrationTools/Tools/WorkItemTypeMappingTool.cs
-optionsClassFile: /src/MigrationTools/Tools/WorkItemTypeMappingToolOptions.cs
+classFile: src/MigrationTools/Tools/WorkItemTypeMappingTool.cs
+optionsClassFile: src/MigrationTools/Tools/WorkItemTypeMappingToolOptions.cs
redirectFrom:
- /Reference/Tools/WorkItemTypeMappingToolOptions/
diff --git a/src/MigrationTools.Clients.AzureDevops.Rest/Endpoints/AzureDevOpsEndpoint.cs b/src/MigrationTools.Clients.AzureDevops.Rest/Endpoints/AzureDevOpsEndpoint.cs
index 9e7c10d42..652ce9281 100644
--- a/src/MigrationTools.Clients.AzureDevops.Rest/Endpoints/AzureDevOpsEndpoint.cs
+++ b/src/MigrationTools.Clients.AzureDevops.Rest/Endpoints/AzureDevOpsEndpoint.cs
@@ -20,11 +20,22 @@
namespace MigrationTools.Endpoints
{
+ ///
+ /// Azure DevOps REST API endpoint implementation for connecting to Azure DevOps organizations. Provides HTTP client access and pipeline-related API operations for migration scenarios.
+ ///
public class AzureDevOpsEndpoint : Endpoint
{
[Obsolete("Dont know what this is for")]
public override int Count => 0;
+ ///
+ /// Initializes a new instance of the AzureDevOpsEndpoint class with the specified configuration and dependencies.
+ ///
+ /// Configuration options for the Azure DevOps endpoint connection
+ /// Container for endpoint enrichers that can modify endpoint behavior
+ /// Service provider for dependency injection
+ /// Telemetry logger for tracking operations
+ /// Logger instance for diagnostic messages
public AzureDevOpsEndpoint(IOptions optipons, EndpointEnricherContainer endpointEnrichers, IServiceProvider serviceProvider, ITelemetryLogger telemetry, ILogger logger)
: base(optipons, endpointEnrichers, serviceProvider, telemetry, logger)
{
diff --git a/src/MigrationTools.Clients.AzureDevops.Rest/Endpoints/AzureDevOpsEndpointOptions.cs b/src/MigrationTools.Clients.AzureDevops.Rest/Endpoints/AzureDevOpsEndpointOptions.cs
index ee80ed781..0856ebf8d 100644
--- a/src/MigrationTools.Clients.AzureDevops.Rest/Endpoints/AzureDevOpsEndpointOptions.cs
+++ b/src/MigrationTools.Clients.AzureDevops.Rest/Endpoints/AzureDevOpsEndpointOptions.cs
@@ -5,21 +5,39 @@
namespace MigrationTools.Endpoints
{
+ ///
+ /// Configuration options for connecting to an Azure DevOps organization endpoint. Provides authentication and project access settings for Azure DevOps REST API operations.
+ ///
public class AzureDevOpsEndpointOptions : EndpointOptions
{
+ ///
+ /// Authentication mode to use when connecting to Azure DevOps. Typically uses AccessToken for modern Azure DevOps organizations.
+ ///
[Required]
[JsonConverter(typeof(StringEnumConverter))]
public AuthenticationMode AuthenticationMode { get; set; }
+ ///
+ /// Personal Access Token (PAT) or other authentication token for accessing the Azure DevOps organization. Required for API authentication.
+ ///
[Required]
public string AccessToken { get; set; }
+ ///
+ /// URL of the Azure DevOps organization (e.g., "https://dev.azure.com/myorganization/"). Must include the full organization URL.
+ ///
[Required]
public string Organisation { get; set; }
+ ///
+ /// Name of the Azure DevOps project within the organization to connect to. This is the project that will be used for migration operations.
+ ///
[Required]
public string Project { get; set; }
+ ///
+ /// Name of the custom field used to store the reflected work item ID for tracking migrated items. Typically "Custom.ReflectedWorkItemId".
+ ///
[Required]
public string ReflectedWorkItemIdField { get; set; }
diff --git a/src/MigrationTools.Clients.AzureDevops.Rest/Processors/AzureDevOpsPipelineProcessorOptions.cs b/src/MigrationTools.Clients.AzureDevops.Rest/Processors/AzureDevOpsPipelineProcessorOptions.cs
index 57f4af6db..5bd543062 100644
--- a/src/MigrationTools.Clients.AzureDevops.Rest/Processors/AzureDevOpsPipelineProcessorOptions.cs
+++ b/src/MigrationTools.Clients.AzureDevops.Rest/Processors/AzureDevOpsPipelineProcessorOptions.cs
@@ -5,8 +5,14 @@
namespace MigrationTools.Processors
{
+ ///
+ /// Configuration options for the Azure DevOps Pipeline Processor that migrates build pipelines, release pipelines, task groups, variable groups, and service connections between Azure DevOps organizations.
+ ///
public class AzureDevOpsPipelineProcessorOptions : ProcessorOptions
{
+ ///
+ /// Initializes a new instance of the AzureDevOpsPipelineProcessorOptions class with default settings.
+ ///
public AzureDevOpsPipelineProcessorOptions()
{
Enabled = false;
@@ -40,7 +46,7 @@ public AzureDevOpsPipelineProcessorOptions()
public bool MigrateTaskGroups { get; set; }
///
- /// Migrate Valiable Groups
+ /// Migrate Variable Groups
///
/// true
public bool MigrateVariableGroups { get; set; }
diff --git a/src/MigrationTools.Clients.AzureDevops.Rest/Processors/KeepOutboundLinkTargetProcessorOptions.cs b/src/MigrationTools.Clients.AzureDevops.Rest/Processors/KeepOutboundLinkTargetProcessorOptions.cs
index 298c46cba..9081eeaab 100644
--- a/src/MigrationTools.Clients.AzureDevops.Rest/Processors/KeepOutboundLinkTargetProcessorOptions.cs
+++ b/src/MigrationTools.Clients.AzureDevops.Rest/Processors/KeepOutboundLinkTargetProcessorOptions.cs
@@ -5,8 +5,14 @@
namespace MigrationTools.Clients.AzureDevops.Rest.Processors
{
+ ///
+ /// Configuration options for the Keep Outbound Link Target Processor that preserves external links to specific Azure DevOps organizations and projects during migration cleanup operations.
+ ///
public class KeepOutboundLinkTargetProcessorOptions : ProcessorOptions
{
+ ///
+ /// Initializes a new instance of the KeepOutboundLinkTargetProcessorOptions class with default settings.
+ ///
public KeepOutboundLinkTargetProcessorOptions()
{
WIQLQuery = "Select [System.Id] From WorkItems Where [System.TeamProject] = @project and not [System.WorkItemType] contains 'Test Suite, Test Plan,Shared Steps,Shared Parameter,Feedback Request'";
@@ -17,14 +23,35 @@ public KeepOutboundLinkTargetProcessorOptions()
PrependCommand = "start";
}
+ ///
+ /// WIQL (Work Item Query Language) query used to select the work items whose outbound links should be processed for preservation.
+ ///
[Required]
public string WIQLQuery { get; set; }
+ ///
+ /// URL of the Azure DevOps organization whose links should be preserved during cleanup operations.
+ ///
public string TargetLinksToKeepOrganization { get; set; }
+
+ ///
+ /// Project name or GUID within the target organization whose links should be preserved.
+ ///
public string TargetLinksToKeepProject { get; set; }
+
+ ///
+ /// File path where the cleanup script or batch file will be generated for removing unwanted outbound links.
+ ///
public string CleanupFileName { get; set; }
+
+ ///
+ /// Command to prepend to each line in the cleanup script, such as "start" for Windows batch files.
+ ///
public string PrependCommand { get; set; }
+ ///
+ /// When true, performs a dry run without making actual changes, only generating the cleanup script for review.
+ ///
public bool DryRun { get; set; }
diff --git a/src/MigrationTools.Clients.AzureDevops.Rest/Processors/OutboundLinkCheckingProcessorOptions.cs b/src/MigrationTools.Clients.AzureDevops.Rest/Processors/OutboundLinkCheckingProcessorOptions.cs
index c00609e6d..9a8281405 100644
--- a/src/MigrationTools.Clients.AzureDevops.Rest/Processors/OutboundLinkCheckingProcessorOptions.cs
+++ b/src/MigrationTools.Clients.AzureDevops.Rest/Processors/OutboundLinkCheckingProcessorOptions.cs
@@ -5,10 +5,20 @@
namespace MigrationTools.Clients.AzureDevops.Rest.Processors
{
+ ///
+ /// Configuration options for the Outbound Link Checking Processor that validates work item links and identifies broken or invalid references.
+ ///
public class OutboundLinkCheckingProcessorOptions : ProcessorOptions
{
+ ///
+ /// WIQL (Work Item Query Language) query used to select the work items whose outbound links should be checked for validity.
+ ///
[Required]
public string WIQLQuery { get; set; }
+
+ ///
+ /// File name where the results of the outbound link checking process will be saved, typically containing details of broken or invalid links.
+ ///
[Required]
public string ResultFileName { get; set; }
diff --git a/src/MigrationTools.Clients.AzureDevops.Rest/Processors/ProcessDefinitionProcessorOptions.cs b/src/MigrationTools.Clients.AzureDevops.Rest/Processors/ProcessDefinitionProcessorOptions.cs
index f039dce99..f8700e7d8 100644
--- a/src/MigrationTools.Clients.AzureDevops.Rest/Processors/ProcessDefinitionProcessorOptions.cs
+++ b/src/MigrationTools.Clients.AzureDevops.Rest/Processors/ProcessDefinitionProcessorOptions.cs
@@ -4,13 +4,29 @@
namespace MigrationTools.Processors
{
+ ///
+ /// Configuration options for the Process Definition Processor that migrates Azure DevOps process definitions and work item types between organizations.
+ ///
public class ProcessDefinitionProcessorOptions : ProcessorOptions
{
+ ///
+ /// Dictionary mapping process names to lists of work item type names to be included in the migration. If null, all work item types will be migrated.
+ ///
public Dictionary> Processes { get; set; }
+
+ ///
+ /// Dictionary mapping source process names to target process names for process template transformations during migration.
+ ///
public Dictionary ProcessMaps { get; set; }
-
+ ///
+ /// Indicates whether to update existing process details in the target organization or only create new processes.
+ ///
public bool UpdateProcessDetails { get; set; }
+
+ ///
+ /// Maximum number of parallel operations to execute simultaneously during process definition migration to optimize performance.
+ ///
public int MaxDegreeOfParallelism { get; set; }
}
diff --git a/src/MigrationTools.Clients.FileSystem/Endpoints/FileSystemWorkItemEndpointOptions.cs b/src/MigrationTools.Clients.FileSystem/Endpoints/FileSystemWorkItemEndpointOptions.cs
index 0a3cc46b5..40100afbc 100644
--- a/src/MigrationTools.Clients.FileSystem/Endpoints/FileSystemWorkItemEndpointOptions.cs
+++ b/src/MigrationTools.Clients.FileSystem/Endpoints/FileSystemWorkItemEndpointOptions.cs
@@ -2,8 +2,14 @@
namespace MigrationTools.Endpoints
{
+ ///
+ /// Configuration options for the File System Work Item Endpoint that stores work item data in local file system directories for offline processing or backup scenarios.
+ ///
public class FileSystemWorkItemEndpointOptions : EndpointOptions
{
+ ///
+ /// Path to the directory where work item data will be stored or read from. This should be a valid local file system path with appropriate read/write permissions.
+ ///
public string FileStore { get; set; }
//public override void SetDefaults()
diff --git a/src/MigrationTools.Clients.TfsObjectModel/EndPoints/TfsTeamProjectEndPointOptions.cs b/src/MigrationTools.Clients.TfsObjectModel/EndPoints/TfsTeamProjectEndPointOptions.cs
index 529ca309f..a53631057 100644
--- a/src/MigrationTools.Clients.TfsObjectModel/EndPoints/TfsTeamProjectEndPointOptions.cs
+++ b/src/MigrationTools.Clients.TfsObjectModel/EndPoints/TfsTeamProjectEndPointOptions.cs
@@ -9,6 +9,9 @@
namespace MigrationTools.Endpoints
{
+ ///
+ /// Configuration options for connecting to a TFS Team Project endpoint. Inherits from TfsEndpointOptions to provide team project-specific connection settings.
+ ///
public class TfsTeamProjectEndpointOptions : TfsEndpointOptions
{
diff --git a/src/MigrationTools.Clients.TfsObjectModel/Endpoints/TfsEndpointOptions.cs b/src/MigrationTools.Clients.TfsObjectModel/Endpoints/TfsEndpointOptions.cs
index 03e16aedb..0b1f569aa 100644
--- a/src/MigrationTools.Clients.TfsObjectModel/Endpoints/TfsEndpointOptions.cs
+++ b/src/MigrationTools.Clients.TfsObjectModel/Endpoints/TfsEndpointOptions.cs
@@ -12,25 +12,47 @@
namespace MigrationTools.Endpoints
{
+ ///
+ /// Configuration options for connecting to a Team Foundation Server (TFS) or Azure DevOps Server endpoint. Provides authentication and project access settings for on-premises TFS operations.
+ ///
public class TfsEndpointOptions : EndpointOptions
{
+ ///
+ /// URI of the TFS collection (e.g., "http://tfsserver:8080/tfs/DefaultCollection"). Must be a valid absolute URL pointing to the TFS collection.
+ ///
[JsonProperty(Order = -3)]
[Required]
public Uri Collection { get; set; }
+
+ ///
+ /// Name of the TFS project within the collection to connect to. This is the project that will be used for migration operations.
+ ///
[JsonProperty(Order = -2)]
[Required]
public string Project { get; set; }
+ ///
+ /// Authentication configuration for connecting to the TFS server. Supports various authentication modes including Windows authentication and access tokens.
+ ///
[Required]
public TfsAuthenticationOptions Authentication { get; set; }
+ ///
+ /// Name of the custom field used to store the reflected work item ID for tracking migrated items. Typically "Custom.ReflectedWorkItemId".
+ ///
[JsonProperty(Order = -1)]
[Required]
public string ReflectedWorkItemIdField { get; set; }
+ ///
+ /// When true, allows work items to link to items in different projects within the same collection. Default is false for security and organizational clarity.
+ ///
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)]
public bool AllowCrossProjectLinking { get; set; } = false;
+ ///
+ /// Language mapping configuration for translating area and iteration path names between different language versions of TFS.
+ ///
[Required]
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)]
public TfsLanguageMapOptions LanguageMaps { get; set; } = new TfsLanguageMapOptions() { AreaPath = "Area", IterationPath = "Iteration" };
diff --git a/src/MigrationTools.Clients.TfsObjectModel/Endpoints/TfsLanguageMapOptions.cs b/src/MigrationTools.Clients.TfsObjectModel/Endpoints/TfsLanguageMapOptions.cs
index a7c98ee87..b2b16683d 100644
--- a/src/MigrationTools.Clients.TfsObjectModel/Endpoints/TfsLanguageMapOptions.cs
+++ b/src/MigrationTools.Clients.TfsObjectModel/Endpoints/TfsLanguageMapOptions.cs
@@ -5,9 +5,21 @@
namespace MigrationTools.Endpoints
{
+ ///
+ /// Configuration options for mapping language-specific field names between source and target TFS systems. Used to translate area path and iteration path field names when migrating between TFS instances with different language configurations.
+ ///
public class TfsLanguageMapOptions : IValidateOptions
{
+ ///
+ /// Gets or sets the field name for the area path in the TFS system language (e.g., "Area" for English, "Zone" for French).
+ ///
+ /// Area
public string AreaPath { get; set; }
+
+ ///
+ /// Gets or sets the field name for the iteration path in the TFS system language (e.g., "Iteration" for English, "Itération" for French).
+ ///
+ /// Iteration
public string IterationPath { get; set; }
public ValidateOptionsResult Validate(string name, TfsLanguageMapOptions options)
diff --git a/src/MigrationTools.Clients.TfsObjectModel/Endpoints/TfsTeamSettingsEndpointOptions.cs b/src/MigrationTools.Clients.TfsObjectModel/Endpoints/TfsTeamSettingsEndpointOptions.cs
index 4888a1fca..ddccb9a1d 100644
--- a/src/MigrationTools.Clients.TfsObjectModel/Endpoints/TfsTeamSettingsEndpointOptions.cs
+++ b/src/MigrationTools.Clients.TfsObjectModel/Endpoints/TfsTeamSettingsEndpointOptions.cs
@@ -1,5 +1,8 @@
namespace MigrationTools.Endpoints
{
+ ///
+ /// Configuration options for the TFS Team Settings Endpoint that provides access to team-specific settings and configurations within a TFS/Azure DevOps project.
+ ///
public class TfsTeamSettingsEndpointOptions : TfsEndpointOptions
{
}
diff --git a/src/MigrationTools.Clients.TfsObjectModel/Endpoints/TfsWorkItemEndpointOptions.cs b/src/MigrationTools.Clients.TfsObjectModel/Endpoints/TfsWorkItemEndpointOptions.cs
index 8be9e7cd3..ff8516f51 100644
--- a/src/MigrationTools.Clients.TfsObjectModel/Endpoints/TfsWorkItemEndpointOptions.cs
+++ b/src/MigrationTools.Clients.TfsObjectModel/Endpoints/TfsWorkItemEndpointOptions.cs
@@ -2,8 +2,14 @@
namespace MigrationTools.Endpoints
{
+ ///
+ /// Configuration options for the TFS/Azure DevOps Work Item Endpoint that defines connection settings and query options for accessing work items in Team Foundation Server or Azure DevOps Server.
+ ///
public class TfsWorkItemEndpointOptions : TfsEndpointOptions
{
+ ///
+ /// Gets or sets the query options that define which work items to retrieve from the source endpoint, including WIQL queries and parameters.
+ ///
public QueryOptions Query { get; set; }
//public override void SetDefaults()
diff --git a/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsCreateTeamFoldersProcessor.cs b/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsCreateTeamFoldersProcessor.cs
index f017d96ab..7e19a7ee5 100644
--- a/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsCreateTeamFoldersProcessor.cs
+++ b/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsCreateTeamFoldersProcessor.cs
@@ -16,7 +16,7 @@
namespace MigrationTools.Processors
{
///
- /// Creates folders in Sared Queries for each Team
+ /// Creates folders in Shared Queries for each Team
///
/// alpha
/// Shared Queries
diff --git a/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsExportProfilePictureFromADProcessorOptions.cs b/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsExportProfilePictureFromADProcessorOptions.cs
index f8ae78c48..ea6f409fc 100644
--- a/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsExportProfilePictureFromADProcessorOptions.cs
+++ b/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsExportProfilePictureFromADProcessorOptions.cs
@@ -5,6 +5,9 @@
namespace MigrationTools.Processors
{
+ ///
+ /// Configuration options for the TFS Export Profile Picture from Active Directory Processor that exports user profile pictures from Active Directory for migration purposes.
+ ///
public class TfsExportProfilePictureFromADProcessorOptions : ProcessorOptions
{
diff --git a/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsExportTeamListProcessor.cs b/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsExportTeamListProcessor.cs
index f60b001a2..8958b8b4f 100644
--- a/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsExportTeamListProcessor.cs
+++ b/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsExportTeamListProcessor.cs
@@ -17,8 +17,20 @@
namespace MigrationTools.Processors
{
+ ///
+ /// Exports a list of teams from the source Team Foundation Server or Azure DevOps collection, useful for analysis and planning team migrations.
+ ///
public class TfsExportTeamListProcessor : TfsProcessor
{
+ ///
+ /// Initializes a new instance of the TfsExportTeamListProcessor class.
+ ///
+ /// Configuration options for the processor
+ /// Common TFS tools for processor operations
+ /// Container for processor enrichers
+ /// Service provider for dependency injection
+ /// Telemetry logger for tracking operations
+ /// Logger for the processor operations
public TfsExportTeamListProcessor(IOptions options, TfsCommonTools tfsCommonTools, ProcessorEnricherContainer processorEnrichers, IServiceProvider services, ITelemetryLogger telemetry, ILogger logger) : base(options, tfsCommonTools, processorEnrichers, services, telemetry, logger)
{
}
diff --git a/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsExportUsersForMappingProcessorOptions.cs b/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsExportUsersForMappingProcessorOptions.cs
index 54fd6ebd8..e57640d04 100644
--- a/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsExportUsersForMappingProcessorOptions.cs
+++ b/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsExportUsersForMappingProcessorOptions.cs
@@ -2,9 +2,14 @@
namespace MigrationTools.Processors
{
+ ///
+ /// Configuration options for the TFS Export Users for Mapping Processor that extracts user information from work items to create user mapping files for migration scenarios.
+ ///
public class TfsExportUsersForMappingProcessorOptions : ProcessorOptions
{
-
+ ///
+ /// WIQL (Work Item Query Language) query used to select the work items from which user information should be extracted.
+ ///
public string WIQLQuery { get; set; }
///
diff --git a/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsImportProfilePictureProcessorOptions.cs b/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsImportProfilePictureProcessorOptions.cs
index 485de50f5..6856ad626 100644
--- a/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsImportProfilePictureProcessorOptions.cs
+++ b/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsImportProfilePictureProcessorOptions.cs
@@ -5,6 +5,9 @@
namespace MigrationTools.Processors
{
+ ///
+ /// Configuration options for the TFS Import Profile Picture Processor that imports user profile pictures into the target TFS/Azure DevOps organization.
+ ///
public class TfsImportProfilePictureProcessorOptions : ProcessorOptions
{
diff --git a/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTeamSettingsProcessorOptions.cs b/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTeamSettingsProcessorOptions.cs
index e3bff851a..69c0e50be 100644
--- a/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTeamSettingsProcessorOptions.cs
+++ b/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTeamSettingsProcessorOptions.cs
@@ -3,6 +3,9 @@
namespace MigrationTools.Processors
{
+ ///
+ /// Configuration options for the TfsTeamSettingsProcessor, which handles migration of team configurations, capacities, and team-specific settings.
+ ///
public class TfsTeamSettingsProcessorOptions : ProcessorOptions
{
///
diff --git a/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTestConfigurationsMigrationProcessorOptions.cs b/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTestConfigurationsMigrationProcessorOptions.cs
index e8888946c..81e8c2265 100644
--- a/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTestConfigurationsMigrationProcessorOptions.cs
+++ b/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTestConfigurationsMigrationProcessorOptions.cs
@@ -5,6 +5,9 @@
namespace MigrationTools.Processors
{
+ ///
+ /// Configuration options for the TFS Test Configurations Migration Processor that migrates test configurations and settings between TFS/Azure DevOps projects.
+ ///
public class TfsTestConfigurationsMigrationProcessorOptions : ProcessorOptions
{
diff --git a/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTestPlansAndSuitesMigrationProcessorOptions.cs b/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTestPlansAndSuitesMigrationProcessorOptions.cs
index 0891eba73..e569ece29 100644
--- a/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTestPlansAndSuitesMigrationProcessorOptions.cs
+++ b/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTestPlansAndSuitesMigrationProcessorOptions.cs
@@ -6,6 +6,9 @@
namespace MigrationTools._EngineV1.Configuration.Processing
{
+ ///
+ /// Configuration options for the TFS Test Plans and Suites Migration Processor that migrates test plans, test suites, and their associated test cases between TFS/Azure DevOps projects.
+ ///
public class TfsTestPlansAndSuitesMigrationProcessorOptions : ProcessorOptions
{
///
diff --git a/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTestVariablesMigrationProcessorOptions.cs b/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTestVariablesMigrationProcessorOptions.cs
index bdff73c48..2ec21c849 100644
--- a/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTestVariablesMigrationProcessorOptions.cs
+++ b/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsTestVariablesMigrationProcessorOptions.cs
@@ -5,8 +5,14 @@
namespace MigrationTools.Processors
{
+ ///
+ /// Configuration options for the TFS Test Variables Migration Processor that migrates test variables and their values between TFS/Azure DevOps projects.
+ ///
public class TfsTestVariablesMigrationProcessorOptions : ProcessorOptions
{
+ ///
+ /// Gets the processor identifier for test variables migration.
+ ///
///
public string Processor
{
diff --git a/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemBulkEditProcessor.cs b/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemBulkEditProcessor.cs
index cfefa45e6..8ad5abf59 100644
--- a/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemBulkEditProcessor.cs
+++ b/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemBulkEditProcessor.cs
@@ -16,12 +16,20 @@
namespace MigrationTools.Processors
{
///
- /// This processor allows you to make changes in place where we load from teh Target and update the Target. This is used for bulk updates with the most common reason being a process template change.
+ /// This processor allows you to make changes in place where we load from the Target and update the Target. This is used for bulk updates with the most common reason being a process template change.
///
/// WorkItem
public class TfsWorkItemBulkEditProcessor : TfsProcessor
{
-
+ ///
+ /// Initializes a new instance of the TfsWorkItemBulkEditProcessor class.
+ ///
+ /// Configuration options for the bulk edit processor
+ /// Common TFS tools for processor operations
+ /// Container for processor enrichers
+ /// Service provider for dependency injection
+ /// Telemetry logger for tracking operations
+ /// Logger for the processor operations
public TfsWorkItemBulkEditProcessor(IOptions options, TfsCommonTools tfsCommonTools, ProcessorEnricherContainer processorEnrichers, IServiceProvider services, ITelemetryLogger telemetry, ILogger logger) : base(options, tfsCommonTools, processorEnrichers, services, telemetry, logger)
{
}
diff --git a/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemBulkEditProcessorOptions.cs b/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemBulkEditProcessorOptions.cs
index 0ae5e018d..c0e49d117 100644
--- a/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemBulkEditProcessorOptions.cs
+++ b/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemBulkEditProcessorOptions.cs
@@ -6,8 +6,15 @@
namespace MigrationTools._EngineV1.Configuration.Processing
{
+ ///
+ /// Configuration options for the TfsWorkItemBulkEditProcessor, which performs bulk editing operations on work items in place.
+ ///
public class TfsWorkItemBulkEditProcessorOptions : ProcessorOptions, IWorkItemProcessorConfig
{
+ ///
+ /// Gets or sets a value indicating whether to run in "what if" mode without making actual changes to work items.
+ ///
+ /// false
public bool WhatIf { get; set; }
diff --git a/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemDeleteProcessorOptions.cs b/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemDeleteProcessorOptions.cs
index 5f82e1e53..534a3dd7c 100644
--- a/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemDeleteProcessorOptions.cs
+++ b/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemDeleteProcessorOptions.cs
@@ -6,20 +6,45 @@
namespace MigrationTools.Processors
{
+ ///
+ /// Configuration options for the TFS Work Item Delete Processor that removes work items from the target system based on specified criteria.
+ ///
public class TfsWorkItemDeleteProcessorOptions : ProcessorOptions, IWorkItemProcessorConfig
{
-
+ ///
+ /// Initializes a new instance of the TfsWorkItemDeleteProcessorOptions class with default settings.
+ ///
public TfsWorkItemDeleteProcessorOptions()
{
Enabled = false;
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";
}
+ ///
+ /// Gets or sets the WIQL query used to select work items for deletion. Should return a list of work item IDs.
+ ///
+ /// 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
public string WIQLQuery { get; set; }
+
+ ///
+ /// Gets or sets a specific list of work item IDs to delete. When specified, takes precedence over the WIQL query.
+ ///
public IList WorkItemIDs { get; set; }
+
+ ///
+ /// Gets or sets a value indicating whether to filter out work items that already exist in the target before deletion. Typically used to avoid deleting items that shouldn't be removed.
+ ///
public bool FilterWorkItemsThatAlreadyExistInTarget { get; set; }
+
+ ///
+ /// Gets or sets a value indicating whether to pause after each work item is deleted for review or debugging purposes.
+ ///
public bool PauseAfterEachWorkItem { get; set; }
+
+ ///
+ /// Gets or sets the number of retry attempts for work item deletion operations when they fail due to transient errors.
+ ///
public int WorkItemCreateRetryLimit { get; set; }
}
diff --git a/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemMigrationProcessorOptions.cs b/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemMigrationProcessorOptions.cs
index e7d13ff10..e831ae65a 100644
--- a/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemMigrationProcessorOptions.cs
+++ b/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemMigrationProcessorOptions.cs
@@ -11,7 +11,9 @@
namespace MigrationTools.Processors
{
-
+ ///
+ /// Configuration options for the TfsWorkItemMigrationProcessor, which handles comprehensive work item migration including revisions, links, and attachments.
+ ///
public class TfsWorkItemMigrationProcessorOptions : ProcessorOptions, IWorkItemProcessorConfig
{
diff --git a/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemOverwriteProcessor.cs b/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemOverwriteProcessor.cs
index a24ad82b6..b88f0a4e6 100644
--- a/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemOverwriteProcessor.cs
+++ b/src/MigrationTools.Clients.TfsObjectModel/Processors/TfsWorkItemOverwriteProcessor.cs
@@ -20,7 +20,7 @@
namespace MigrationTools.Processors
{
///
- /// Reapply field mappings after a migration. Does not migtate Work Items, only reapplied changes to filed mappings.
+ /// Reapply field mappings after a migration. Does not migrate Work Items, only reapplies changes to field mappings.
///
/// preview
/// Work Items
diff --git a/src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldClearMap.cs b/src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldClearMap.cs
index 3627a9856..9cf7a5815 100644
--- a/src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldClearMap.cs
+++ b/src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldClearMap.cs
@@ -6,8 +6,16 @@
namespace MigrationTools.FieldMaps.AzureDevops.ObjectModel
{
+ ///
+ /// Clears a target field by setting its value to null, useful for removing data from specific fields during migration.
+ ///
public class FieldClearMap : FieldMapBase
{
+ ///
+ /// Initializes a new instance of the FieldClearMap class.
+ ///
+ /// Logger for the field map operations
+ /// Telemetry logger for tracking operations
public FieldClearMap(ILogger logger, ITelemetryLogger telemetryLogger) : base(logger, telemetryLogger)
{
}
diff --git a/src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldLiteralMap.cs b/src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldLiteralMap.cs
index 06b0c814d..0e58f59ae 100644
--- a/src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldLiteralMap.cs
+++ b/src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldLiteralMap.cs
@@ -7,14 +7,27 @@
namespace MigrationTools.FieldMaps.AzureDevops.ObjectModel
{
+ ///
+ /// Maps a literal (static) value to a target field, useful for setting constant values across all migrated work items.
+ ///
public class FieldLiteralMap : FieldMapBase
{
+ ///
+ /// Initializes a new instance of the FieldLiteralMap class.
+ ///
+ /// Logger for the field map operations
+ /// Telemetry logger for tracking operations
public FieldLiteralMap(ILogger logger, ITelemetryLogger telemetryLogger) : base(logger, telemetryLogger)
{
}
private FieldLiteralMapOptions Config { get { return (FieldLiteralMapOptions)_Config; } }
+ ///
+ /// Configures the field map with the specified options and validates required settings.
+ ///
+ /// The field map configuration options
+ /// Thrown when the target field is not specified
public override void Configure(IFieldMapOptions config)
{
base.Configure(config);
diff --git a/src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldMergeMap.cs b/src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldMergeMap.cs
index a1012a143..1be5449c1 100644
--- a/src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldMergeMap.cs
+++ b/src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldMergeMap.cs
@@ -9,15 +9,30 @@
namespace MigrationTools.FieldMaps.AzureDevops.ObjectModel
{
+ ///
+ /// Merges values from multiple source fields into a single target field using a specified format template.
+ ///
public class FieldMergeMap : FieldMapBase
{
+ ///
+ /// Initializes a new instance of the FieldMergeMap class.
+ ///
+ /// Logger for the field map operations
+ /// Telemetry logger for tracking operations
public FieldMergeMap(ILogger logger, ITelemetryLogger telemetryLogger) : base(logger, telemetryLogger)
{
}
+ ///
+ /// Gets the display name for this field mapping, showing the source fields and target field.
+ ///
public override string MappingDisplayName => buildMappingDisplayName();
private FieldMergeMapOptions Config { get { return (FieldMergeMapOptions)_Config; } }
+ ///
+ /// Configures the field map with the specified options.
+ ///
+ /// The field map configuration options
public override void Configure(IFieldMapOptions config)
{
base.Configure(config);
diff --git a/src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldSkipMap.cs b/src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldSkipMap.cs
index 232d361c0..54e3498c7 100644
--- a/src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldSkipMap.cs
+++ b/src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldSkipMap.cs
@@ -6,8 +6,16 @@
namespace MigrationTools.FieldMaps.AzureDevops.ObjectModel
{
+ ///
+ /// Skips field mapping for a specific target field, effectively leaving the field unchanged during migration.
+ ///
public class FieldSkipMap : FieldMapBase
{
+ ///
+ /// Initializes a new instance of the FieldSkipMap class.
+ ///
+ /// Logger for the field map operations
+ /// Telemetry logger for tracking operations
public FieldSkipMap(ILogger logger, ITelemetryLogger telemetryLogger) : base(logger, telemetryLogger)
{
}
diff --git a/src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldToFieldMap.cs b/src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldToFieldMap.cs
index 041c9d59b..35e4d53fa 100644
--- a/src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldToFieldMap.cs
+++ b/src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldToFieldMap.cs
@@ -8,15 +8,27 @@ namespace MigrationTools.FieldMaps.AzureDevops.ObjectModel;
#nullable enable
+///
+/// Maps the value from a source field to a target field directly, with optional default value substitution for empty or null values.
+///
public class FieldToFieldMap : FieldMapBase
{
public override string MappingDisplayName => $"{Config.sourceField} {Config.targetField}";
private FieldToFieldMapOptions Config => (FieldToFieldMapOptions)_Config;
+ ///
+ /// Initializes a new instance of the FieldToFieldMap class.
+ ///
+ /// Logger for the field map operations
+ /// Telemetry logger for tracking operations
public FieldToFieldMap(ILogger logger, ITelemetryLogger telemetryLogger) : base(logger, telemetryLogger)
{
}
+ ///
+ /// Configures the field map with the specified options.
+ ///
+ /// The field map configuration options
public override void Configure(IFieldMapOptions config)
{
base.Configure(config);
diff --git a/src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldValueMap.cs b/src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldValueMap.cs
index 9825c90a0..93be345cf 100644
--- a/src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldValueMap.cs
+++ b/src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/FieldValueMap.cs
@@ -8,8 +8,16 @@
namespace MigrationTools.FieldMaps.AzureDevops.ObjectModel
{
+ ///
+ /// Maps field values based on a lookup table, allowing specific source values to be translated to different target values.
+ ///
public class FieldValueMap : FieldMapBase
{
+ ///
+ /// Initializes a new instance of the FieldValueMap class.
+ ///
+ /// Logger for the field map operations
+ /// Telemetry logger for tracking operations
public FieldValueMap(ILogger logger, ITelemetryLogger telemetryLogger) : base(logger, telemetryLogger)
{
}
diff --git a/src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/RegexFieldMap.cs b/src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/RegexFieldMap.cs
index c3a8e4383..fa37c3650 100644
--- a/src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/RegexFieldMap.cs
+++ b/src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/RegexFieldMap.cs
@@ -9,8 +9,16 @@
namespace MigrationTools.FieldMaps.AzureDevops.ObjectModel
{
+ ///
+ /// Applies regular expression transformations to map values from a source field to a target field using pattern matching and replacement.
+ ///
public class RegexFieldMap : FieldMapBase
{
+ ///
+ /// Initializes a new instance of the RegexFieldMap class.
+ ///
+ /// Logger for the field map operations
+ /// Telemetry logger for tracking operations
public RegexFieldMap(ILogger logger, ITelemetryLogger telemetryLogger) : base(logger, telemetryLogger)
{
}
@@ -18,6 +26,10 @@ public RegexFieldMap(ILogger logger, ITelemetryLogger telemetryLo
public override string MappingDisplayName => $"{Config.sourceField} {Config.targetField}";
private RegexFieldMapOptions Config { get { return (RegexFieldMapOptions)_Config; } }
+ ///
+ /// Configures the field map with the specified options.
+ ///
+ /// The field map configuration options
public override void Configure(IFieldMapOptions config)
{
base.Configure(config);
diff --git a/src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/TreeToTagFieldMap.cs b/src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/TreeToTagFieldMap.cs
index 5a4772f70..8900f2cbc 100644
--- a/src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/TreeToTagFieldMap.cs
+++ b/src/MigrationTools.Clients.TfsObjectModel/Tools/FieldMappingTool/FieldMaps/TreeToTagFieldMap.cs
@@ -8,14 +8,26 @@
namespace MigrationTools.FieldMaps.AzureDevops.ObjectModel
{
+ ///
+ /// Maps work item area path or iteration path hierarchies to tags, allowing tree structures to be represented as flat tag collections.
+ ///
public class TreeToTagFieldMap : FieldMapBase
{
+ ///
+ /// Initializes a new instance of the TreeToTagFieldMap class.
+ ///
+ /// Logger for the field map operations
+ /// Telemetry logger for tracking operations
public TreeToTagFieldMap(ILogger logger, ITelemetryLogger telemetryLogger) : base(logger, telemetryLogger)
{
}
private TreeToTagFieldMapOptions Config { get { return (TreeToTagFieldMapOptions)_Config; } }
+ ///
+ /// Configures the field map with the specified options.
+ ///
+ /// The field map configuration options
public override void Configure(IFieldMapOptions config)
{
base.Configure(config);
diff --git a/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsAttachmentTool.cs b/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsAttachmentTool.cs
index 638e997d0..2e818c949 100644
--- a/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsAttachmentTool.cs
+++ b/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsAttachmentTool.cs
@@ -19,17 +19,34 @@
namespace MigrationTools.Tools
{
+ ///
+ /// Tool for processing and migrating work item attachments between Team Foundation Server instances, handling file downloads, uploads, and attachment metadata.
+ ///
public class TfsAttachmentTool : Tool
{
private string _exportWiPath;
private WorkItemServer _workItemServer;
+ ///
+ /// Initializes a new instance of the TfsAttachmentTool class.
+ ///
+ /// Configuration options for the attachment tool
+ /// Service provider for dependency injection
+ /// Logger for the tool operations
+ /// Telemetry logger for tracking operations
public TfsAttachmentTool(IOptions options, IServiceProvider services, ILogger logger, ITelemetryLogger telemetryLogger) : base(options,services, logger, telemetryLogger)
{
}
+ ///
+ /// Processes and migrates attachments from a source work item to a target work item.
+ ///
+ /// The TFS processor performing the migration
+ /// The source work item containing attachments to migrate
+ /// The target work item to receive the attachments
+ /// Whether to save the target work item after processing attachments
public void ProcessAttachemnts(TfsProcessor processer, WorkItemData source, WorkItemData target, bool save = true)
{
SetupWorkItemServer(processer);
diff --git a/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsAttachmentToolOptions.cs b/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsAttachmentToolOptions.cs
index 89f8e4663..9856fd566 100644
--- a/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsAttachmentToolOptions.cs
+++ b/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsAttachmentToolOptions.cs
@@ -2,6 +2,9 @@
namespace MigrationTools.Tools
{
+ ///
+ /// Configuration options for the TFS Attachment Tool that handles the migration of work item attachments between TFS/Azure DevOps systems.
+ ///
public class TfsAttachmentToolOptions : ToolOptions, ITfsAttachmentToolOptions
{
///
diff --git a/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsGitRepositoryToolOptions.cs b/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsGitRepositoryToolOptions.cs
index 5d065c6f2..f53a5a06f 100644
--- a/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsGitRepositoryToolOptions.cs
+++ b/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsGitRepositoryToolOptions.cs
@@ -9,15 +9,18 @@
namespace MigrationTools.Tools
{
+ ///
+ /// Configuration options for the TFS Git Repository Tool that handles Git repository mappings and changeset link transformations during work item migration.
+ ///
public class TfsGitRepositoryToolOptions : ToolOptions
{
///
- /// When set to True the changedset links will be dropped during the migration
+ /// When set to true, changeset links in work items will be removed during migration to prevent broken links when repositories are not migrated.
///
public bool ShouldDropChangedSetLinks { get; set; }
///
- /// List of work item mappings.
+ /// Dictionary mapping source repository names to target repository names. Used to update Git repository links and references in work items during migration.
///
/// {}
public Dictionary Mappings { get; set; } = new Dictionary();
diff --git a/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsNodeStructureTool.cs b/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsNodeStructureTool.cs
index d8191fb92..5a6f178b3 100644
--- a/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsNodeStructureTool.cs
+++ b/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsNodeStructureTool.cs
@@ -44,7 +44,7 @@ public struct TfsNodeStructureToolSettings
}
///
- /// The TfsNodeStructureToolEnricher is used to create missing nodes in the target project. To configure it add a `TfsNodeStructureToolOptions` section to `CommonEnrichersConfig` in the config file. Otherwise defaults will be applied.
+ /// Tool for creating missing area and iteration path nodes in the target project during migration. Configurable through TfsNodeStructureToolOptions to specify which node types to create.
///
public class TfsNodeStructureTool : Tool
{
diff --git a/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsNodeStructureToolOptions.cs b/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsNodeStructureToolOptions.cs
index 265556e73..3da6783ff 100644
--- a/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsNodeStructureToolOptions.cs
+++ b/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsNodeStructureToolOptions.cs
@@ -12,7 +12,9 @@
namespace MigrationTools.Tools
{
-
+ ///
+ /// Configuration options for the TFS Node Structure Tool that migrates and transforms area and iteration path hierarchies between TFS/Azure DevOps projects.
+ ///
public sealed class TfsNodeStructureToolOptions : ToolOptions, ITfsNodeStructureToolOptions
{
///
diff --git a/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsStaticTools.cs b/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsStaticTools.cs
index a26322afa..5c738dc0a 100644
--- a/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsStaticTools.cs
+++ b/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsStaticTools.cs
@@ -9,8 +9,27 @@
namespace MigrationTools.Tools
{
+ ///
+ /// Extended collection of tools specific to Team Foundation Server and Azure DevOps migrations, providing TFS-specific functionality beyond the common tools.
+ ///
public class TfsCommonTools : CommonTools
{
+ ///
+ /// Initializes a new instance of the TfsCommonTools class.
+ ///
+ /// Tool for mapping users between source and target
+ /// Tool for handling work item attachments
+ /// Tool for managing area and iteration path structures
+ /// Tool for managing work item revision history
+ /// Tool for processing work item links
+ /// Tool for processing embedded links in work items
+ /// Tool for validating required fields
+ /// Tool for migrating team settings
+ /// Tool for processing embedded images
+ /// Tool for git repository operations
+ /// Tool for string field manipulation
+ /// Tool for work item type mapping
+ /// Tool for field mapping operations
public TfsCommonTools(
TfsUserMappingTool userMappingEnricher,
TfsAttachmentTool attachmentEnricher,
diff --git a/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsTeamSettingsTool.cs b/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsTeamSettingsTool.cs
index ad90c6cbc..a13093903 100644
--- a/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsTeamSettingsTool.cs
+++ b/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsTeamSettingsTool.cs
@@ -29,7 +29,7 @@
namespace MigrationTools.Tools
{
///
- /// The TfsUserMappingTool is used to map users from the source to the target system. Run it with the ExportUsersForMappingContext to create a mapping file then with WorkItemMigrationContext to use the mapping file to update the users in the target system as you migrate the work items.
+ /// Tool for migrating team settings including team configurations, area paths, iterations, and team-specific settings from source to target Team Foundation Server or Azure DevOps.
///
public class TfsTeamSettingsTool : Tool
{
@@ -40,17 +40,43 @@ public class TfsTeamSettingsTool : Tool
private TfsProcessor _processor;
+ ///
+ /// Gets or sets the source team service for accessing team information.
+ ///
public TfsTeamService SourceTeamService { get; protected set; }
+
+ ///
+ /// Gets or sets the source team settings configuration service for accessing team configuration.
+ ///
public TeamSettingsConfigurationService SourceTeamSettings { get; protected set; }
+
+ ///
+ /// Gets or sets the target team service for creating and configuring teams.
+ ///
public TfsTeamService TargetTeamService { get; protected set; }
+
+ ///
+ /// Gets or sets the target team settings configuration service for configuring team settings.
+ ///
public TeamSettingsConfigurationService TargetTeamSettings { get; protected set; }
+ ///
+ /// Initializes a new instance of the TfsTeamSettingsTool class.
+ ///
+ /// Configuration options for the team settings tool
+ /// Service provider for dependency injection
+ /// Logger for the tool operations
+ /// Telemetry logger for tracking operations
public TfsTeamSettingsTool(IOptions options, IServiceProvider services, ILogger logger, ITelemetryLogger telemetryLogger) : base(options, services, logger, telemetryLogger)
{
}
+ ///
+ /// Executes before the processor begins, setting up team services and migrating team settings if enabled.
+ ///
+ /// The TFS processor that will be executed
public void ProcessorExecutionBegin(TfsProcessor processor) // Could be a IProcessorEnricher
{
_processor = processor;
diff --git a/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsUserMappingTool.cs b/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsUserMappingTool.cs
index d7006fdc5..5695c1efb 100644
--- a/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsUserMappingTool.cs
+++ b/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsUserMappingTool.cs
@@ -34,12 +34,24 @@ public TfsUserMappingTool(
private readonly CaseInsensitiveStringComparer _workItemNameComparer = new();
private readonly TfsUserMappingToolMapper _mapper = new();
+ ///
+ /// Serializes a user mapping dictionary to a JSON file for use in user mapping operations.
+ ///
+ /// The file path where the user mapping will be saved
+ /// The dictionary of user mappings to serialize
+ /// Logger for the operation
public static void SerializeUserMap(string fileName, Dictionary userMap, ILogger logger)
{
File.WriteAllText(fileName, JsonConvert.SerializeObject(userMap, Formatting.Indented));
logger.LogInformation("User mappings writen to: {fileName}", fileName);
}
+ ///
+ /// Deserializes a user mapping dictionary from a JSON file for use in user mapping operations.
+ ///
+ /// The file path where the user mapping is stored
+ /// Logger for the operation
+ /// A dictionary containing the user mappings, or an empty dictionary if the file doesn't exist
public static Dictionary DeserializeUserMap(string fileName, ILogger logger)
{
try
@@ -77,6 +89,10 @@ private HashSet GetUsersFromWorkItems(List workitems, List
return foundUsers;
}
+ ///
+ /// Maps a user identity field value using the configured user mappings if the field is configured for mapping.
+ ///
+ /// The work item field containing a user identity to be mapped
public void MapUserIdentityField(Field field)
{
if (Options.Enabled && Options.IdentityFieldsToCheck.Contains(field.ReferenceName))
diff --git a/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsUserMappingToolOptions.cs b/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsUserMappingToolOptions.cs
index b9d3606ac..90b64056f 100644
--- a/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsUserMappingToolOptions.cs
+++ b/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsUserMappingToolOptions.cs
@@ -4,6 +4,9 @@
namespace MigrationTools.Tools
{
+ ///
+ /// Configuration options for the TFS User Mapping Tool that handles the mapping of user identities between source and target systems during work item migration.
+ ///
public class TfsUserMappingToolOptions : ToolOptions, ITfsUserMappingToolOptions
{
diff --git a/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsValidateRequiredFieldTool.cs b/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsValidateRequiredFieldTool.cs
index 6c2209e3f..88369d4b8 100644
--- a/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsValidateRequiredFieldTool.cs
+++ b/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsValidateRequiredFieldTool.cs
@@ -12,17 +12,36 @@
namespace MigrationTools.Tools
{
+ ///
+ /// Tool for validating that required fields exist in target work item types before migration, preventing migration failures due to missing required fields.
+ ///
public class TfsValidateRequiredFieldTool : Tool
{
-
+ ///
+ /// Initializes a new instance of the TfsValidateRequiredFieldTool class.
+ ///
+ /// Configuration options for the validation tool
+ /// Service provider for dependency injection
+ /// Logger for the tool operations
+ /// Telemetry logger for tracking operations
public TfsValidateRequiredFieldTool(IOptions options, IServiceProvider services, ILogger logger, ITelemetryLogger telemetryLogger) : base(options, services, logger, telemetryLogger)
{
Engine = services.GetRequiredService();
}
+ ///
+ /// Gets the migration engine instance for accessing migration context.
+ ///
public IMigrationEngine Engine { get; private set; }
+ ///
+ /// Validates that a required field exists in all target work item types that correspond to the source work items.
+ ///
+ /// The TFS processor performing the migration
+ /// The name of the field to validate
+ /// The source work items to validate against
+ /// True if all target work item types have the required field; otherwise, false
public bool ValidatingRequiredField(TfsProcessor processor, string fieldToFind, List sourceWorkItems)
{
var workItemTypeMappingTool = Services.GetRequiredService();
diff --git a/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsValidateRequiredFieldToolOptions.cs b/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsValidateRequiredFieldToolOptions.cs
index e40031955..67e9d7ce6 100644
--- a/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsValidateRequiredFieldToolOptions.cs
+++ b/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsValidateRequiredFieldToolOptions.cs
@@ -4,6 +4,9 @@
namespace MigrationTools.Tools
{
+ ///
+ /// Configuration options for the TFS Validate Required Field Tool that ensures all required fields are properly populated during work item migration.
+ ///
public class TfsValidateRequiredFieldToolOptions : ToolOptions
{
diff --git a/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsWorkItemEmbededLinkTool.cs b/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsWorkItemEmbededLinkTool.cs
index 1aca1aaf6..846078369 100644
--- a/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsWorkItemEmbededLinkTool.cs
+++ b/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsWorkItemEmbededLinkTool.cs
@@ -17,6 +17,9 @@
namespace MigrationTools.Tools
{
+ ///
+ /// Tool for processing embedded links within work item fields, such as links in HTML fields and converting work item references between source and target systems.
+ ///
public class TfsWorkItemEmbededLinkTool : Tool
{
private const string LogTypeName = nameof(TfsWorkItemEmbededLinkTool);
diff --git a/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsWorkItemLinkTool.cs b/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsWorkItemLinkTool.cs
index 280e7d415..d1d5df510 100644
--- a/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsWorkItemLinkTool.cs
+++ b/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsWorkItemLinkTool.cs
@@ -14,14 +14,32 @@
namespace MigrationTools.Tools
{
+ ///
+ /// Tool for migrating work item links and relationships between work items, including shared steps and parameters for test cases.
+ ///
public class TfsWorkItemLinkTool : Tool
{
+ ///
+ /// Initializes a new instance of the TfsWorkItemLinkTool class.
+ ///
+ /// Configuration options for the work item link tool
+ /// Service provider for dependency injection
+ /// Logger for the tool operations
+ /// Telemetry logger for tracking operations
public TfsWorkItemLinkTool(IOptions options, IServiceProvider services, ILogger logger, ITelemetryLogger telemetryLogger)
: base(options, services, logger, telemetryLogger)
{
}
+ ///
+ /// Enriches the target work item with links from the source work item, processing all link types and relationships.
+ ///
+ /// The TFS processor performing the migration
+ /// The source work item containing links to migrate
+ /// The target work item to receive the links
+ /// The number of links processed
+ /// Thrown when source or target work items are null
public int Enrich(TfsProcessor processor, WorkItemData sourceWorkItemLinkStart, WorkItemData targetWorkItemLinkStart)
{
if (sourceWorkItemLinkStart is null)
@@ -98,6 +116,12 @@ public int Enrich(TfsProcessor processor, WorkItemData sourceWorkItemLinkStart,
return 0;
}
+ ///
+ /// Migrates shared steps for test case work items, updating step references in the target work item.
+ ///
+ /// The TFS processor performing the migration
+ /// The source test case work item
+ /// The target test case work item
public void MigrateSharedSteps(TfsProcessor processor, WorkItemData wiSourceL, WorkItemData wiTargetL)
{
const string microsoftVstsTcmSteps = "Microsoft.VSTS.TCM.Steps";
@@ -132,6 +156,12 @@ public void MigrateSharedSteps(TfsProcessor processor, WorkItemData wiSourceL, W
}
}
+ ///
+ /// Migrates shared parameters for test case work items, updating parameter references in the target work item.
+ ///
+ /// The TFS processor performing the migration
+ /// The source test case work item
+ /// The target test case work item
public void MigrateSharedParameters(TfsProcessor processor, WorkItemData wiSourceL, WorkItemData wiTargetL)
{
const string microsoftVstsTcmLocalDataSource = "Microsoft.VSTS.TCM.LocalDataSource";
diff --git a/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsWorkItemLinkToolOptions.cs b/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsWorkItemLinkToolOptions.cs
index d92306988..032b48445 100644
--- a/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsWorkItemLinkToolOptions.cs
+++ b/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsWorkItemLinkToolOptions.cs
@@ -6,6 +6,9 @@
namespace MigrationTools.Tools
{
+ ///
+ /// Configuration options for the TFS Work Item Link Tool that manages the migration and processing of work item links between items.
+ ///
public class TfsWorkItemLinkToolOptions : ToolOptions, ITfsWorkItemLinkToolOptions
{
diff --git a/src/MigrationTools.ConsoleDataGenerator/ClassDataLoader.cs b/src/MigrationTools.ConsoleDataGenerator/ClassDataLoader.cs
index 09d5ebcec..2a945a067 100644
--- a/src/MigrationTools.ConsoleDataGenerator/ClassDataLoader.cs
+++ b/src/MigrationTools.ConsoleDataGenerator/ClassDataLoader.cs
@@ -1,32 +1,21 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Microsoft.Extensions.Configuration;
-using MigrationTools._EngineV1.Configuration;
+using Microsoft.Extensions.Configuration;
using MigrationTools.ConsoleDataGenerator.ReferenceData;
using MigrationTools.Options;
-using Newtonsoft.Json.Linq;
-using MigrationTools;
-using System.Configuration;
using Newtonsoft.Json;
-using MigrationTools.Tools.Infrastructure;
-using System.Security.AccessControl;
-using Microsoft.Extensions.Options;
-using MigrationTools.Processors;
+using Newtonsoft.Json.Linq;
namespace MigrationTools.ConsoleDataGenerator
{
public class ClassDataLoader
{
private DataSerialization saveData;
- private static CodeDocumentation codeDocs = new CodeDocumentation("../../../../../docs/Reference/Generated/");
- private static CodeFileFinder codeFinder = new CodeFileFinder("../../../../../src/");
+ private readonly CodeDocumentation codeDocs;
+ private readonly CodeFileFinder codeFinder;
private IConfiguration configuration;
- public ClassDataLoader(DataSerialization saveData, Microsoft.Extensions.Configuration.IConfiguration configuration)
+ public ClassDataLoader(string rootPath, DataSerialization saveData, Microsoft.Extensions.Configuration.IConfiguration configuration)
{
-
+ codeDocs = new CodeDocumentation(Path.Combine(rootPath, "docs/Reference/Generated/"));
+ codeFinder = new CodeFileFinder(rootPath);
this.saveData = saveData;
this.configuration = configuration;
}
@@ -61,7 +50,7 @@ public List GetClassDataFromOptions(List all
private ClassData CreateClassDataFromOptions(List allTypes, string dataTypeName, Type optionInFocus)
where TOptionsInterface : IOptions
{
- var oConfig = GetOptionsConfiguration(optionInFocus);
+ var oConfig = GetOptionsConfiguration(optionInFocus);
var typeOftargetOfOption = allTypes.Where(t => t.Name == oConfig.OptionFor && !t.IsAbstract && !t.IsInterface).SingleOrDefault();
if (typeOftargetOfOption == null)
{
@@ -94,7 +83,8 @@ private ClassData CreateClassDataFromOptions(List allTy
mainOrDefaultSection.Bind(instanceOfOption);
var json = ConvertSectionWithPathToJson(configuration, mainOrDefaultSection, instanceOfOption);
data.ConfigurationSamples.Add(new ConfigurationSample() { Name = "defaults", Order = 2, SampleFor = data.OptionsClassFullName, Code = json.Trim() });
- } else
+ }
+ else
{
data.ConfigurationSamples.Add(new ConfigurationSample() { Name = "defaults", Order = 2, SampleFor = data.OptionsClassFullName, Code = "There are no defaults! Check the sample for options!" });
}
diff --git a/src/MigrationTools.ConsoleDataGenerator/CodeFileFinder.cs b/src/MigrationTools.ConsoleDataGenerator/CodeFileFinder.cs
index 17873accf..74a92d3e9 100644
--- a/src/MigrationTools.ConsoleDataGenerator/CodeFileFinder.cs
+++ b/src/MigrationTools.ConsoleDataGenerator/CodeFileFinder.cs
@@ -1,16 +1,9 @@
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace MigrationTools.ConsoleDataGenerator
+namespace MigrationTools.ConsoleDataGenerator
{
public class CodeFileFinder
{
- private string codePath = "";
+ private string codePath;
public CodeFileFinder(string path)
{
@@ -20,13 +13,15 @@ public CodeFileFinder(string path)
public string FindCodeFile(Type typeToFind)
{
string assemblyName = typeToFind.Assembly.GetName().Name;
- string codePathToSearch = Path.Combine(codePath, assemblyName);
+ string codePathToSearch = Path.Combine(codePath, "src", assemblyName);
List files = Directory.GetFiles(codePathToSearch, $"*{typeToFind.Name}*.cs", SearchOption.AllDirectories).ToList();
if (files.Count > 0)
{
- var fileInfo = new FileInfo(files[0]);
+ var fileInfo = new FileInfo(files[0]);
- return files[0].Replace("../../../../..", "").Replace("\\", "/");
+ // Return the relative path from codePath to files[0], using forward slashes
+ string relativePath = Path.GetRelativePath(codePath, files[0]).Replace("\\", "/");
+ return relativePath;
}
return "";
}
diff --git a/src/MigrationTools.ConsoleDataGenerator/DataSerialization.cs b/src/MigrationTools.ConsoleDataGenerator/DataSerialization.cs
index e0042cc8b..a219d5886 100644
--- a/src/MigrationTools.ConsoleDataGenerator/DataSerialization.cs
+++ b/src/MigrationTools.ConsoleDataGenerator/DataSerialization.cs
@@ -1,27 +1,22 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using MigrationTools.Helpers;
-using Newtonsoft.Json;
-using YamlDotNet.Serialization.NamingConventions;
-using YamlDotNet.Serialization;
-using MigrationTools.ConsoleDataGenerator.ReferenceData;
-using static System.Runtime.InteropServices.JavaScript.JSType;
+using MigrationTools.ConsoleDataGenerator.ReferenceData;
using MigrationTools.Options;
+using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
+using YamlDotNet.Serialization;
+using YamlDotNet.Serialization.NamingConventions;
namespace MigrationTools.ConsoleDataGenerator
{
public class DataSerialization
{
- private static string dataPath = "../../../../../docs/_data/";
- private static string referencePath = "../../../../../docs/collections/_reference";
+ private readonly string dataPath;
+ private readonly string referencePath;
- public DataSerialization(string saveDataTo) {
- dataPath = saveDataTo;
+ public DataSerialization(string rootPath)
+ {
+ dataPath = Path.Combine(rootPath, "docs/_data");
+ referencePath = Path.Combine(rootPath, "docs/collections/_reference");
}
public string SeraliseData(DataItem data, string apiVersion, string dataTypeName)
@@ -33,7 +28,7 @@ public string SeraliseData(DataItem data, string apiVersion, string dataTypeName
yaml = "---" + '\n';
yaml = yaml + SeraliseDataToYaml(data.classData) + '\n' + SeraliseDataToYaml(data.jekyllData);
yaml = yaml + '\n' + "---";
- filePath = Path.Combine(referencePath, filename.ToLower());
+ filePath = Path.Combine(referencePath, filename.ToLower());
File.WriteAllText($"{filePath}.md", yaml);
return yaml;
}
diff --git a/src/MigrationTools.ConsoleDataGenerator/Program.cs b/src/MigrationTools.ConsoleDataGenerator/Program.cs
index 7167e044f..5edfaa68e 100644
--- a/src/MigrationTools.ConsoleDataGenerator/Program.cs
+++ b/src/MigrationTools.ConsoleDataGenerator/Program.cs
@@ -1,36 +1,20 @@
using System.Reflection;
-using System.Runtime.Loader;
-using System.Security.Policy;
-using Microsoft.TeamFoundation.Build.WebApi;
-using MigrationTools._EngineV1.Configuration;
+using Microsoft.Extensions.Configuration;
+using MigrationTools.ConsoleDataGenerator.ReferenceData;
using MigrationTools.EndpointEnrichers;
-using MigrationTools.Endpoints;
+using MigrationTools.Endpoints.Infrastructure;
using MigrationTools.Enrichers;
-using MigrationTools.Helpers;
-using MigrationTools.Tests;
-using Newtonsoft.Json;
-using Newtonsoft.Json.Linq;
-using YamlDotNet.Serialization.NamingConventions;
-using YamlDotNet.Serialization;
-using MigrationTools.Options;
-using System.Text;
-using MigrationTools.ConsoleDataGenerator.ReferenceData;
-using Microsoft.VisualStudio.Services.Common;
-using MigrationTools.Tools.Infrastructure;
-using Microsoft.Extensions.Configuration;
using MigrationTools.Processors.Infrastructure;
-using MigrationTools.Endpoints.Infrastructure;
-using Elmah.Io.Client;
+using MigrationTools.Tools.Infrastructure;
namespace MigrationTools.ConsoleDataGenerator;
class Program
{
private static IConfiguration configuration = GetConfiguration();
- private static DataSerialization saveData = new DataSerialization("../../../../../docs/_data/");
- private static CodeDocumentation codeDocs = new CodeDocumentation("../../../../../docs/Reference/Generated/");
- private static ClassDataLoader cdLoader = new ClassDataLoader(saveData, configuration);
+ private static DataSerialization saveData = new DataSerialization("../../../../../");
+ private static ClassDataLoader cdLoader = new ClassDataLoader("../../../../../", saveData, configuration);
private static MarkdownLoader mdLoader = new MarkdownLoader();
-
+
static void Main(string[] args)
{
@@ -54,7 +38,7 @@ static void Main(string[] args)
Console.WriteLine("Assemblies");
-
+
Console.WriteLine("-----------");
foreach (var item in currentDomain.GetAssemblies())
{
@@ -119,7 +103,7 @@ private static JekyllData GetJekyllData(ClassData classData)
return data;
}
- private static IConfiguration GetConfiguration()
+ private static IConfiguration GetConfiguration()
{
// Create a new ConfigurationBuilder
var configurationBuilder = new ConfigurationBuilder();
@@ -128,8 +112,8 @@ private static IConfiguration GetConfiguration()
// Add configuration sources
configurationBuilder.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
// Build the configuration
- return configurationBuilder.Build();
+ return configurationBuilder.Build();
}
-}
\ No newline at end of file
+}
diff --git a/src/MigrationTools.ConsoleDataGenerator/appsettings.json b/src/MigrationTools.ConsoleDataGenerator/appsettings.json
new file mode 100644
index 000000000..1bfc0ef6e
--- /dev/null
+++ b/src/MigrationTools.ConsoleDataGenerator/appsettings.json
@@ -0,0 +1,504 @@
+{
+ "Serilog": {
+ "Using": [
+ "Serilog.Sinks.Console"
+ ],
+ "MinimumLevel": {
+ "Default": "Information",
+ "Override": {
+ "Microsoft": "Warning",
+ "Microsoft.Hosting.Lifetime": "Verbose"
+ }
+ }
+ },
+ "MigrationTools": {
+ "EndpointDefaults": {
+ "TfsEndpoint": {
+ "Collection": "",
+ "Project": "",
+ "AllowCrossProjectLinking": false,
+ "ReflectedWorkItemIdField": "Custom.ReflectedWorkItemId",
+ "Authentication": {
+ "AuthenticationMode": "AccessToken",
+ "AccessToken": "",
+ "NetworkCredentials": {
+ "UserName": "",
+ "Password": "",
+ "Domain": ""
+ }
+ },
+ "AuthenticationMode": "AccessToken",
+ "LanguageMaps": {
+ "AreaPath": "Area",
+ "IterationPath": "Iteration"
+ }
+ },
+ "TfsTeamProjectEndpoint": {
+ "Collection": "",
+ "Project": "",
+ "AllowCrossProjectLinking": false,
+ "ReflectedWorkItemIdField": "Custom.ReflectedWorkItemId",
+ "Authentication": {
+ "AuthenticationMode": "AccessToken",
+ "AccessToken": "",
+ "NetworkCredentials": {
+ "UserName": "",
+ "Password": "",
+ "Domain": ""
+ }
+ },
+ "AuthenticationMode": "AccessToken",
+ "LanguageMaps": {
+ "AreaPath": "Area",
+ "IterationPath": "Iteration"
+ }
+ }
+ },
+ "EndpointSamples": {
+ "TfsTeamProjectEndpoint": {
+ "Collection": "https://dev.azure.com/nkdagility-preview/",
+ "Project": "migrationSource1",
+ "AllowCrossProjectLinking": false,
+ "ReflectedWorkItemIdField": "Custom.ReflectedWorkItemId",
+ "Authentication": {
+ "AuthenticationMode": "AccessToken",
+ "AccessToken": "jklsadhjksahfkjsdhjksahsadjhksadhsad",
+ "NetworkCredentials": {
+ "UserName": "",
+ "Password": "",
+ "Domain": ""
+ }
+ }
+ },
+ "TfsEndpoint": {
+ "Collection": "https://dev.azure.com/nkdagility-preview/",
+ "Project": "migrationSource1",
+ "AllowCrossProjectLinking": false,
+ "ReflectedWorkItemIdField": "Custom.ReflectedWorkItemId",
+ "Authentication": {
+ "AuthenticationMode": "AccessToken",
+ "AccessToken": "jklsadhjksahfkjsdhjksahsadjhksadhsad",
+ "NetworkCredentials": {
+ "UserName": "",
+ "Password": "",
+ "Domain": ""
+ }
+ },
+ "LanguageMaps": {
+ "AreaPath": "Area",
+ "IterationPath": "Iteration"
+ }
+ },
+ "AzureDevOpsEndpoint": {
+ "AuthenticationMode": "AccessToken",
+ "AccessToken": "jklsadhjksahfkjsdhjksahsadjhksadhsad",
+ "Organisation": "https://dev.azure.com/xxx/",
+ "Project": "myProject",
+ "ReflectedWorkItemIdField": "Custom.ReflectedWorkItemId"
+ }
+ },
+ "CommonTools": {
+ "FieldMappingTool": {
+ "Enabled": false,
+ "FieldMaps": [],
+ "FieldMapDefaults": {
+ "ApplyTo": [ "*" ]
+ }
+ },
+ "TfsChangeSetMappingTool": {
+ "Enabled": false,
+ "File": null
+ },
+ "TfsNodeStructureTool": {
+ "Enabled": true,
+ "Areas": {
+ "Filters": [],
+ "Mappings": {
+ }
+ },
+ "Iterations": {
+ "Filters": [],
+ "Mappings": {
+ }
+ },
+ "ShouldCreateMissingRevisionPaths": true,
+ "ReplicateAllExistingNodes": true
+ },
+ "TfsTeamSettingsTool": {
+ "Enabled": true,
+ "MigrateTeamSettings": true,
+ "UpdateTeamSettings": true,
+ "MigrateTeamCapacities": true,
+ "Teams": []
+ },
+ "TfsWorkItemLinkTool": {
+ "Enabled": true,
+ "FilterIfLinkCountMatches": true,
+ "SaveAfterEachLinkIsAdded": false
+ },
+ "TfsRevisionManagerTool": {
+ "Enabled": true,
+ "ReplayRevisions": true,
+ "MaxRevisions": 0
+ },
+ "TfsAttachmentTool": {
+ "RefName": "TfsAttachmentTool",
+ "Enabled": true,
+ "ExportBasePath": "c:\\temp\\WorkItemAttachmentExport",
+ "MaxAttachmentSize": 480000000
+ },
+ "StringManipulatorTool": {
+ "Enabled": true,
+ "MaxStringLength": 1000000,
+ "Manipulators": []
+ },
+ "TfsUserMappingTool": {
+ "Enabled": false,
+ "UserMappingFile": "C:\\temp\\userExport.json",
+ "IdentityFieldsToCheck": [
+ "System.AssignedTo",
+ "System.ChangedBy",
+ "System.CreatedBy",
+ "Microsoft.VSTS.Common.ActivatedBy",
+ "Microsoft.VSTS.Common.ResolvedBy",
+ "Microsoft.VSTS.Common.ClosedBy"
+ ]
+ },
+ "WorkItemTypeMappingTool": {
+ "Enabled": false,
+ "Mappings": {
+ "Source Work Item Type Name": "Target Work Item Type Name"
+ }
+ },
+ "TfsWorkItemEmbededLinkTool": {
+ "Enabled": true
+ },
+ "TfsEmbededImagesTool": {
+ "Enabled": true
+ },
+ "TfsGitRepositoryTool": {
+ "Enabled": true,
+ "Mappings": {
+ }
+ }
+ },
+ "CommonToolSamples": {
+ "TfsGitRepositoryTool": {
+ "Enabled": true,
+ "Mappings": {
+ "RepoInSource": "RepoInTarget"
+ }
+ },
+ "FieldMappingTool": {
+ "Enabled": true,
+ "FieldMaps": [
+ {
+ "FieldMapType": "FieldMergeMap",
+ "ApplyTo": [ "SomeWorkItemType" ],
+ "sourceFields": [ "Custom.FieldA", "Custom.FieldB" ],
+ "targetField": "Custom.FieldC",
+ "formatExpression": "{0} \n {1}"
+ },
+ {
+ "FieldMapType": "FieldValueMap",
+ "ApplyTo": [ "SomeWorkItemType" ],
+ "sourceField": "System.State",
+ "targetField": "System.State",
+ "defaultValue": "New",
+ "valueMapping": {
+ "Active": "InProgress",
+ "Resolved": "InProgress",
+ "Closed": "Done"
+ }
+ },
+ {
+ "FieldMapType": "FieldToFieldMap",
+ "ApplyTo": [ "SomeWorkItemType" ],
+ "sourceField": "Microsoft.VSTS.Common.BacklogPriority",
+ "targetField": "Microsoft.VSTS.Common.StackRank",
+ "defaultValue": 42
+ }
+ ],
+ "FieldMapSamples": {
+ "FieldClearMap": {
+ "ApplyTo": [ "SomeWorkItemType" ],
+ "targetField": "Custom.FieldC"
+ },
+ "FieldMergeMap": {
+ "ApplyTo": [ "SomeWorkItemType" ],
+ "sourceFields": [ "Custom.FieldA", "Custom.FieldB" ],
+ "targetField": "Custom.FieldC",
+ "formatExpression": "{0} \n {1}"
+ },
+ "FieldLiteralMap": {
+ "ApplyTo": [ "SomeWorkItemType" ],
+ "targetField": "Custom.SomeField",
+ "value": "New field value"
+ },
+ "MultiValueConditionalMap": {
+ "ApplyTo": [ "SomeWorkItemType" ],
+ "sourceFieldsAndValues": {
+ "Field1": "Value1",
+ "Field2": "Value2"
+ },
+ "targetFieldsAndValues": {
+ "Field1": "Value1",
+ "Field2": "Value2"
+ }
+ },
+ "targetFieldsAndValues": {
+ "ApplyTo": [ "SomeWorkItemType" ],
+ "targetField": "Custom.ReflectedWorkItemId"
+ },
+ "FieldValueMap": {
+ "ApplyTo": [ "SomeWorkItemType" ],
+ "sourceField": "System.State",
+ "targetField": "System.State",
+ "defaultValue": "StateB",
+ "valueMapping": {
+ "StateA": "StateB"
+ }
+ },
+ "FieldToFieldMap": {
+ "ApplyTo": [ "SomeWorkItemType" ],
+ "sourceField": "Microsoft.VSTS.Common.BacklogPriority",
+ "targetField": "Microsoft.VSTS.Common.StackRank",
+ "defaultValue": 42
+ },
+ "FieldToFieldMultiMap": {
+ "ApplyTo": [ "SomeWorkItemType", "SomeOtherWorkItemType" ],
+ "SourceToTargetMappings": {
+ "SourceField1": "TargetField1",
+ "SourceField2": "TargetField2"
+ }
+ },
+ "FieldToTagMap": {
+ "ApplyTo": [ "SomeWorkItemType" ],
+ "sourceField": "System.State",
+ "formatExpression": "ScrumState:{0}"
+ },
+ "FieldToTagFieldMap": {
+ "ApplyTo": [ "SomeWorkItemType" ],
+ "sourceFields": [
+ "System.Description",
+ "Microsoft.VSTS.Common.AcceptanceCriteria"
+ ],
+ "targetField": "System.Description",
+ "formatExpression": "{0}
Acceptance Criteria
{1}"
+ },
+ "RegexFieldMap": {
+ "ApplyTo": [ "SomeWorkItemType" ],
+ "sourceField": "COMPANY.PRODUCT.Release",
+ "targetField": "COMPANY.DEVISION.MinorReleaseVersion",
+ "pattern": "PRODUCT \\d{4}.(\\d{1})",
+ "replacement": "$1"
+ },
+ "FieldValueToTagMap": {
+ "ApplyTo": [ "SomeWorkItemType" ],
+ "sourceField": "Microsoft.VSTS.CMMI.Blocked",
+ "pattern": "Yes",
+ "formatExpression": "{0}"
+ },
+ "TreeToTagMap": {
+ "ApplyTo": [ "SomeWorkItemType" ],
+ "toSkip": 3,
+ "timeTravel": 1
+ }
+ }
+ },
+ "TfsChangeSetMappingTool": {
+ "Enabled": true,
+ "File": "c:\\changesetmappings.json"
+ },
+ "TfsNodeStructureTool": {
+ "Enabled": true,
+ "Areas": {
+ "Filters": [ "*\\Team 1,*\\Team 1\\**" ],
+ "Mappings": {
+ "^migrationSource1([\\\\]?.*)$": "MigrationTest5$1",
+ "^Skypoint Cloud([\\\\]?.*)$": "MigrationTest5$1",
+ "^7473924d-c47f-4089-8f5c-077c728b576e([\\\\]?.*)$": "MigrationTest5$1"
+ }
+ },
+ "Iterations": {
+ "Filters": [ "*\\Sprint*", "*\\Sprint*\\**" ],
+ "Mappings": {
+ "^migrationSource1([\\\\]?.*)$": "MigrationTest5$1",
+ "^Skypoint Cloud([\\\\]?.*)$": "MigrationTest5$1",
+ "^7473924d-c47f-4089-8f5c-077c728b576e([\\\\]?.*)$": "MigrationTest5$1"
+ }
+ },
+ "ShouldCreateMissingRevisionPaths": true,
+ "ReplicateAllExistingNodes": true
+ },
+ "TfsTeamSettingsTool": {
+ "Enabled": true,
+ "MigrateTeamSettings": true,
+ "UpdateTeamSettings": true,
+ "MigrateTeamCapacities": true,
+ "Teams": [ "Team 1", "Team 2" ]
+ },
+ "TfsWorkItemLinkTool": {
+ "Enabled": true,
+ "FilterIfLinkCountMatches": true,
+ "SaveAfterEachLinkIsAdded": false
+ },
+ "TfsRevisionManagerTool": {
+ "Enabled": true,
+ "ReplayRevisions": true,
+ "MaxRevisions": 0
+ },
+ "TfsAttachmentTool": {
+ "RefName": "TfsAttachmentTool",
+ "Enabled": true,
+ "ExportBasePath": "c:\\temp\\WorkItemAttachmentExport",
+ "MaxAttachmentSize": 480000000
+ },
+ "StringManipulatorTool": {
+ "Enabled": true,
+ "MaxStringLength": 1000000,
+ "Manipulators": [
+ {
+ "$type": "RegexStringManipulator",
+ "Enabled": true,
+ "Pattern": "[^( -~)\n\r\t]+",
+ "Replacement": "",
+ "Description": "Remove invalid characters from the end of the string"
+ }
+ ]
+ },
+ "TfsUserMappingTool": {
+ "Enabled": true,
+ "UserMappingFile": "C:\\temp\\userExport.json",
+ "IdentityFieldsToCheck": [
+ "System.AssignedTo",
+ "System.ChangedBy",
+ "System.CreatedBy",
+ "Microsoft.VSTS.Common.ActivatedBy",
+ "Microsoft.VSTS.Common.ResolvedBy",
+ "Microsoft.VSTS.Common.ClosedBy"
+ ]
+ },
+ "WorkItemTypeMappingTool": {
+ "Enabled": true,
+ "Mappings": {
+ "User Story": "Product Backlog Item"
+ }
+ },
+ "TfsWorkItemEmbededLinkTool": {
+ "Enabled": true
+ },
+ "TfsEmbededImagesTool": {
+ "Enabled": true
+ }
+ },
+ "ProcessorDefaults": {
+ "AzureDevOpsPipelineProcessor": {
+ "Enabled": false,
+ "MigrateBuildPipelines": true,
+ "MigrateReleasePipelines": true,
+ "MigrateTaskGroups": true,
+ "MigrateVariableGroups": true,
+ "MigrateServiceConnections": true,
+ "BuildPipelines": null,
+ "ReleasePipelines": null,
+ "SourceName": "sourceName",
+ "TargetName": "targetName"
+ },
+ "TfsWorkItemMigrationProcessor": {
+ "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,
+ "SourceName": "Source",
+ "TargetName": "Target",
+ "WorkItemIDs": [],
+ "MaxGracefulFailures": 0,
+ "SkipRevisionWithInvalidIterationPath": false,
+ "SkipRevisionWithInvalidAreaPath": false
+ }
+ },
+ "ProcessorSamples": {
+ "AzureDevOpsPipelineProcessor": {
+ "Enabled": false,
+ "MigrateBuildPipelines": true,
+ "MigrateReleasePipelines": true,
+ "MigrateTaskGroups": true,
+ "MigrateVariableGroups": true,
+ "MigrateServiceConnections": true,
+ "BuildPipelines": null,
+ "ReleasePipelines": null,
+ "SourceName": "sourceName",
+ "TargetName": "targetName"
+ },
+ "TfsWorkItemMigrationProcessor": {
+ "Enabled": false,
+ "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",
+ "FilterWorkItemsThatAlreadyExistInTarget": false,
+ "SourceName": "Source",
+ "TargetName": "Target"
+ },
+ "ExportUsersForMappingProcessor": {
+ "Enabled": 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",
+ "OnlyListUsersInWorkItems": true,
+ "SourceName": "Source",
+ "TargetName": "Target"
+ }
+ },
+ "Infrastructure": {
+ "ClassNameChangeMappings": {
+ "TfsGitRepositoryTool": "TfsGitRepositoryTool",
+ "TfsTeamSettingsEnricher": "TfsTeamSettingsTool",
+ "TfsWorkItemLinkEnricher": "TfsWorkItemLinkTool",
+ "TfsAttachmentEnricher": "TfsAttachmentTool",
+ "StringManipulatorEnricher": "StringManipulatorTool",
+ "TfsUserMappingEnricher": "TfsUserMappingTool",
+ "FieldBlankMap": "FieldClearMap",
+ "FieldtoTagMap": "FieldToTagFieldMap",
+ "TreeToTagMap": "TreeToTagFieldMap",
+ "TeamMigration": "TfsTeamSettingsProcessor",
+ "WorkItemQueryMigration": "TfsSharedQueryProcessor",
+ "WorkItemMigration": "TfsWorkItemMigrationProcessor",
+ "WorkItemMigrationContext": "TfsWorkItemMigrationProcessor",
+ "TfsTeamProjectConfig": "TfsTeamProjectEndpoint",
+ "WorkItemGitRepoMappingTool": "TfsGitRepositoryTool",
+ "WorkItemFieldMappingTool": "FieldMappingTool",
+ "CreateTeamFolders": "TfsCreateTeamFoldersProcessor",
+ "ExportProfilePicture": "TfsExportProfilePictureFromADProcessor",
+ "ExportProfilePictureFromAD": "TfsExportProfilePictureFromADProcessor",
+ "ImportProfilePicture": "TfsImportProfilePictureProcessor",
+ "ImportProfilePictureFromAD": "TfsImportProfilePictureProcessor",
+ "ExportUsersForMapping": "TfsExportUsersForMappingProcessor",
+ "ExportUsersForMappingContext": "TfsExportUsersForMappingProcessor",
+ "ExportTeamListProcessor": "TfsExportTeamListProcessor",
+ "ExportTeamList": "TfsExportTeamListProcessor",
+ "ExportUsersForMappingProcessor": "TfsExportUsersForMappingProcessor",
+ "TestConfigurationsMigration": "TfsTestConfigurationsMigrationProcessor",
+ "TestConfigurationsMigrationProcessor": "TfsTestConfigurationsMigrationProcessor",
+ "TestConfigurationsMigrationContext": "TfsTestConfigurationsMigrationProcessor",
+ "TestPlansAndSuitesMigration": "TfsTestPlansAndSuitesMigrationProcessor",
+ "TestPlansAndSuitesMigrationProcessor": "TfsTestPlansAndSuitesMigrationProcessor",
+ "TestPlansAndSuitesMigrationContext": "TfsTestPlansAndSuitesMigrationProcessor",
+ "TestVariablesMigration": "TfsTestVariablesMigrationProcessor",
+ "TestVariablesMigrationProcessor": "TfsTestVariablesMigrationProcessor",
+ "TestVariablesMigrationContext": "TfsTestVariablesMigrationProcessor",
+ "WorkItemBulkEditProcessor": "TfsWorkItemBulkEditProcessor",
+ "WorkItemUpdate": "TfsWorkItemBulkEditProcessor",
+ "WorkItemDelete": "TfsWorkItemDeleteProcessor",
+ "WorkItemDeleteProcessor": "TfsWorkItemDeleteProcessor",
+ "WorkItemPostProcessingContext": "TfsWorkItemOverwriteProcessor",
+ "WorkItemPostProcessing": "TfsWorkItemOverwriteProcessor",
+ "WorkItemPostProcessingProcessor": "TfsWorkItemOverwriteProcessor",
+ "WorkItemUpdateAreasAsTagsContext": "TfsWorkItemOverwriteProcessor",
+ "WorkItemUpdateAreasAsTagsProcessor": "TfsWorkItemOverwriteProcessor"
+ }
+ }
+ }
+}
diff --git a/src/MigrationTools/EndpointEnrichers/WorkItemEndpointEnrichers/WorkItemAttachmentEnricherOptions.cs b/src/MigrationTools/EndpointEnrichers/WorkItemEndpointEnrichers/WorkItemAttachmentEnricherOptions.cs
index 8ec443513..f6312d31d 100644
--- a/src/MigrationTools/EndpointEnrichers/WorkItemEndpointEnrichers/WorkItemAttachmentEnricherOptions.cs
+++ b/src/MigrationTools/EndpointEnrichers/WorkItemEndpointEnrichers/WorkItemAttachmentEnricherOptions.cs
@@ -2,13 +2,29 @@
namespace MigrationTools.EndpointEnrichers
{
+ ///
+ /// Configuration options for the Work Item Attachment Enricher that handles the download, processing, and migration of work item attachments between endpoints.
+ ///
public class WorkItemAttachmentEnricherOptions : EndpointEnricherOptions
{
+ ///
+ /// Local file system path used as working directory for downloading and processing attachments during migration. Should have sufficient disk space and proper permissions.
+ ///
public string WorkingPath { get; set; }
+
+ ///
+ /// Maximum size in bytes for attachments that will be processed. Attachments larger than this size will be skipped to prevent performance issues.
+ ///
public int MaxSize { get; set; }
+ ///
+ /// Gets the type of the enricher that this configuration applies to.
+ ///
public override Type ToConfigure => typeof(WorkItemAttachmentEnricher);
+ ///
+ /// Sets the default values for the work item attachment enricher configuration.
+ ///
public override void SetDefaults()
{
Enabled = true;
diff --git a/src/MigrationTools/EndpointEnrichers/WorkItemEndpointEnrichers/WorkItemCreatedEnricherOptions.cs b/src/MigrationTools/EndpointEnrichers/WorkItemEndpointEnrichers/WorkItemCreatedEnricherOptions.cs
index 5fa5f2d22..5c6d0bfdf 100644
--- a/src/MigrationTools/EndpointEnrichers/WorkItemEndpointEnrichers/WorkItemCreatedEnricherOptions.cs
+++ b/src/MigrationTools/EndpointEnrichers/WorkItemEndpointEnrichers/WorkItemCreatedEnricherOptions.cs
@@ -2,13 +2,29 @@
namespace MigrationTools.EndpointEnrichers
{
+ ///
+ /// Configuration options for the Work Item Created Enricher that preserves original creation metadata when migrating work items between endpoints.
+ ///
public class WorkItemCreatedEnricherOptions : EndpointEnricherOptions
{
+ ///
+ /// When true, updates the created date of migrated work items to match the original creation date from the source system.
+ ///
public bool UpdateCreatedDate { get; set; }
+
+ ///
+ /// When true, updates the created by field of migrated work items to match the original creator from the source system.
+ ///
public bool UpdateCreatedBy { get; set; }
+ ///
+ /// Gets the type of the enricher that this configuration applies to.
+ ///
public override Type ToConfigure => typeof(WorkItemCreatedEnricher);
+ ///
+ /// Sets the default values for the work item created enricher configuration.
+ ///
public override void SetDefaults()
{
Enabled = true;
diff --git a/src/MigrationTools/EndpointEnrichers/WorkItemEndpointEnrichers/WorkItemEmbedEnricherOptions.cs b/src/MigrationTools/EndpointEnrichers/WorkItemEndpointEnrichers/WorkItemEmbedEnricherOptions.cs
index 1621bf304..2fc610472 100644
--- a/src/MigrationTools/EndpointEnrichers/WorkItemEndpointEnrichers/WorkItemEmbedEnricherOptions.cs
+++ b/src/MigrationTools/EndpointEnrichers/WorkItemEndpointEnrichers/WorkItemEmbedEnricherOptions.cs
@@ -2,12 +2,24 @@
namespace MigrationTools.EndpointEnrichers
{
+ ///
+ /// Configuration options for the Work Item Embed Enricher that handles embedded content and images within work item fields during migration.
+ ///
public class WorkItemEmbedEnricherOptions : EndpointEnricherOptions
{
+ ///
+ /// Local file system path used as working directory for processing embedded content and images during migration. Should have sufficient disk space and proper permissions.
+ ///
public string WorkingPath { get; set; }
+ ///
+ /// Gets the type of the enricher that this configuration applies to.
+ ///
public override Type ToConfigure => typeof(WorkItemEmbedEnricher);
+ ///
+ /// Sets the default values for the work item embed enricher configuration.
+ ///
public override void SetDefaults()
{
Enabled = true;
diff --git a/src/MigrationTools/EndpointEnrichers/WorkItemEndpointEnrichers/WorkItemFieldTableEnricherOptions.cs b/src/MigrationTools/EndpointEnrichers/WorkItemEndpointEnrichers/WorkItemFieldTableEnricherOptions.cs
index c48a3bcba..4a9884748 100644
--- a/src/MigrationTools/EndpointEnrichers/WorkItemEndpointEnrichers/WorkItemFieldTableEnricherOptions.cs
+++ b/src/MigrationTools/EndpointEnrichers/WorkItemEndpointEnrichers/WorkItemFieldTableEnricherOptions.cs
@@ -2,10 +2,19 @@
namespace MigrationTools.EndpointEnrichers
{
+ ///
+ /// Configuration options for the Work Item Field Table Enricher that processes and transforms table data within work item fields during migration.
+ ///
public class WorkItemFieldTableEnricherOptions : EndpointEnricherOptions
{
+ ///
+ /// Gets the type of the enricher that this configuration applies to.
+ ///
public override Type ToConfigure => typeof(WorkItemFieldTableEnricher);
+ ///
+ /// Sets the default values for the work item field table enricher configuration.
+ ///
public override void SetDefaults()
{
Enabled = true;
diff --git a/src/MigrationTools/EndpointEnrichers/WorkItemEndpointEnrichers/WorkItemLinkEnricherOptions.cs b/src/MigrationTools/EndpointEnrichers/WorkItemEndpointEnrichers/WorkItemLinkEnricherOptions.cs
index 8b15c98a6..c4315b799 100644
--- a/src/MigrationTools/EndpointEnrichers/WorkItemEndpointEnrichers/WorkItemLinkEnricherOptions.cs
+++ b/src/MigrationTools/EndpointEnrichers/WorkItemEndpointEnrichers/WorkItemLinkEnricherOptions.cs
@@ -2,12 +2,24 @@
namespace MigrationTools.EndpointEnrichers
{
+ ///
+ /// Configuration options for the Work Item Link Enricher that handles the migration and processing of work item links between different endpoints.
+ ///
public class WorkItemLinkEnricherOptions : EndpointEnricherOptions
{
+ ///
+ /// When true, saves each work item after adding links to ensure immediate persistence. When false, saves in batches for better performance.
+ ///
public bool SaveEachAsAdded { get; set; }
+ ///
+ /// Gets the type of the enricher that this configuration applies to.
+ ///
public override Type ToConfigure => typeof(WorkItemLinkEnricher);
+ ///
+ /// Sets the default values for the work item link enricher configuration.
+ ///
public override void SetDefaults()
{
Enabled = true;
diff --git a/src/MigrationTools/Options/NetworkCredentialsOptions.cs b/src/MigrationTools/Options/NetworkCredentialsOptions.cs
index b3c1b4b38..b2633bf97 100644
--- a/src/MigrationTools/Options/NetworkCredentialsOptions.cs
+++ b/src/MigrationTools/Options/NetworkCredentialsOptions.cs
@@ -8,18 +8,41 @@
namespace MigrationTools.Options
{
+ ///
+ /// Configuration options for network credentials used when connecting to source and target systems. This class is marked as obsolete and should not be used in new implementations.
+ ///
[Obsolete]
public class NetworkCredentialsOptions
{
+ ///
+ /// Gets or sets the network credentials for connecting to the source system.
+ ///
public NetworkCredentials Source { get; set; }
+
+ ///
+ /// Gets or sets the network credentials for connecting to the target system.
+ ///
public NetworkCredentials Target { get; set; }
}
+ ///
+ /// Represents network authentication credentials including domain, username, and password for connecting to TFS or other network-based systems.
+ ///
public class NetworkCredentials : IValidateOptions
{
+ ///
+ /// Gets or sets the domain name for Windows authentication (e.g., "CONTOSO" or "contoso.com").
+ ///
public string Domain { get; set; }
+
+ ///
+ /// Gets or sets the username for authentication. Should not include the domain prefix.
+ ///
public string UserName { get; set; }
+ ///
+ /// Gets or sets the password for authentication. This value is masked in JSON serialization for security.
+ ///
[JsonConverter(typeof(DefaultOnlyConverter), "** removed as a secret ***")]
public string Password { get; set; }
diff --git a/src/MigrationTools/Options/QueryOptions.cs b/src/MigrationTools/Options/QueryOptions.cs
index 07ba6381d..7a7601e8a 100644
--- a/src/MigrationTools/Options/QueryOptions.cs
+++ b/src/MigrationTools/Options/QueryOptions.cs
@@ -3,11 +3,20 @@
namespace MigrationTools.Options
{
+ ///
+ /// Configuration options for defining work item queries used in migration processes. Supports WIQL (Work Item Query Language) queries with parameterization.
+ ///
public class QueryOptions
{
+ ///
+ /// Gets or sets the WIQL (Work Item Query Language) query string used to select work items for processing. Must be a valid WIQL query.
+ ///
[Required]
public string Query { get; set; }
+ ///
+ /// Gets or sets a dictionary of query parameters that can be substituted into the WIQL query. Key represents the parameter name, value represents the parameter value.
+ ///
public Dictionary Parameters { get; set; }
}
}
\ No newline at end of file
diff --git a/src/MigrationTools/Processors/WorkItemTrackingProcessorOptions.cs b/src/MigrationTools/Processors/WorkItemTrackingProcessorOptions.cs
index 094775a9e..e54529404 100644
--- a/src/MigrationTools/Processors/WorkItemTrackingProcessorOptions.cs
+++ b/src/MigrationTools/Processors/WorkItemTrackingProcessorOptions.cs
@@ -5,10 +5,24 @@
namespace MigrationTools.Processors
{
+ ///
+ /// Configuration options for the WorkItemTrackingProcessor, which handles migration of work items between endpoints.
+ ///
public class WorkItemTrackingProcessorOptions : ProcessorOptions
{
+ ///
+ /// Gets or sets a value indicating whether to replay all revisions during migration.
+ ///
public bool ReplayRevisions { get; set; }
+
+ ///
+ /// Gets or sets a value indicating whether to collapse revisions into a single work item.
+ ///
public bool CollapseRevisions { get; set; }
+
+ ///
+ /// Gets or sets the number of times to retry work item creation if it fails.
+ ///
public int WorkItemCreateRetryLimit { get; set; }
}
diff --git a/src/MigrationTools/Tools/FieldMappingTool.cs b/src/MigrationTools/Tools/FieldMappingTool.cs
index 9f250a981..d6d4eca8a 100644
--- a/src/MigrationTools/Tools/FieldMappingTool.cs
+++ b/src/MigrationTools/Tools/FieldMappingTool.cs
@@ -16,11 +16,21 @@
namespace MigrationTools.Tools
{
+ ///
+ /// Tool for applying field mapping transformations to work items during migration, supporting various field mapping strategies like direct mapping, regex transformations, and value lookups.
+ ///
public class FieldMappingTool : Tool, IFieldMappingTool
{
private Dictionary> fieldMapps = new Dictionary>();
+ ///
+ /// Initializes a new instance of the FieldMappingTool class.
+ ///
+ /// Configuration options for field mapping
+ /// Service provider for dependency injection
+ /// Logger for the tool operations
+ /// Telemetry logger for tracking operations
public FieldMappingTool(IOptions options, IServiceProvider services, ILogger logger, ITelemetryLogger telemetry) : base(options, services, logger, telemetry)
{
if (Options.FieldMaps != null)
diff --git a/src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldClearMapOptions.cs b/src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldClearMapOptions.cs
index fe053f62e..2046b69f3 100644
--- a/src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldClearMapOptions.cs
+++ b/src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldClearMapOptions.cs
@@ -10,6 +10,9 @@ namespace MigrationTools.Tools
/// Work Item
public class FieldClearMapOptions : FieldMapOptions
{
+ ///
+ /// Gets or sets the name of the target field to be cleared/set to null during work item migration.
+ ///
public string targetField { get; set; }
public void SetExampleConfigDefaults()
diff --git a/src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldLiteralMapOptions.cs b/src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldLiteralMapOptions.cs
index 09f023684..5db49269c 100644
--- a/src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldLiteralMapOptions.cs
+++ b/src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldLiteralMapOptions.cs
@@ -10,9 +10,14 @@ namespace MigrationTools.Tools
/// Work Item Field
public class FieldLiteralMapOptions : FieldMapOptions
{
-
+ ///
+ /// Gets or sets the name of the target field that will be set to the specified literal value.
+ ///
public string targetField { get; set; }
+ ///
+ /// Gets or sets the literal value that will be assigned to the target field during migration.
+ ///
public string value { get; set; }
public void SetExampleConfigDefaults()
diff --git a/src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldSkipMapOptions.cs b/src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldSkipMapOptions.cs
index 77dc87b8d..70035f481 100644
--- a/src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldSkipMapOptions.cs
+++ b/src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldSkipMapOptions.cs
@@ -10,6 +10,9 @@ namespace MigrationTools.Tools
/// Work Item
public class FieldSkipMapOptions : FieldMapOptions
{
+ ///
+ /// Gets or sets the name of the target field that should be skipped during migration, resetting it to its original value.
+ ///
public string targetField { get; set; }
diff --git a/src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldValueMapOptions.cs b/src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldValueMapOptions.cs
index 0ac59b401..6b5f2210b 100644
--- a/src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldValueMapOptions.cs
+++ b/src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldValueMapOptions.cs
@@ -10,9 +10,24 @@ namespace MigrationTools.Tools
/// Work Item Field
public class FieldValueMapOptions : FieldMapOptions
{
+ ///
+ /// Gets or sets the name of the source field to read values from during migration.
+ ///
public string sourceField { get; set; }
+
+ ///
+ /// Gets or sets the name of the target field to write mapped values to during migration.
+ ///
public string targetField { get; set; }
+
+ ///
+ /// Gets or sets the default value to use when no mapping is found for the source field value.
+ ///
public string defaultValue { get; set; }
+
+ ///
+ /// Gets or sets the dictionary that maps source field values to target field values. Key is the source value, value is the target value.
+ ///
public Dictionary valueMapping { get; set; }
public void SetExampleConfigDefaults()
diff --git a/src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldtoFieldMapOptions.cs b/src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldtoFieldMapOptions.cs
index 6a5cf2be5..03a63d7aa 100644
--- a/src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldtoFieldMapOptions.cs
+++ b/src/MigrationTools/Tools/FieldMappingTool/FieldMaps/FieldtoFieldMapOptions.cs
@@ -11,8 +11,19 @@ namespace MigrationTools.Tools
/// Work Item Field
public class FieldToFieldMapOptions : FieldMapOptions
{
+ ///
+ /// Gets or sets the name of the source field to copy data from during migration.
+ ///
public string sourceField { get; set; }
+
+ ///
+ /// Gets or sets the name of the target field to copy data to during migration.
+ ///
public string targetField { get; set; }
+
+ ///
+ /// Gets or sets the default value to use when the source field is empty or null.
+ ///
public string defaultValue { get; set; }
public void SetExampleConfigDefaults()
diff --git a/src/MigrationTools/Tools/FieldMappingTool/FieldMaps/RegexFieldMapOptions.cs b/src/MigrationTools/Tools/FieldMappingTool/FieldMaps/RegexFieldMapOptions.cs
index af4c173fb..e687b8388 100644
--- a/src/MigrationTools/Tools/FieldMappingTool/FieldMaps/RegexFieldMapOptions.cs
+++ b/src/MigrationTools/Tools/FieldMappingTool/FieldMaps/RegexFieldMapOptions.cs
@@ -9,9 +9,24 @@ namespace MigrationTools.Tools
/// Work Item Field
public class RegexFieldMapOptions : FieldMapOptions
{
+ ///
+ /// Gets or sets the name of the source field to read data from and apply regex pattern matching.
+ ///
public string sourceField { get; set; }
+
+ ///
+ /// Gets or sets the name of the target field to write the regex-transformed data to.
+ ///
public string targetField { get; set; }
+
+ ///
+ /// Gets or sets the regular expression pattern to match against the source field value.
+ ///
public string pattern { get; set; }
+
+ ///
+ /// Gets or sets the replacement pattern that defines how matched groups should be used to construct the target value.
+ ///
public string replacement { get; set; }
public void SetExampleConfigDefaults()
diff --git a/src/MigrationTools/Tools/FieldMappingTool/FieldMaps/TreeToTagFieldMapOptions.cs b/src/MigrationTools/Tools/FieldMappingTool/FieldMaps/TreeToTagFieldMapOptions.cs
index 3dfd93708..2a991892b 100644
--- a/src/MigrationTools/Tools/FieldMappingTool/FieldMaps/TreeToTagFieldMapOptions.cs
+++ b/src/MigrationTools/Tools/FieldMappingTool/FieldMaps/TreeToTagFieldMapOptions.cs
@@ -10,7 +10,14 @@ namespace MigrationTools.Tools
/// Work Item Field
public class TreeToTagFieldMapOptions : FieldMapOptions
{
+ ///
+ /// Gets or sets the number of levels to skip from the root when converting area path hierarchy to tags. For example, if set to 2, "ProjectName\Level1\Level2\Level3" would skip "ProjectName\Level1" and start from "Level2".
+ ///
public int toSkip { get; set; }
+
+ ///
+ /// Gets or sets the number of months to travel back in time when looking up historical area path values. Use 0 for current values.
+ ///
public int timeTravel { get; set; }
public void SetExampleConfigDefaults()
diff --git a/src/MigrationTools/Tools/FieldMappingToolOptions.cs b/src/MigrationTools/Tools/FieldMappingToolOptions.cs
index 6bda3aa94..dfe7c0e6a 100644
--- a/src/MigrationTools/Tools/FieldMappingToolOptions.cs
+++ b/src/MigrationTools/Tools/FieldMappingToolOptions.cs
@@ -5,20 +5,37 @@
namespace MigrationTools.Tools
{
+ ///
+ /// Configuration options for the FieldMappingTool, defining the collection of field mappings to apply during work item migration.
+ ///
public class FieldMappingToolOptions : ToolOptions
{
+ ///
+ /// Gets or sets the list of field mapping configurations to apply.
+ ///
public List FieldMaps { get; set; } = new List();
+ ///
+ /// Configuration provider for field mapping tool options, handling the loading of field map configurations from configuration sources.
+ ///
public class ConfigureOptions : IConfigureOptions
{
private readonly IConfiguration _configuration;
+ ///
+ /// Initializes a new instance of the ConfigureOptions class.
+ ///
+ /// The configuration provider
public ConfigureOptions(IConfiguration configuration)
{
_configuration = configuration;
}
+ ///
+ /// Configures the field mapping tool options from the configuration source.
+ ///
+ /// The options instance to configure
public void Configure(FieldMappingToolOptions options)
{
IConfigurationSection cfg = _configuration.GetSection(options.ConfigurationMetadata.PathToInstance);
diff --git a/src/MigrationTools/Tools/StaticTools.cs b/src/MigrationTools/Tools/StaticTools.cs
index 8c8967d63..cfebb3be0 100644
--- a/src/MigrationTools/Tools/StaticTools.cs
+++ b/src/MigrationTools/Tools/StaticTools.cs
@@ -5,12 +5,32 @@
namespace MigrationTools.Tools
{
+ ///
+ /// Container for common tools used across migration operations, providing centralized access to frequently used utility tools.
+ ///
public class CommonTools
{
+ ///
+ /// Gets the string manipulator tool for processing string fields.
+ ///
public IStringManipulatorTool StringManipulator { get; private set; }
+
+ ///
+ /// Gets the work item type mapping tool for transforming work item types.
+ ///
public IWorkItemTypeMappingTool WorkItemTypeMapping { get; private set; }
+ ///
+ /// Gets the field mapping tool for applying field transformations.
+ ///
public IFieldMappingTool FieldMappingTool { get; private set; }
+
+ ///
+ /// Initializes a new instance of the CommonTools class.
+ ///
+ /// Tool for string field manipulation
+ /// Tool for work item type mapping
+ /// Tool for field mapping operations
public CommonTools(IStringManipulatorTool StringManipulatorTool, IWorkItemTypeMappingTool workItemTypeMapping, IFieldMappingTool fieldMappingTool)
{
StringManipulator = StringManipulatorTool;
diff --git a/src/MigrationTools/Tools/StringManipulatorToolOptions.cs b/src/MigrationTools/Tools/StringManipulatorToolOptions.cs
index f44db8441..67106d22a 100644
--- a/src/MigrationTools/Tools/StringManipulatorToolOptions.cs
+++ b/src/MigrationTools/Tools/StringManipulatorToolOptions.cs
@@ -6,6 +6,9 @@
namespace MigrationTools.Tools
{
+ ///
+ /// Configuration options for the StringManipulatorTool, defining string transformations and length limits for work item string fields.
+ ///
public class StringManipulatorToolOptions : ToolOptions
{
@@ -22,11 +25,29 @@ public class StringManipulatorToolOptions : ToolOptions
public List Manipulators { get; set; }
}
+ ///
+ /// Represents a regular expression-based string manipulation rule for processing work item string fields.
+ ///
public class RegexStringManipulator
{
+ ///
+ /// Gets or sets a value indicating whether this manipulator is enabled.
+ ///
public bool Enabled { get; set; }
+
+ ///
+ /// Gets or sets the regular expression pattern to match.
+ ///
public string Pattern { get; set; }
+
+ ///
+ /// Gets or sets the replacement string for matched patterns.
+ ///
public string Replacement { get; set; }
+
+ ///
+ /// Gets or sets a description of what this manipulator does.
+ ///
public string Description { get; set; }
}
}
\ No newline at end of file
diff --git a/src/MigrationTools/Tools/WorkItemTypeMappingTool.cs b/src/MigrationTools/Tools/WorkItemTypeMappingTool.cs
index 6a7427812..7e54d8671 100644
--- a/src/MigrationTools/Tools/WorkItemTypeMappingTool.cs
+++ b/src/MigrationTools/Tools/WorkItemTypeMappingTool.cs
@@ -14,12 +14,22 @@
namespace MigrationTools.Tools
{
///
- /// Used to process the String fields of a work item. This is useful for cleaning up data. It will limit fields to a max length and apply regex replacements based on what is configured. Each regex replacement is applied in order and can be enabled or disabled.
+ /// Provides mapping functionality for transforming work item types from source to target systems during migration, allowing different work item type names to be used in the target.
///
public class WorkItemTypeMappingTool : Tool, IWorkItemTypeMappingTool
{
+ ///
+ /// Gets the dictionary of work item type mappings from source to target types.
+ ///
public Dictionary Mappings { get; private set; }
+ ///
+ /// Initializes a new instance of the WorkItemTypeMappingTool class.
+ ///
+ /// Configuration options for work item type mappings
+ /// Service provider for dependency injection
+ /// Logger for the tool operations
+ /// Telemetry logger for tracking operations
public WorkItemTypeMappingTool(IOptions options, IServiceProvider services, ILogger logger, ITelemetryLogger telemetryLogger)
: base(options, services, logger, telemetryLogger)
{
diff --git a/src/MigrationTools/Tools/WorkItemTypeMappingToolOptions.cs b/src/MigrationTools/Tools/WorkItemTypeMappingToolOptions.cs
index 7eb74bed4..c39d3042f 100644
--- a/src/MigrationTools/Tools/WorkItemTypeMappingToolOptions.cs
+++ b/src/MigrationTools/Tools/WorkItemTypeMappingToolOptions.cs
@@ -6,6 +6,9 @@
namespace MigrationTools.Tools
{
+ ///
+ /// Configuration options for the WorkItemTypeMappingTool, defining how work item types should be mapped between source and target systems.
+ ///
public class WorkItemTypeMappingToolOptions : ToolOptions
{
@@ -17,11 +20,29 @@ public class WorkItemTypeMappingToolOptions : ToolOptions
}
+ ///
+ /// Represents a regular expression-based work item type mapping rule for dynamic type transformations.
+ ///
public class RegexWorkItemTypeMapping
{
+ ///
+ /// Gets or sets a value indicating whether this mapping rule is enabled.
+ ///
public bool Enabled { get; set; }
+
+ ///
+ /// Gets or sets the regular expression pattern to match work item type names.
+ ///
public string Pattern { get; set; }
+
+ ///
+ /// Gets or sets the replacement string for matched work item type names.
+ ///
public string Replacement { get; set; }
+
+ ///
+ /// Gets or sets a description of what this mapping rule does.
+ ///
public string Description { get; set; }
}
}
\ No newline at end of file