Трубопровод сборки Azure - приостановить и включить DefinitionQueueStatus изменить REST API - PullRequest
0 голосов
/ 06 июня 2019

У нас много десятков конвейеров сборки, и мы хотим приостановить и возобновить (повторно включить) конвейеры сборки из простого интерфейса веб-приложения, поскольку мы часто вносим изменения в конфигурацию.Вот документ MS, объясняющий этот API: https://docs.microsoft.com/en-us/rest/api/azure/devops/build/builds/update%20build?view=azure-devops-rest-5.0#definitionqueuestatus

Из этой документации кажется, что мне нужно нажать REST API и изменить / переключить DefinitionQueueStatus - однако эта документация показывает только пример для сборкиконкретная операция, в то время как я хочу сделать паузу, а затем снова включить весь конвейер сборки.Как правильно сделать этот звонок?

Я использую fetch - и я пробовал много десятков форматов в вызове - «ourorg» и «ourproject» верны (мы используем эту структуру вызовов для многих других вызовов), но все не удается дляэтот звонок ниже.Я взял «DefinitionID» из URL-адреса, который я вижу на портале разработчика Azure на конкретной странице конвейера сборки, и использую его для {buildID}, так как не знаю, что еще можно там разместить.Любое руководство, чтобы помочь здесь приветствуется - мне не нужно использовать fetch кстати - любой рабочий образец поможет здесь:

fetch(https://dev.azure.com/our_org/our_projectname/_apis/build/builds/definitionId=1593?retry=true&api-version=5.0 {
            method: 'PATCH ',
            credentials: 'same-origin',
            body: 'DefinitionQueueStatus: "Enabled"'                
            }).then(function(response) {
              console.log(response);
            })

1 Ответ

0 голосов
/ 07 июня 2019

Похоже, что тело неверно в вашем посте.Ниже приведен пример использования POSTMAN для доступа к API-интерфейсам REST Azure DevOps Services.

  1. Создайте PAT, а затем запишите токен, который важно использовать для авторизации, см. Этот документ .
  2. Создайте новый запрос в POSTMAN, рекомендуется поместить запрос в коллекцию для REST API Azure DevOps Services;
  3. Выберите авторизацию как Basic Auth, вы можете ввестиимя пользователя в качестве любого значения и пароль в качестве токена, который генерируется на шаге 1. Basic Auth
  4. Установите REST API, который вы хотите использовать, и выберите тип метода запроса (GET, POST, FETCH ....), здесь вы используете https://dev.azure.com/{organization}/{project}/_apis/build/builds/{buildId}?api-version=5.0.
  5. На вкладке Body вы можете установить тело запроса как необработанное в формате json и ввести значение следующим образом:

    {
        "buildNumber":"#20190607.2",
        "buildNumberRevision":1,
        "definition":
        {
            "id":1,
            "createdDate":null,
            "queueStatus":"paused"
        }
    }
    
  6. Everthingготов, вы можете отправить запрос, если sccuess, вы получите ответ от REST API.

В вашем сообщении содержание тела неверно, тело запроса должно соответствоватьформат в документе REST API.DefinitionQueueStatus - это тип в определениях.Кроме того, если вы отправите запрос с параметром retry, вы получите сообщение The request body must be empty when the retry parameter is specified..

...