在VSTS 2017中更新CreatedBy(System.CreatedBy)工作项字段

时间:2017-12-14 05:24:45

标签: azure-devops azure-devops-rest-api

我们无法使用rest API更新VSTS 2017中的CreatedBy(System.CreatedBy)工作项字段。用户已添加到"项目收集服务帐户" VSTS组在更新工作项时绕过规则。

链接:https://github.com/Microsoft/vsts-dotnet-samples/blob/master/ClientLibrary/Snippets/Microsoft.TeamServices.Samples.Client/WorkItemTracking/WorkItemsSample.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;
    }

当validateOnly参数设置为true而不是null时,结果输出将保存由值创建的更新。

1 个答案:

答案 0 :(得分:2)

System.CreatedBy字段只能在创建工作项时修改。如果工作项有多个修订版,则无法通过绕过规则更改System.CreatedBy

您也可以在make an update bypassing rules中找到它:

  

注意:只能修改System.CreatedBy和System.CreatedDate   在工作项创建上使用绕过规则,即a的第一个修订版   工作项目。

由于System.CreatedBySystem.CreatedDate会记录创建工作项的人员和时间,因此只能在创建工作项时更新。