I am trying to migrate a team from TFS to Azure DevOps using the Azure-devops-migration-tool by nkdagility: https://nkdagility.github.io/azure-devops-migration-tools/
Upon trying to move a specific team from TFS to ADO, I am getting the following error:
[15:06:52 INF] TfsWorkItemEndPoint::GetTfsCollection: Access granted to https://tfs.redacted-inc.com/RAD/ for REDACTED (redacted\MtQadir)
[15:06:52 INF] TfsTeamSettingsProcessor::InternalExecute: Found 8 teams in Source?
[15:06:53 INF] TfsWorkItemEndPoint::GetTfsCollection: Access granted to https://redacted.visualstudio.com/ for Muhammad Talha Qadir ([email protected])
[15:06:53 INF] -> Settings found for team 'JetCenter'..
[15:06:53 FTL] Error while running TfsTeamSettingsProcessor
System.Web.Services.Protocols.SoapException: TF400499: You have not set your team field.
at Microsoft.TeamFoundation.Client.Channels.TfsHttpClientBase.HandleReply(TfsClientOperation operation, TfsMessage message, Object[]& outputs)
at Microsoft.TeamFoundation.Client.Channels.TfsHttpClientBase.Invoke(TfsClientOperation operation, Object[] parameters, TimeSpan timeout, Object[]& outputs)
at Microsoft.TeamFoundation.ProcessConfiguration.Client.TeamConfigurationService.SetTeamSettings(Guid teamId, TeamSettings teamSettings)
at Microsoft.TeamFoundation.ProcessConfiguration.Client.TeamSettingsConfigurationService.SetTeamSettings(Guid teamId, TeamSettings settings)
at MigrationTools.Processors.TfsTeamSettingsProcessor.MigrateTeamSettings() in D:\a\1\s\src\MigrationTools.Clients.AzureDevops.ObjectModel\Processors\TfsTeamSettingsProcessor.cs:line 147
at MigrationTools.Processors.TfsTeamSettingsProcessor.InternalExecute() in D:\a\1\s\src\MigrationTools.Clients.AzureDevops.ObjectModel\Processors\TfsTeamSettingsProcessor.cs:line 45
at MigrationTools.Processors.Processor.Execute() in D:\a\1\s\src\MigrationTools\Processors\Processor.cs:line 78
This is my configuration.json:
{
"ChangeSetMappingFile": null,
"Source": {
"$type": "TfsTeamProjectConfig",
"Collection": "https://tfs.REDACTED-inc.com/RAD/",
"Project": "REDACTED",
"ReflectedWorkItemIDFieldName": "TfsMigrationTool.ReflectedWorkItemId",
"AllowCrossProjectLinking": false,
"AuthenticationMode": "Prompt",
"PersonalAccessToken": "",
"LanguageMaps": {
"AreaPath": "Area",
"IterationPath": "Iteration"
}
},
"Target": {
"$type": "TfsTeamProjectConfig",
"Collection": "https://REDACTED.visualstudio.com/",
"Project": "redactedPOC",
"ReflectedWorkItemIDFieldName": "ReflectedWorkItemId",
"AllowCrossProjectLinking": false,
"AuthenticationMode": "Prompt",
"PersonalAccessToken": "",
"LanguageMaps": {
"AreaPath": "Area",
"IterationPath": "Iteration"
}
},
"FieldMaps": [],
"GitRepoMapping": null,
"LogLevel": "Information",
"Processors": [
{
"$type": "TfsTeamSettingsProcessorOptions",
"Enabled": true,
"MigrateTeamSettings": true,
"UpdateTeamSettings": true,
"PrefixProjectToNodes": false,
"Teams": ["JetCenter"],
"ProcessorEnrichers": null,
"SourceName": "TeamSettingsSource",
"TargetName": "TeamSettingsTarget"
},
{
"$type": "WorkItemMigrationConfig",
"Enabled": false,
"ReplayRevisions": true,
"PrefixProjectToNodes": false,
"UpdateCreatedDate": true,
"UpdateCreatedBy": true,
"BuildFieldTable": false,
"AppendMigrationToolSignatureFooter": false,
"WIQLQueryBit": "AND [System.AreaPath] UNDER 'Project/Team/' AND [System.WorkItemType] NOT IN ('Test Suite', 'Test Plan')",
"WIQLOrderBit": "[System.ChangedDate] desc",
"LinkMigration": true,
"AttachmentMigration": true,
"AttachmentWorkingPath": "c:\\temp\\WorkItemAttachmentWorkingFolder\\",
"FixHtmlAttachmentLinks": false,
"SkipToFinalRevisedWorkItemType": true,
"WorkItemCreateRetryLimit": 5,
"FilterWorkItemsThatAlreadyExistInTarget": true,
"PauseAfterEachWorkItem": false,
"AttachmentMaxSize": 480000000,
"CollapseRevisions": false,
"LinkMigrationSaveEachAsAdded": false,
"GenerateMigrationComment": true,
"NodeBasePaths": [],
"WorkItemIDs": null
}
],
"Version": "11.9",
"workaroundForQuerySOAPBugEnabled": false,
"WorkItemTypeDefinition": {
"sourceWorkItemTypeName": "targetWorkItemTypeName"
},
"Endpoints": {
"InMemoryWorkItemEndpoints": [
{
"Name": "Source",
"EndpointEnrichers": null
},
{
"Name": "Target",
"EndpointEnrichers": null
}
],
"TfsTeamSettingsEndpoints": [
{
"Name": "TeamSettingsSource",
"AccessToken": "",
"Query": {
"Query": "SELECT [System.Id], [System.Tags] FROM WorkItems WHERE [System.TeamProject] = @TeamProject AND [System.WorkItemType] NOT IN ('Test Suite', 'Test Plan') ORDER BY [System.ChangedDate] desc"
},
"Organisation": "https://tfs.REDACTED-inc.com/RAD/",
"Project": "REDACTED",
"ReflectedWorkItemIdField": "ReflectedWorkItemId",
"AuthenticationMode": "Prompt",
"AllowCrossProjectLinking": false,
"LanguageMaps": {
"AreaPath": "Area",
"IterationPath": "Iteration"
}
},
{
"Name": "TeamSettingsTarget",
"AccessToken": "",
"Query": {
"Query": "SELECT [System.Id], [System.Tags] FROM WorkItems WHERE [System.TeamProject] = @TeamProject AND [System.WorkItemType] NOT IN ('Test Suite', 'Test Plan') ORDER BY [System.ChangedDate] desc"
},
"Organisation": "https://REDACTED.visualstudio.com/",
"Project": "JetCenterPOC",
"ReflectedWorkItemIdField": "ReflectedWorkItemId",
"AuthenticationMode": "Prompt",
"AllowCrossProjectLinking": false,
"LanguageMaps": {
"AreaPath": "Area",
"IterationPath": "Iteration"
}
}
]
}
}
Things I have tried:
- Made sure that the team I would like to migrate exists in TFS
- Made sure that the project names and everything is correct.
- Made a target team with the same name as the one from TFS. That didn't do anything either.
If someone could please help me out, that would be great! IDK where this team field not being set is coming from.
The root cause of this issue is that the target project does not have the same Iteration and Area as the source project.
To solve this issue, you need to check the Backlog iteration and Default area in Source Project -> Project Settings -> Team Configuration -> Select Team -> Iteartion / Area tab.
In the Target Project, you need to create the same Iteartion and Area in Project Settings -> Projecr Configuration.
Note: Unless the source project and the target project have the same name, you cannot set the iteration and area of the team to be migrated as the root node.
For example: