如何通过REST API在Azure Devops的团队设置中设置DefaultIterationPath?

时间:2019-10-18 15:32:52

标签: azure-devops-rest-api

我想通过REST API(或包装REST API的MS中的API DLL)在Azure Devops Services中为团队设置“ DefaultIterationPath”。 可以使用UpdateTeamSettings方法来完成。

阅读可以使用以下方法完成团队设置(没关系):

TeamContext teamContext = new TeamContext(prjinfo.Name, sTeamName);
TeamSetting teamSetting = work_client.GetTeamSettingsAsync(teamContext).Result;

使用方法 UpdateTeamSettings 编写团队设置需要提供一个TeamSettingsPatch。

TeamSettingsPatch patch = new TeamSettingsPatch();
// patch.DefaultIteration = <Guid of the new DefaultIterationPath>
work_client.UpdateTeamSettingsAsync(patch, teamContext);

TeamSettingsPatch具有一个属性:

public Guid? DefaultIteration { get; set; }

但不是类似以下(或类似内容)的属性:

public string DefaultIterationPath { get; set; }

在哪里可以提供新的DefaultIterationPath?有没有办法创建它,获取其Guid并在TeamSettingsPatch对象中设置该Guid?

REST API出现相同的问题。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

此名称有点奇怪,可能很难发现。区域和迭代在内部都称为“分类节点”。一旦知道了,找到和创建它们就很容易。

您正在寻找WorkItemTrackingHttpClient服务。其中包含方法GetClassificationNodeAsync,可用于搜索区域和迭代。它将包含实体的GUID。

答案 1 :(得分:0)

简短总结我所做的事情:

workitem_tracking_client = team_project_collection.GetClient<WorkItemTrackingHttpClient>();
...
WorkItemClassificationNode newNode = new WorkItemClassificationNode();
newNode.Name = sIterationName;
newNode.StructureType = TreeNodeStructureType.Iteration;
WorkItemClassificationNode result = workitem_tracking_client.CreateOrUpdateClassificationNodeAsync(newNode, prjinfo.Name, TreeStructureGroup.Iterations).Result;
...
TeamSettingsPatch patch = new TeamSettingsPatch();
patch.DefaultIteration = result.Identifier;
var newsett = work_client.UpdateTeamSettingsAsync(patch, teamContext).Result;

这将设置DefaultBacklogIteration。