我一直在尝试为我正在使用的存储库的特定分支运行管道。
在 UI 中,有一个方便的选项,但我不明白在请求中要尝试什么。
无论我做什么,我总是逃避主人。
我该如何改变?我尝试填写存储库参数但无济于事:https://learn.microsoft.com/en-us/rest/api/azure/devops/pipelines/runs/run%20pipeline?view=azure-devops-rest -6.0#存储库资源参数
这是一个请求示例:
curl --location --request POST 'https://dev.azure.com/<redacted>/<redacted>/_apis/pipelines/<redacted>/runs?api-version=6.0-preview.1' \
--header 'Authorization: Basic <redacted>' \
--header 'Content-Type: application/json' \
--header 'Cookie: VstsSession=<redacted>' \
--data-raw '{
"previewRun": true,
"resources": {
"repositories": {
"refName": "refs/heads/<redacted>"
}
},
"runParameters":
{
"namespace" : "<redacted>",
"image" : "<redacted>",
"tag" : "<redacted>",
"package" : "<redacted>",
"version" : "8.4.4"
}
}'
从您的屏幕截图来看,您似乎正在使用 YAML 管道。
我已经测试了你的示例,这个问题的根本原因是请求正文(data-raw)有一些问题。
你可以试试我的样品
curl --location --request POST 'https://dev.azure.com/<redacted>/<redacted>/_apis/pipelines/<redacted>/runs?api-version=6.0-preview.1' \
--header 'Authorization: Basic <redacted>' \
--header 'Content-Type: application/json' \
--header 'Cookie: VstsSession=<redacted>' \
--data-raw '{
"stagesToSkip":[],
"resources":
{
"repositories":
{
"self":{"refName":"refs/heads/{Branchname}"}
}
},
"templateParameters":
{
"namespace":"{value}",
"image":"{value}",
"tag":"{value}",
"package":"{value}",
"version":"{value}"
},
"variables":{}
}'
结果:
对于Http请求(可以用Postman测试)
1。像这样获取管道 api url
https://dev.azure.com/{organization}/{project}/_apis/pipelines/{pipelineId}/runs?api-version=7.1-preview.1
填写您的组织、项目和 pipelineId。 (当您在 Azure DevOps 中打开管道定义时,所有这些都可以在链接中找到)
2。添加基本身份验证标头
键:授权,值:“基本[来自 Azure Dev Ops 的可访问管道的 Azure 个人访问令牌位于此处]”
应该看起来像这样 “基本 OndzNWdz43FKfjdi98hjKDJFH8kkg9854HJKHF9D8RFEHui4387lkNXE="
并将内容类型设置为 application/json
像这样
键:Content-Type,值:application/json
3.将这个 JSON 放入 Raw Body
{
"templateParameters":{
"inputName":"johnsmith"
},
"resources":{
"repositories":{
"self":{
"refName":"refs/heads/feature/#JIRATask01_Blabla"
}
}
},
"variables":{
}
}
将 refName 值替换为您要为其运行管道的分支。
如果您有多个回购管道,请查看此主题(但我尚未测试该解决方案): Azure DevOps API 触发多存储库更改分支