Триггер 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
тот, кого ты хочешь