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

How to set DefaultIterationPath in the Team Settings of Azure Devops via REST API?

我想通过 REST API(或来自 MS 的 API DLL 包装 REST API)为团队在 Azure Devops 服务中设置 "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。

有什么想法吗?

这个术语有点奇怪,很难发现。区域和迭代在内部都称为 "classification nodes"。一旦您知道了这一点,查找和创建它们就很容易了。

您正在寻找 WorkItemTrackingHttpClient 服务。其中包含一个方法 GetClassificationNodeAsync,允许您搜索区域和迭代。这将包含实体的 GUID。

总结一下我所做的事情:

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。