0

我从 2 年前就没有用过这个了。我试图弄清楚如何将所有内容放入一个 json 中,或者它必须是多个 json。

使用 v11.9.46。文档不清楚,因为它引用了一个或另一个版本的东西。

我正在将项目从 ADOorg1 移动到 ADOorg2。按照这个顺序,我将设置 json

  1. 区域和迭代
  2. 团队设置
  3. 共享查询
  4. 工作项(使用查询查找选择区域)

到目前为止,这就是我试图弄清楚如何将其组合在一起时所拥有的:

{
    "ChangeSetMappingFile": null,
    // "Endpoints": {
    //     "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://dev.azure.com/test1/",
    //             "Project": "test1",
    //             "ReflectedWorkItemIdField": "ReflectedWorkItemId",
    //             "AuthenticationMode": "AccessToken",
    //             "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://dev.azure.com/test2/",
    //             "Project": "test2",
    //             "ReflectedWorkItemIdField": "ReflectedWorkItemId",
    //             "AuthenticationMode": "AccessToken",
    //             "AllowCrossProjectLinking": false,
    //             "LanguageMaps": {
    //                 "AreaPath": "Area",
    //                 "IterationPath": "Iteration"
    //             }
    //         }
    //     ]
    // },
    "Source": {
        "$type": "TfsTeamProjectConfig",
        "Collection": "https://dev.azure.com/test1/",
        "Project": "test1",
        "ReflectedWorkItemIDFieldName": "ReflectedWorkItemId",
        "AllowCrossProjectLinking": false,
        "AuthenticationMode": "Prompt",
        "PersonalAccessToken": "",
        "LanguageMaps": {
            "AreaPath": "Area",
            "IterationPath": "Iteration"
        }
    },
    "Target": {
        "$type": "TfsTeamProjectConfig",
        "Collection": "https://dev.azure.com/test2/",
        "Project": "Test2",
        "ReflectedWorkItemIDFieldName": "ReflectedWorkItemId",
        "AllowCrossProjectLinking": false,
        "AuthenticationMode": "Prompt",
        "PersonalAccessToken": "",
        "LanguageMaps": {
            "AreaPath": "Area",
            "IterationPath": "Iteration"
        }
    },
    "Endpoints": {
        "InMemoryWorkItemEndpoints": [
            {
                "Name": "Source",
                "EndpointEnrichers": null
            },
            {
                "Name": "Target",
                "EndpointEnrichers": null
            }
        ]
    },
    "GitRepoMapping": null,
    "LogLevel": "Information",
    "Processors": [
        {
            "$type": "TfsAreaAndIterationProcessorOptions",
            "Enabled": true,
            "PrefixProjectToNodes": false,
            "NodeBasePaths": null,
            "ProcessorEnrichers": null,
            "SourceName": "Source",
            "TargetName": "Target"
        },
        {
            "$type": "TfsTeamSettingsProcessorOptions",
            "Enabled": false,
            "MigrateTeamSettings": true,
            "UpdateTeamSettings": true,
            "PrefixProjectToNodes": false,
            "Teams": null,
            "ProcessorEnrichers": null,
            "SourceName": "Source",
            "TargetName": "Target"
        },
        {
            "$type": "WorkItemMigrationConfig",
            "Enabled": false,
            "ReplayRevisions": true,
            "PrefixProjectToNodes": false,
            "UpdateCreatedDate": true,
            "UpdateCreatedBy": true,
            "BuildFieldTable": false,
            "AppendMigrationToolSignatureFooter": false,
            "WIQLQueryBit": "AND  [Microsoft.VSTS.Common.ClosedDate] = '' AND [System.WorkItemType] NOT IN ('Test Suite', 'Test Plan')",
            "WIQLOrderBit": "[System.ChangedDate] desc",
            "LinkMigration": true,
            "AttachmentMigration": true,
            "AttachmentWorkingPath": "E:\\temp\\WorkItemAttachmentWorkingFolder\\",
            "FixHtmlAttachmentLinks": false,
            "SkipToFinalRevisedWorkItemType": true,
            "WorkItemCreateRetryLimit": 5,
            "FilterWorkItemsThatAlreadyExistInTarget": true,
            "PauseAfterEachWorkItem": false,
            "AttachmentMaxSize": 480000000,
            "CollapseRevisions": false,
            "LinkMigrationSaveEachAsAdded": false,
            "GenerateMigrationComment": true,
            "NodeBasePaths": [
                "Product\\Area\\Path1",
                "Product\\Area\\Path2"
            ],
            "WorkItemIDs": null
        }
    ],
    "Version": "0.0",
    "workaroundForQuerySOAPBugEnabled": false,
    "WorkItemTypeDefinition": {
        "sourceWorkItemTypeName": "targetWorkItemTypeName"
    }
//     "Endpoints": {
//         "InMemoryWorkItemEndpoints": [
//             {
//                 "Name": "Source",
//                 "EndpointEnrichers": null
//             },
//             {
//                 "Name": "Target",
//                 "EndpointEnrichers": null
//             }
//         ]
//     }
}
4

1 回答 1

0

如果您使用此Azure DevOps 迁移工具,它可以Work Items, TestPlans & Suits, Teams, Shared Queries, & Pipelines从一个组织迁移到另一个组织。您可以参考Processor: TfsAreaAndIterationProcessorTfsTeamSettingsProcessorTfsSharedQueryProcessorWork Item Tracking Processor来一一创建对应的配置Json文件。

于 2021-04-12T03:39:50.920 回答