C# VSTS-无法获取迭代列表
我正在尝试使用下面的RESTAPI获取我的VSTS项目迭代列表C# VSTS-无法获取迭代列表,c#,azure-devops-rest-api,C#,Azure Devops Rest Api,我正在尝试使用下面的RESTAPI获取我的VSTS项目迭代列表 string _personalAccessToken = "mypersonalAccessToken"; // this PAT has Project and team (read, write, and manage) and Work items (read and write) scope string _credentials = Convert.ToBase64String(Enco
string _personalAccessToken = "mypersonalAccessToken"; // this PAT has Project and team (read, write, and manage) and Work items (read and write) scope
string _credentials = Convert.ToBase64String(Encoding.ASCII.GetBytes(string.Format("{0}:{1}", "", _personalAccessToken)));
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("https://*myUserAccount*.visualstudio.com/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", _credentials);
var response = client.GetAsync("DefaultCollection/*MyProjectName*/*MyTeamName*/_apis/work/TeamSettings/Iterations?api-version=v2.0-preview.1").Result;
Console.WriteLine(response.Content.ReadAsStringAsync().Result);
}
我的REST调用正在执行,没有任何错误(返回200个代码),值为空。虽然在我的项目中,我们至少有50次迭代,但我不会用上面的代码获取这些迭代
我不确定我在哪里犯了错误。任何帮助都将不胜感激。代码正常
参考这些步骤来检查该团队的迭代
var u=新Uri(“https://starain.visualstudio.com");
VssCredentials c=新的VssCredentials(新的Microsoft.VisualStudio.Services.Common.VSSBasiccredentials(string.Empty,“[pat]”);
var连接=新VSS连接(u,c);
var workItemTracking=connection.GetClient();
Microsoft.TeamFoundation.Core.WebApi.ProjectHttpClient projClient=connection.GetClientAsync().Result;
var projects=projClient.GetProjects().Result;
foreach(projects.Where中的var p(pro=>pro.Name==“Scrum2015”))
{
var iteration=workItemTracking.GetClassificationNodeAsync(项目:p.名称,结构组:Microsoft.TeamFoundation.workItemTracking.WebApi.Models.TreeStructureGroup.Iterations,深度:5)。结果;
获取迭代(迭代);
}
静态无效GetIterations(Microsoft.TeamFoundation.WorkItemTracking.WebApi.Models.WorkItemClassificationNode currentIteration)
{
Console.WriteLine(currentIteration.Name);
if(currentIteration.Children!=null)
{
foreach(currentIteration.Children中的var ci)
{
迭代次数(ci);
}
}
}
代码正常
参考这些步骤来检查该团队的迭代
var u=新Uri(“https://starain.visualstudio.com");
VssCredentials c=新的VssCredentials(新的Microsoft.VisualStudio.Services.Common.VSSBasiccredentials(string.Empty,“[pat]”);
var连接=新VSS连接(u,c);
var workItemTracking=connection.GetClient();
Microsoft.TeamFoundation.Core.WebApi.ProjectHttpClient projClient=connection.GetClientAsync().Result;
var projects=projClient.GetProjects().Result;
foreach(projects.Where中的var p(pro=>pro.Name==“Scrum2015”))
{
var iteration=workItemTracking.GetClassificationNodeAsync(项目:p.名称,结构组:Microsoft.TeamFoundation.workItemTracking.WebApi.Models.TreeStructureGroup.Iterations,深度:5)。结果;
获取迭代(迭代);
}
静态无效GetIterations(Microsoft.TeamFoundation.WorkItemTracking.WebApi.Models.WorkItemClassificationNode currentIteration)
{
Console.WriteLine(currentIteration.Name);
if(currentIteration.Children!=null)
{
foreach(currentIteration.Children中的var ci)
{
迭代次数(ci);
}
}
}
感谢您的回复,通过以上步骤,我发现我的团队没有任何迭代列表(这可能是零结果的原因)。但我所有的迭代都是在项目级别。我试图调整REST调用,但忽略了团队名称,但没有得到预期的结果。@Mahender如果忽略了团队名称,它将检索默认团队的迭代。我更新了我的答案,您可以查看。感谢更新的详细信息,我可以获取我的项目迭代。@starianchen MSFT仅供参考,获取“根迭代”的链接已断开。我们也许可以检查一下:??谢谢你的回复,在上面的步骤中,我看到我的团队没有任何迭代列表(这可能是零结果的原因)。但我所有的迭代都是在项目级别。我试图调整REST调用,但忽略了团队名称,但没有得到预期的结果。@Mahender如果忽略了团队名称,它将检索默认团队的迭代。我更新了我的答案,您可以查看。感谢更新的详细信息,我可以获取我的项目迭代。@starianchen MSFT仅供参考,获取“根迭代”的链接已断开。我们可以改为检查这个:??
var u = new Uri("https://starain.visualstudio.com");
VssCredentials c = new VssCredentials(new Microsoft.VisualStudio.Services.Common.VssBasicCredential(string.Empty, "[pat]"));
var connection = new VssConnection(u, c);
var workItemTracking = connection.GetClient<WorkItemTrackingHttpClient>();
Microsoft.TeamFoundation.Core.WebApi.ProjectHttpClient projClient = connection.GetClientAsync<Microsoft.TeamFoundation.Core.WebApi.ProjectHttpClient>().Result;
var projects= projClient.GetProjects().Result;
foreach(var p in projects.Where(pro=>pro.Name=="Scrum2015"))
{
var iteration = workItemTracking.GetClassificationNodeAsync(project: p.Name, structureGroup: Microsoft.TeamFoundation.WorkItemTracking.WebApi.Models.TreeStructureGroup.Iterations, depth: 5).Result;
GetIterations(iteration);
}
static void GetIterations(Microsoft.TeamFoundation.WorkItemTracking.WebApi.Models.WorkItemClassificationNode currentIteration)
{
Console.WriteLine(currentIteration.Name);
if(currentIteration.Children!=null)
{
foreach (var ci in currentIteration.Children)
{
GetIterations(ci);
}
}
}