如何更改TFS中工作项的Created By字段?

时间:2018-02-18 01:59:06

标签: visual-studio tfs visual-studio-2017 tfs2017

有没有办法更改TFS中工作项的Created By字段?也许通过改变数据库?

我希望能够创建一个错误/功能/ PBI,然后将其更改为由向我报告的工作人员创建。

这样,我可以跟踪提交更改请求的人,然后他们也会收到错误更新通知。

3 个答案:

答案 0 :(得分:1)

似乎你想为工作项设置一个faker创建者。

  

创建者

     

创建工作项的团队成员的名称。

     

参考名称= Microsoft.VSTS.Common.CreatedBy

没有内置方法可以更改此字段。看看这个:

  

<强> IsEditable

     

没有

     

指示用户是否可以修改此字段(True)(False)。   不可编辑字段的示例是系统设置的字段,例如ID,修订版,创建者和更改者   字段。

更多详情请参阅Work Item Field Attributes – What You Can and Can’t Change

直接在数据库中更改值可能会起作用,但这不是推荐的方法。它也违背了源代码控制的概念。

如果您只想在工作项更新时通知其他人。建议您使用工作项中的 follow 功能。

如果要跟踪单个工作项的进度,请单击“关注”图标图标。这表示系统在对工作项进行更改时通知您。

注意: 此功能适用于TFS 2017及以上版本。

答案 1 :(得分:1)

只有在启用了绕过规则的情况下通过API创建工作项时,才能覆盖CreatedBy字段。有关详细信息,请参阅此链接:Make an update bypassing rules

快速解决方案是创建一个powershell脚本,通过Rest API创建工作项。样品供您参考:

#Input basic information
$collectionuri = "http://tfsserver:8080/tfs/DefaultCollection/"
$project = "ProjectName"
$workitemtype = 'Task'
$createdby = 'Display Name'
$title = 'Title'

#Create the workitem
$workitem = @(@{op="add";path="/fields/System.Title";value=$title},@{op="add";path="/fields/System.CreatedBy";value=$createdby})
$json = $workitem | ConvertTo-Json -Depth 100
$headers= @{"Content-Type"="application/json-patch+json"}
$url= $collectionuri + $project + '/_apis/wit/workitems/$' + $workitemtype +'?bypassRules=true&api-version=1.0'
$mycredentials = Get-Credential
$wi = Invoke-RestMethod -Uri $url -Method Patch -Credential $mycredentials -Body $json -ContentType 'application/json-patch+json' 
Write-Host $wi

答案 2 :(得分:0)

为什么要更新系统字段?您可以添加一个新字段&#34; Initiator&#34;(Add or modify a field to track work)。在创建时从Created By设置值。然后在需要时更新它。