我在typescript中创建了一个VSTS扩展,用于将XML代码上传到TFS(WIT代码)。
UpdateWorkItemTypeDefinition似乎是正确的方法。但我无法让它发挥作用。第一个参数是使用WorkItemTypeTemplateUpdateModel,表示.actionType,.template,.templateType和.methodology
请有人解释这些成员的用法或给出样本片段(在visualstudio.com上没有太多文档,我找不到任何例子)
我不清楚方法论。这是“敏捷”与“scrum”吗?如果我只想更新现有的WIT,为什么还需要这个?
答案 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);
});