You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

构建管道可用JSON无法设置Azure DevOps发布管道变量,求REST API方案

使用REST API设置Azure DevOps发布管道变量

当然可以!不过发布管道的REST API逻辑和构建管道确实有差异,我给你拆解两种常见场景,对应不同的实现方式:


场景1:触发新发布时临时传递变量(仅当前发布生效)

这和你之前用构建管道传递参数的场景最类似——不需要修改管道定义,只是在触发发布时临时传入变量值,仅对本次发布有效。

调用的API端点

POST https://dev.azure.com/{organization}/{project}/_apis/release/releases?api-version=7.1-preview.8

请求体示例

{
  "definitionId": 25, // 替换成你的发布管道定义ID
  "variables": {
    "var": {
      "value": "value",
      "isSecret": false // 如果是机密变量,这里设为true
    }
  }
}

和构建管道的parameters字段不同,发布管道用variables对象来承载临时变量,每个变量需要用包含value和isSecret的子对象定义。


场景2:永久更新发布定义中的变量(修改管道配置)

如果要把变量值永久保存到发布管道的定义里,后续所有发布都会使用这个值,就需要用更新发布定义的API:

调用的API端点

PUT https://dev.azure.com/{organization}/{project}/_apis/release/definitions/{definitionId}?api-version=7.1-preview.8

操作步骤与请求体提示

  1. 先通过GET请求获取当前发布定义的完整内容(避免覆盖原有配置):
    GET https://dev.azure.com/{organization}/{project}/_apis/release/definitions/{definitionId}?api-version=7.1-preview.8
    
  2. 从返回的JSON中找到variables字段,修改或添加目标变量:
    {
      "id": 25,
      "variables": {
        "existingVar": {
          "value": "updatedValue",
          "isSecret": false
        },
        "newVar": {
          "value": "newValue",
          "isSecret": true
        }
      },
      // 必须保留原有定义的其他字段(比如environments、artifacts等),不能只传variables
      ...
    }
    
  3. 将修改后的完整JSON作为请求体,通过PUT请求提交更新。

总结一下:如果只是单次发布临时用变量,用场景1的方式最直接;如果要长期修改管道的默认变量,就用场景2的方式。

内容的提问来源于stack exchange,提问作者mystack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:54:53