gpt4 book ai didi

azure-devops - Azure DevOps REST api - 使用变量运行管道

转载 作者:行者123 更新时间:2023-12-04 14:39:25 27 4
gpt4 key购买 nike

我在 Azure Devops 上有一个管道,我正在尝试使用 REST api 以编程方式/ headless 方式运行: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:找不到命令”。
我已尝试向管道添加“HELLO_WORLD”变量并启用“让用户在运行此管道时覆盖此值”设置。这导致 HELLO_WORLD变量不再未知,而是停留在其初始值上,并且在我使用 REST api 触发运行时未设置
如何使用 REST api 将变量传递给管道?仅为特定的运行/build设置变量值很重要
我找到了另一个 API 来运行构建,但似乎您不能使用个人访问 token 身份验证,就像您可以使用管道 api - 仅 OAuth2 - https://docs.microsoft.com/en-us/rest/api/azure/devops/build/builds/queue?view=azure-devops-rest-6.0

最佳答案

您可以同时使用 Runs APIBuild Queue API ,两者都使用个人访问 token 。对于哪个更好/更喜欢,请参阅此问题:Difference between Azure Devops Builds - Queue vs run pipeline REST APIs ,但简而言之,Runs API 将是更具前瞻性的选择
选项 1:运行 API

POST https://dev.azure.com/{{organization}}/{{project}}/_apis/pipelines/{{PipelineId}}/runs?api-version=6.0-preview.1
你的 body 属于 application/json (HTTP header Content-Type 设置为 application/json )和下面类似,只需替换 resources.repositories.self.refName具有适当的值
{
"resources": {
"repositories": {
"self": {
"refName": "refs/heads/main"
}
}
},
"variables": {
"HELLO_WORLD": {
"isSecret": false,
"value": "HelloWorldValue"
}
}
}
选项 2:构建 API
POST https://dev.azure.com/{{organization}}/{{project}}/_apis/build/builds?api-version=6.0
你的 body 属于 application/json (HTTP header Content-Type 设置为 application/json ),类似下面的东西,只需替换 definition.idsourcebranch具有适当的值。另请注意参数部分的“字符串化”内容(应该是json映射的字符串表示)
{
"parameters": "{\"HELLO_WORLD\":\"HelloWorldValue\"}",
"definition": {
"id": 1
},
"sourceBranch": "refs/heads/main"
}

关于azure-devops - Azure DevOps REST api - 使用变量运行管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66185420/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com