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 ответ

Решение

Код в порядке.

Обратитесь к этим шагам, чтобы проверить итерацию этой команды.

  1. Перейти на страницу администратора этой команды
  2. Выберите работу
  3. Проверьте список итераций
  4. (Необязательно) Нажмите "Выбрать итерацию", чтобы добавить итерацию.

Обновить:

Он извлекает итерации команды по умолчанию, если вы пропустите имя команды.

Команда по умолчанию: перейдите на страницу администратора командного проекта> Обзор> Изменить команду по умолчанию

Выберите итерации для команды по умолчанию: Перейдите на страницу администратора командного проекта> Работа> Итерации> Нажмите на настройки команды по умолчанию.

Если вы хотите получить все итерации командного проекта, вы можете использовать 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);
                }
            } 
        }
Другие вопросы по тегам