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

用户名

我在Azure Devops上有一个管道,我正在尝试使用REST API进行程序化/无头运行:https ://docs.microsoft.com/zh-cn/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将变量传递到管道?重要的是,仅针对特定的运行/构建设置变量值

我找到了另一个用于运行构建的API,但似乎您不能对其使用“个人访问令牌”身份验证,就像可以与管道api一起使用-仅OAuth2- https: //docs.microsoft.com/zh-cn/rest/ api / azure / devops / build / builds / queue?view = azure-devops-rest-6.0

丹尼尔隆

您可以同时使用Runs APIBuild Queue API来完成此任务,两者都可以与Personal Access Token一起使用。对于哪个更好/更好,请参阅以下问题:Azure Devops Builds-Queue与运行管道REST API之间的区别,但总而言之,Runs API将是更可靠的选择

选项1:运行API

POST https://dev.azure.com/{{organization}}/{{project}}/_apis/pipelines/{{PipelineId}}/runs?api-version=6.0-preview.1

您的正文将是类型application/json(HTTP标头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

您的正文将是类型application/json(HTTP标头Content-Type设置为application/json),与下面类似,只需替换definition.idsourcebranch使用适当的值即可。还请注意参数部分的“字符串化”内容(它应该是json映射的字符串表示形式)

{
    "parameters": "{\"HELLO_WORLD\":\"HelloWorldValue\"}",
    "definition": {
        "id": 1
    },
    "sourceBranch": "refs/heads/main"
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Azure Devops构建之间的区别-队列与运行管道REST API

使用REST API设置Azure devops Release管道变量

azure-devops-extension-api-运行管道

Azure DevOps REST API

Azure DevOps使用REST API调用GetItem

使用REST API批准Azure DevOps中的Yaml管道部署

使用Azure DevOps REST API在构建上运行测试

如何使用Azure DevOps REST API覆盖列表变量?

Azure Devops REST API 删除

创建Azure Devops发布管道时出错-POST Rest API

启动构建并通过Azure DevOps Rest API传递变量

Azure DevOps Rest API获取发布定义不包含变量

使用 Rest API 在 Azure DevOps 中创建新用户

使用Azure DevOps REST Api如何获取分支的提交哈希?

无法使用 Postman 从 Azure Devops rest API 下载附件

使用Azure Devops Rest API跳过阶段不起作用

使用 PKCE 的 Azure DevOps REST API 身份驗證

使用Azure DevOps Rest API查找PAT范围

使用 Powershell 的 Azure Devops 审计 rest api 延续令牌

使用Powershell脚本的Azure Devops Rest API结果循环

使用Rest API获取Azure DevOps构建的构建结果

使用 REST API 下载 Azure Devops 存储库的存档

如何以角度使用 Azure devops REST API

如何使用Bearer令牌从Azure DevOps调用REST API

使用Rest API从Azure Devops存储库获取文件

使用REST API获取与Azure Devops中的构建关联的更改

使用Azure DevOps REST API更新许可证级别

如何使用Azure devops Rest Api获取最新标签?

如何使用 REST API 在 Azure DevOps 中禁用分支策略?