Azure DevOps工作项跨环境迁移后,重运行工具未同步新增讨论的解决方法咨询
我之前帮不少同行解决过Azure DevOps迁移后新增讨论同步的问题,给你几个实用的方案参考:
方案1:用Azure DevOps REST API手动同步增量评论
很多迁移工具默认不会追踪讨论的增量更新,所以可以自己写个简单脚本调用API来搞定:
- 拉取旧环境的新增评论:调用
Work Item Comments - ListAPI,通过时间过滤迁移完成后的评论。示例请求:
把GET https://dev.azure.com/{旧组织名}/{旧项目名}/_apis/wit/workItems/{旧工作项ID}/comments?api-version=7.1-preview.3&$filter=createdDate gt 2024-05-01T00:00:00Z2024-05-01T00:00:00Z换成你上次迁移完成的时间,就能只拿到新增的讨论。 - 推送评论到目标环境:调用
Work Item Comments - AddAPI,把拉取到的评论内容、原作者、创建时间同步过去。示例请求:
如果目标环境没有原用户,建议把原评论者信息加到评论文本里,避免丢失上下文。POST https://dev.azure.com/{目标组织名}/{目标项目名}/_apis/wit/workItems/{目标工作项ID}/comments?api-version=7.1-preview.3 Content-Type: application/json { "text": "【原评论者:张三】这是旧环境的新增讨论内容", "createdBy": { "displayName": "张三", "uniqueName": "zhangsan@company.com" }, "createdDate": "2024-05-02T14:30:00Z" }
方案2:检查迁移工具的配置(如果用了第三方工具)
如果你用的是Azure DevOps Migration Tools这类主流迁移工具,大概率是配置没开对:
- 打开工具的
config.json配置文件,找到WorkItemMigrationConfig节点,确保*IncludeComments*参数设为true - 检查增量迁移的触发条件,比如设置
MigrationStartTime为上次迁移结束的时间,这样工具会自动同步该时间点后的所有变更(包括讨论) - 另外,把工具升级到最新版本,很多早期版本的评论同步bug已经被修复了。
方案3:用Azure DevOps CLI批量处理
不想写脚本的话,用CLI也能批量操作:
- 先登录旧环境:
az devops login --organization https://dev.azure.com/旧组织名 - 写个简单的循环脚本(PowerShell/Bash),导出所有目标工作项的新增评论到本地文件
- 切换到目标环境登录:
az devops login --organization https://dev.azure.com/目标组织名 - 用
az boards work-item comment add命令批量添加评论,示例:
注意:CLI的az boards work-item comment add --id 1234 --text "原评论内容" --created-date "2024-05-02T14:30:00Z" --created-by "张三"created-date和created-by参数有格式要求,提前用az boards work-item comment add --help确认细节。
关键注意事项
- 一定要确保旧环境和目标环境的工作项映射关系准确,别把评论加到错误的工作项上
- 如果评论里有图片/附件,需要先单独迁移附件,再替换评论里的附件链接(目标环境的附件URL会和旧环境不同)
- 先拿1-2个测试工作项验证流程,没问题再批量执行,避免出错
内容的提问来源于stack exchange,提问作者Kevin Meyers
相关产品推荐
相关产品推荐

