我目前正在调查如何将我们的服务台票证数据从JIRA迁移到Visual Studio Online。作为测试,我使用下面描述的工作流程进行初始导入:
Migrate backlog items from ScrumWise to Visual Studio Online?
不幸的是,这不允许我更改像CreatedDate这样的字段。
REST API文档中有一节介绍如何使用bypassRules参数,该参数可以使我强制更新。下面是一个简单的PowerShell脚本,我用它来尝试这个参数。不幸的是,它似乎对我不起作用。
$username = "<username>"
$password = "<password>"
$basicAuth = ("{0}:{1}" -f $username,$password)
$basicAuth = [System.Text.Encoding]::UTF8.GetBytes($basicAuth)
$basicAuth = [System.Convert]::ToBase64String($basicAuth)
$headers = @{Authorization=("Basic {0}" -f $basicAuth)}
$Endpoint = "https://<domain>.visualstudio.com/defaultcollection/_apis/wit/workitems/12?api-version=1.0&bypassRules=true"
$Body = '[{"op": "add", "path": "/fields/System.CreatedDate", "value":"2007-01-01T00:00:00Z"}]'
$ContentType = "application/json-patch+json"
Invoke-RestMethod -Uri $Endpoint -headers $headers -Method Patch -Body $Body -ContentType $ContentType
请求以成功返回代码完成,但字段未更新。
我仔细检查并确定我已加入“项目收集服务帐户”组。
更新:bypassRules参数在我创建新工作项而不是更新工作项时有效。
是否有人遇到过类似的问题,并设法让工作项目更新工作?