我们无法使用REST API更新VSTS 2017中的createby(System.CreatedBy)WorkItem字段。用户已被添加到"项目收集服务帐户" VSTS组中,以便在更新WorkItem时绕过规则。
链接:https://github.com/microsoft/vsts-dotnet-samples/blob/master/clientlibrary/clientlibrary/snippets/microsoft.teamservices.sampleices.client/workitemtracking/workitemtracking/workitemtracking/workitemssampamplemsampampamplemssampampamplemssmssmssmssmssmssmssmsspample> cs#l271
public WorkItem UpdateWorkItemUsingByPassRules(int id)
{
JsonPatchDocument patchDocument = new JsonPatchDocument();
patchDocument.Add(
new JsonPatchOperation() {
Operation = Operation.Add,
Path = "/fields/System.CreatedBy",
Value = "Foo <Foo@hotmail.com>"
}
);
VssConnection connection = Context.Connection;
WorkItemTrackingHttpClient workItemTrackingClient = connection.GetClient<WorkItemTrackingHttpClient>();
WorkItem result = workItemTrackingClient.UpdateWorkItemAsync(patchDocument, id, null, true).Result;
return result;
}
当将ValidateLy参数设置为true而不是在null上设置为true时,结果输出保留了由值创建的更新。
System.CreatedBy
字段只能在工作项目创建上修改。如果工作项有多个修订版,则无法通过绕过规则来更改System.CreatedBy
。
您还可以在绕过规则的更新中找到它:
注意:System.CreatedBy和System.CreatedDate只能修改在工作项创建中使用旁路规则,即工作项目。
由于System.CreatedBy
和System.CreatedDate
记录了谁以及何时创建的工作项目,因此只能在创建工作项目时进行更新。