【发布时间】:2021-02-13 13:04:11
【问题描述】:
我在 Azure Devops 上有一个管道,我正在尝试使用 REST api 以编程方式/无头运行:https://docs.microsoft.com/en-us/rest/api/azure/devops/pipelines/runs/run%20pipeline?view=azure-devops-rest-6.0
到目前为止一切顺利,我可以进行身份验证并开始运行。我想将数据传递给这个管道,文档建议可以在请求正文中使用variables。我的请求正文:
{
"variables": {
"HELLO_WORLD": {
"isSecret": false,
"value": "HelloWorldValue"
}
}
}
我的管道 YAML 如下所示:
trigger: none
pr: none
pool:
vmImage: 'ubuntu-latest'
steps:
- task: Bash@3
inputs:
targetType: 'inline'
script: |
KEY=$(HELLO_WORLD)
echo "Hello world key: " $KEY
然而,这给了我一个“HELLO_WORLD: command not found”的错误。
我尝试将“HELLO_WORLD”变量添加到管道并启用“让用户在运行此管道时覆盖此值”设置。这导致HELLO_WORLD 变量不再未知,而是停留在其初始值上,并且在我使用 REST api 触发运行时未设置
如何使用 REST api 将变量传递给管道?仅针对特定运行/构建设置变量值很重要
我找到了另一个 API 来运行构建,但您似乎无法使用个人访问令牌身份验证,就像您可以使用管道 api 一样 - 只有 OAuth2 - https://docs.microsoft.com/en-us/rest/api/azure/devops/build/builds/queue?view=azure-devops-rest-6.0
【问题讨论】:
标签: azure-devops azure-devops-rest-api azure-devops-extensions azure-devops-pipelines