VSTS - Невозможно получить список итераций
Я пытаюсь получить свой список итераций проекта VSTS с помощью приведенного ниже REST API,
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 итераций, но я не получаю те, что с приведенным выше кодом.
Я не уверен, где я делаю ошибку. Любая помощь будет оценена.
1 ответ
Код в порядке.
Обратитесь к этим шагам, чтобы проверить итерацию этой команды.
- Перейти на страницу администратора этой команды
- Выберите работу
- Проверьте список итераций
- (Необязательно) Нажмите "Выбрать итерацию", чтобы добавить итерацию.
Обновить:
Он извлекает итерации команды по умолчанию, если вы пропустите имя команды.
Команда по умолчанию: перейдите на страницу администратора командного проекта> Обзор> Изменить команду по умолчанию
Выберите итерации для команды по умолчанию: Перейдите на страницу администратора командного проекта> Работа> Итерации> Нажмите на настройки команды по умолчанию.
Если вы хотите получить все итерации командного проекта, вы можете использовать REST API корневого дерева итераций или использовать этот код напрямую (добавьте / установите пакет расширенного клиента Microsoft Team Foundation Server):
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);
}
}
}