Getting error while trying to migrate area path and iterations to a source project #2302
Replies: 3 comments 1 reply
-
Hi there, You're reporting a problem with an old version of the Azure DevOps Migration Tools. Please try the latest version and tell us if that fixes your problem. Bonus points for also trying with the latest preview version. Good luck, Thanks, Azure DevOps Migration Tools team |
Beta Was this translation helpful? Give feedback.
-
I think that you need to spend a little more time with the docs: https://nkdagility.com/learn/azure-devops-migration-tools/Reference/v1/ Your config is really not representative of how the tool works. |
Beta Was this translation helpful? Give feedback.
-
Hello Mr.Hinshelwood,
Thank you for your response. Currently I have version 15.0.4 of the naked
agility tool. I will get the latest version of it and try. With the 15.0.4
version I am trying below code and am able to migrate work items, teams and
iterations. Please check my code below and see if it needs any changes.
Thanks in advance.
{
"ChangeSetMappingFile": null,
"Source": {
"$type": "TfsTeamProjectConfig",
"Collection": "https://adoservertest/tfs/IT/",
"Project": "Training",
"ReflectedWorkItemIDFieldName": "Agile.ReflectedWorkItemId",
"AllowCrossProjectLinking": false,
"AuthenticationMode": "Prompt",
"PersonalAccessToken": "",
"PersonalAccessTokenVariableName": "",
"LanguageMaps": {
"AreaPath": "Area",
"IterationPath": "Iteration"
}
},
"Target": {
"$type": "TfsTeamProjectConfig",
"Collection": "https://dev.azure.com/Testing/",
"Project": "Training1",
"ReflectedWorkItemIDFieldName": "Custom.ReflectedWorkItemId",
"AllowCrossProjectLinking": false,
"AuthenticationMode": "AccessToken",
"PersonalAccessToken": "*********************************",
"PersonalAccessTokenVariableName": "",
"LanguageMaps": {
"AreaPath": "Area",
"IterationPath": "Iteration"
}
},
"FieldMaps": [],
"GitRepoMapping": null,
"LogLevel": "Debug",
"CommonEnrichersConfig": [
{
"$type": "TfsNodeStructureOptions",
"Enabled": true,
"NodeBasePaths": [""],
"AreaMaps": {
"^Training([\\\\]?.*)$": "Training1$1"
},
"IterationMaps": {
"^Training([\\\\]?.*)$": "Training1$1"
},
"ShouldCreateMissingRevisionPaths": true,
"ReplicateAllExistingNodes": true
},
{
"$type": "TfsWorkItemLinkEnricherOptions",
"Enabled": true,
"FilterIfLinkCountMatches": true,
"SaveAfterEachLinkIsAdded": false
},
{
"$type": "TfsRevisionManagerOptions",
"Enabled": true,
"ReplayRevisions": true,
"MaxRevisions": 0
},
{
"$type": "TfsAttachmentEnricherOptions",
"Enabled": true,
"ExportBasePath": "c:\\temp\\WorkItemAttachmentExport",
"MaxRevisions": 480000000
},
{
"$type": "StringManipulatorEnricherOptions",
"Enabled": true,
"MaxStringLength": 1000000,
"Manipulators": [
{
"$type": "RegexStringManipulator",
"Enabled": true,
"Pattern": "[^( -~)\n\r\t]+",
"Replacement": "",
"Description": "Remove invalid characters from the end of the
string"
}
]
},
{
"$type": "TfsUserMappingEnricherOptions",
"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"
]
}
],
"Processors": [
{
"$type": "WorkItemMigrationConfig",
"Enabled": true,
"UpdateCreatedDate": true,
"UpdateCreatedBy": true,
"WIQLQuery": "SELECT [System.Id] FROM WorkItems WHERE
[System.TeamProject] = @teamproject AND [System.AreaPath] under
'Training\\MfgInfra-Dev' AND [System.WorkItemType] NOT IN ('Program',
'Portfolio', 'Test Suite', 'Test Plan','Shared Steps','Shared
Parameter','Feedback Request') ORDER BY [System.ChangedDate] desc",
"FixHtmlAttachmentLinks": false,
"WorkItemCreateRetryLimit": 5,
"FilterWorkItemsThatAlreadyExistInTarget": false,
"PauseAfterEachWorkItem": false,
"AttachRevisionHistory": false,
"GenerateMigrationComment": true,
"WorkItemIDs": null,
"MaxGracefulFailures": 0,
"SkipRevisionWithInvalidIterationPath": false,
"SkipRevisionWithInvalidAreaPath": false,
"SkipToFinalRevisedWorkItemType": "true"
},
{
"$type": "ExportUsersForMappingConfig",
"Enabled": false,
"WIQLQuery": "SELECT [System.Id] FROM WorkItems WHERE
[System.TeamProject] = @teamproject AND [System.AreaPath] under
'Training\\MfgInfra-Dev' AND [System.WorkItemType] NOT IN ('Program',
'Portfolio', 'Test Suite', 'Test Plan','Shared Steps','Shared
Parameter','Feedback Request') ORDER BY [System.ChangedDate] desc",
"OnlyListUsersInWorkItems": true
}
],
"Version": "15.0",
"workaroundForQuerySOAPBugEnabled": false,
"WorkItemTypeDefinition": {
"User Story": "Product Backlog Item"
},
"Endpoints": {
"InMemoryWorkItemEndpoints": [
{
"Name": "Source",
"EndpointEnrichers": null
},
{
"Name": "Target",
"EndpointEnrichers": null
}
]
}
}
Thanks,
Anjali Kambhampati
…On Fri, Aug 23, 2024 at 2:30 AM Martin Hinshelwood nkdAgility.com < ***@***.***> wrote:
I think that you need to spend a little more time with the docs:
https://nkdagility.com/learn/azure-devops-migration-tools/Reference/v1/
Your config is really not representative of how the tool works.
—
Reply to this email directly, view it on GitHub
<#2302 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/APYMFFN7S3DXK7OYUOXUJGLZS3XLZAVCNFSM6AAAAABM4WGRUSVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTANBSG43DSNQ>
.
You are receiving this because you authored the thread.Message ID:
<nkdAgility/azure-devops-migration-tools/repo-discussions/2302/comments/10427696
@github.com>
|
Beta Was this translation helpful? Give feedback.
-
{
"Source": {
"$type": "TfsTeamProjectConfig",
"Collection": "SourceProject collection Name",
"Project": "SourceProject",
"ReflectedWorkItemIDFieldName": "Agile.ReflectedWorkItemId",
"AllowCrossProjectLinking": false,
"AuthenticationMode": "Prompt",
"PersonalAccessToken": "",
"PersonalAccessTokenVariableName": "",
},
"Target": {
"$type": "TfsTeamProjectConfig",
"Collection": "TargetProjectCollectionName",
"Project": "TargetProject",
"ReflectedWorkItemIDFieldName": "Custom.ReflectedWorkItemId",
"AllowCrossProjectLinking": false,
"AuthenticationMode": "AccessToken",
"PersonalAccessToken": "******************************",
"PersonalAccessTokenVariableName": "",
},
"Processors": [
{
"$type": "VstsSyncMigrator.Engine.Configuration.Processing.NodeStructuresMigrationConfig",
"PrefixProjectToNodes": false,
"Enabled": true
}
],
"CommonEnrichersConfig": [
{
"$type": "TfsNodeStructureOptions",
"Enabled": true,
"NodeBasePaths": ["Area", "Iteration"],
"AreaMaps": {
"^SourceProject\\Test-Dev([\\]?.)$": "TargetProject\\Test-Dev$1",
"^SourceProject\\Test-Dev\\Team SourceProject([\\]?.)$": "TargetProject\\Test-Dev\\Team SourceProject$1",
"^SourceProject\\Test-Dev\\Team Avengers([\\]?.)$": "TargetProject\\Test-Dev\\Team Avengers$1",
"^SourceProject\\Sandbox - Team([\\]?.)$": "TargetProject\\Sandbox - Team$1",
"^SourceProject\\Team Products([\\]?.)$": "TargetProject\\Team Products$1",
"^SourceProject\\Team AppInfra([\\]?.)$": "TargetProject\\Team AppInfra$1",
"^SourceProject\\Team AppInfra\\Team TEST([\\]?.)$": "TargetProject\\Team AppInfra\\Team TEST$1"
},
"IterationMaps": {
"^SourceProject\\AppInfra([\\]?.)$": "TargetProject\\AppInfra$1",
"^SourceProject\\AppInfra\\Sandbox - Team([\\]?.)$": "TargetProject\\AppInfra\\Sandbox - Team$1",
"^SourceProject\\Test-Dev([\\]?.)$": "TargetProject\\Test-Dev$1",
"^SourceProject\\Test-Dev\\Sprint1([\\]?.)$": "TargetProject\\Test-Dev\\Sprint1$1",
"^SourceProject\\Test-Dev\\Sprint2([\\]?.)$": "TargetProject\\Test-Dev\\Sprint2$1",
"^SourceProject\\Test-Dev\\Team Avengers([\\]?.)$": "TargetProject\\Test-Dev\\Team Avengers$1",
"^SourceProject\\Test-Dev\\Team SourceProject([\\]?.)$": "TargetProject\\Test-Dev\\Team SourceProject$1",
"^SourceProject\\Test-Dev\\Team SourceProject\\sprint1([\\]?.)$": "TargetProject\\Test-Dev\\Team SourceProject\\sprint1$1",
"^SourceProject\\Test-Dev\\Team SourceProject\\sprint2([\\]?.)$": "TargetProject\\Test-Dev\\Team SourceProject\\sprint2$1",
"^SourceProject\\Team Products([\\]?.)$": "TargetProject\\Team Products$1",
"^SourceProject\\TeamTEST1([\\]?.)$": "TargetProject\\TeamTEST1$1",
"^SourceProject\\TeamTEST1\\Sprint 2([\\]?.)$": "TargetProject\\TeamTEST1\\Sprint 2$1",
"^SourceProject\\TeamTEST1\\Sprint 2\\Sprint 3([\\]?.)$": "TargetProject\\TeamTEST1\\Sprint 2\\Sprint 3$1",
}
]
}
Above is the configuration file used by me to migrate area paths migration but getting the below error.
Config Found, creating engine host
[19:26:55 WRN] [v15.0.4] You config file is out of date! In 11.8 we changed
ObjectType
to$type
! We have updated it for you just now![19:26:56 WRN] [v15.0.4] Unable to load Processor: VstsSyncMigrator.Engine.Configuration.Processing.NodeStructuresMigrationConfig
[19:26:56 FTL] [v15.0.4] Your configuration file is malformed and cant be loaded!
[19:26:56 ERR] [v15.0.4] Error resolving type specified in JSON 'VstsSyncMigrator.Engine.Configuration.Processing.NodeStructuresMigrationConfig'. Path 'Processors[0].$type', line 25, position 95.
[19:26:56 ERR] [v15.0.4] How to Solve: Malformed Json is usually a result of editing errors. Validate that your C:\Users\Test\configuration.json is valid Json!
[19:26:56 INF] [v15.0.4] Application is shutting down...
I have also used below syntax for processor but still getting the similar error like above. Please check my configuration file and let me know where I am making a mistake.
"Processors": [
{
"$type": "NodeStructuresMigrationConfig",
"Enabled": true,
"PrefixProjectToNodes": false
}
Thanks in advance!
Beta Was this translation helpful? Give feedback.
All reactions