API управления выпуском и разбиением на страницы с использованием vss-web-extensions-sdk - PullRequest
0 голосов
/ 15 сентября 2018

Я пишу расширение Azure Devops и хочу получить список выпусков.

Я использую RestClient из "ReleaseManagement / Core / RestClient", который имеет метод getReleases().

В качестве пареметра у него есть continueingToken, но я не нашел ни одного примера, как получить этот токен из заголовков ответа.

Вопрос: как получить токен продолжения для следующих 50релизы после получения первой партии?

Ответы [ 2 ]

0 голосов
/ 03 октября 2018

SDK не имеет API для получения результата с токеном продолжения.Вам нужно вызвать release List api и проанализировать заголовок ответа, чтобы получить токен продолжения.

0 голосов
/ 17 сентября 2018

ContinationToken находится в заголовке ответа после первого вызова API:

x-ms-continuationtoken: xxxx

Вы можете использовать остальные API для получения информации заголовка. Вот пример для вашей справки:

using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;

namespace GetReleases
{
    class Program
    {
        public static void Main()
        {
            Task t = GetReleases();
            Task.WaitAll(new Task[] { t });
        }
        private static async Task GetReleases()
        {
            try
            {
                var username = "xxxxx";
                var password = "******";

                using (var client = new HttpClient())
                {
                    client.DefaultRequestHeaders.Accept.Add(
                        new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));

                    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
                        Convert.ToBase64String(
                            System.Text.ASCIIEncoding.ASCII.GetBytes(
                                string.Format("{0}:{1}", username, password))));

                    using (HttpResponseMessage response = client.GetAsync(
                                "https://vsrm.dev.azure.com/{organization}/{project}/_apis/release/releases?api-version=4.1-preview.6").Result)
                    {
                        response.EnsureSuccessStatusCode();
                        string responseBody = await response.Content.ReadAsStringAsync();
                        Console.WriteLine(responseBody);
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }
    }
}
...