Триггер Azure Pipelines построить с помощью API

Я создал рабочий конвейер Azure для создания своей кодовой базы.

Ищете способ запуска сборки конвейеров Azure через API, в идеале REST. Если REST невозможен, возможно, я мог бы попытаться вызвать сборку с помощью функций Azure, используя своего рода идентификатор ресурса. Я хотел бы, чтобы мой собственный монитор репозитория выдал запрос API, который будет запускать сборку при выполнении моих условий. Другой вопрос - возможно ли установить "переменные конвейера" через API - например, я делаю вызов API, передавая значения, которые будут использоваться в качестве значений моих конвейерных переменных, затем запускает сборку.

Спасибо

2 ответа

Решение

Вы можете использовать VSTS REST API, чтобы поставить в очередь сборку, указав идентификатор

СООБЩЕНИЕ:

https://account.visualstudio.com/project/_apis/build/builds?api-version=4.1

тело

{ 
        "definition": {
            "id": number
        } 
}

Обратитесь к этому решению

На ваш второй вопрос, да, это тоже возможно, просто давая параметры в теле

тело

{
    "parameters":  {"Parameter1":  "a value"},
    "definition":  {
                       "id":  2
                   }
}

Ссылка

Полный ответ для постановки сборки в очередь с использованием Azure DevOps REST API 7.1 (все еще в предварительной версии), используяcURL, с аутентификацией PAT (Personal Access Token) и пользовательскими параметрами:

      YOUR_PAT_TOKEN_ENCODED_IN_BASE64=...
AZURE_ORGANIZATION=...
AZURE_PROJECT=...
PIPELINE_ID=...
FULL_GIT_SHA=... # Optional, see usage below

curl --location \
  --request POST 'https://dev.azure.com/$AZURE_ORGANIZATION/$AZURE_PROJECT/_apis/build/builds?api-version=7.1-preview.7' \
  --header 'Authorization: Basic $YOUR_PAT_TOKEN_ENCODED_IN_BASE64' \
  --header 'Content-Type: application/json' \
  --data-raw '{
    "definition": {
      "id": "$PIPELINE_ID"
    },
    "sourceVersion" : "$FULL_GIT_SHA", # Optional: only if you want to override the default sourceVersion
    "parameters": "{\"your.parameter\": \"your value\"}" # Yes this is a stringified JSON inside a stringified JSON...
  }'

Не знаете, какой у вас PIPELINE_ID? Перейдите на веб-сайт Azure Pipeline, щелкните свой конвейер и посмотрите URL-адрес: https://dev.azure.com/yourorganization/yourproject/_build?definitionId=42 -> thedefinitionIdтот, кого ты хочешь

Другие вопросы по тегам