用法:UpdateWorkItemTypeDfeinition()如何?

时间:2016-09-04 16:00:41

标签: rest tfs

我在typescript中创建了一个VSTS扩展,用于将XML代码上传到TFS(WIT代码)。

UpdateWorkItemTypeDefinition似乎是正确的方法。但我无法让它发挥作用。第一个参数是使用WorkItemTypeTemplateUpdateModel,表示.actionType,.template,.templateType和.methodology

请有人解释这些成员的用法或给出样本片段(在visualstudio.com上没有太多文档,我找不到任何例子)

我不清楚方法论。这是“敏捷”与“scrum”吗?如果我只想更新现有的WIT,为什么还需要这个?

2 个答案:

答案 0 :(得分:1)

我找不到任何关于" Methodology"的信息。或者,但似乎现在不需要此信息,因为我可以在没有此信息的情况下更新工作项类型定义。

其他选择:

ActionType 是您要使用UpdateWorkItemTypeDfeinition()方法执行的操作。有两个选项:导入和验证。 "导入"将更新/创建工作项类型定义,同时"验证"仅在模板正确时验证。当操作类型为"导入"时,必须在运行UpdateWorkItemTypeDfeinition()方法时指定项目名称。

TemplateType 是您要更新的定义的类型。还有两个选项:WorkItemType和GlobalWorkflow。

模板是一个字符串,其中包含工作项类型的所有定义。

以下是使用C#的示例代码,Typescript的用法与它类似,因为它们都使用RestAPI:

using System;
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.WorkItemTracking.WebApi;
using Microsoft.TeamFoundation.WorkItemTracking.WebApi.Models;

namespace Conso
{
    class Program
    {
        static void Main(string[] args)
        {
            string tfsurl = "http://xxx:8080/tfs/DefaultCollection/";
            string projname = "ProjectName";
            TfsTeamProjectCollection ttpc = new TfsTeamProjectCollection(new Uri(tfsurl));
            string template = System.IO.File.ReadAllText(@"D:\Code\bug.xml");
            WorkItemTrackingHttpClient witc = ttpc.GetClient<WorkItemTrackingHttpClient>();
            WorkItemTypeTemplateUpdateModel updatemodel = new WorkItemTypeTemplateUpdateModel();
            updatemodel.ActionType = ProvisioningActionType.Import;
            updatemodel.TemplateType = TemplateType.WorkItemType;
            updatemodel.Template = template;
            ProvisioningResult pr = witc.UpdateWorkItemTypeDefinitionAsync(updatemodel,projname).Result;
        }
    }
}

答案 1 :(得分:0)

在打字稿中:

var updateModel = <TFS_Wit_Contracts.WorkItemTypeTemplateUpdateModel>{};
//updateModel.methodology = "NobodyKnowsWhatThisIs";
updateModel.templateType = TFS_Wit_Contracts.TemplateType.WorkItemType;
updateModel.template = toBeValidatedOrUploadedXMLString;
updateModel.actionType = TFS_Wit_Contracts.ProvisioningActionType.Validate;

witClient.updateWorkItemTypeDefinition(updateModel, projectName).then((result) => {
    alert("successfully validated");
}, error => {
    alert(error);
});