代码之家  ›  专栏  ›  技术社区  ›  Santhosh

在VSTS 2017中更新CreatedBy(System.CreatedBy)workitem字段

  •  1
  • Santhosh  · 技术社区  · 7 年前

    我们无法使用rest API更新VSTS 2017中的CreatedBy(System.CreatedBy)workitem字段。用户已添加到“Project Collection Service Accounts”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时,结果输出将保存更新后的created by值。

    1 回复  |  直到 6 年前
        1
  •  4
  •   tibx    3 年前

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

    您也可以在 make an update bypassing rules :

    注:系统。由和系统创建。只能修改CreatedDate 在创建工作项时使用绕过规则,即 工作项。

    自从 系统创建人 System.CreatedDate 记录创建工作项的人员和时间,只有在创建工作项时才能更新。