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

如何通过Python运行Azure DevOps中已定义的流水线?

问题解答

该需求完全可以实现,核心是调用Azure DevOps官方提供的REST API触发流水线运行,具体操作步骤如下:

第一步:准备访问凭据

  • 登录你的Azure DevOps网页端,进入「用户设置」-「个人访问令牌」,点击新建令牌
  • 令牌权限按需勾选:如果是触发YAML构建流水线,勾选Build (Read & execute);如果是触发经典发布流水线,额外勾选Release (Read, write, & execute)
  • 设置合理的有效期,生成后保存好令牌字符串,该字符串仅在生成时显示一次,丢失需要重新生成

第二步:准备本地环境

  • 本地安装Python 3.7及以上版本,执行命令安装HTTP请求库:
    pip install requests

第三步:获取流水线配置参数

你需要提前拿到3个必填参数:

  • Azure DevOps组织名称:就是你访问DevOps时URL里的组织名,比如https://dev.azure.com/xxx里的xxx就是组织名
  • 项目名称:流水线所属的项目名
  • 流水线ID:打开目标流水线的详情页,URL中pipelineId=后的数字就是对应ID

第四步:编写Python触发脚本

直接使用如下示例代码,替换对应参数后运行即可:

import requests
import base64

# 替换为你自己的配置
ORG_NAME = "你的组织名"
PROJECT_NAME = "你的项目名"
PIPELINE_ID = "你的流水线ID"
PAT = "你刚才生成的PAT令牌"

# 构造请求鉴权信息
authorization = str(base64.b64encode(bytes(':'+PAT, 'ascii')), 'ascii')
headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Basic '+ authorization
}

# 触发流水线的API URL
url = f"https://dev.azure.com/{ORG_NAME}/{PROJECT_NAME}/_apis/pipelines/{PIPELINE_ID}/runs?api-version=7.1-preview.1"

# 如果你的流水线需要传自定义参数,可在下方body的variables字段里添加
body = {
    "resources": {
        "repositories": {
            "self": {
                "refName": "refs/heads/main" # 替换为你要触发的分支名
            }
        }
    },
    # 可选:自定义参数示例
    # "variables": {
    #     "env": {"value": "test"},
    #     "version": {"value": "1.0.0"}
    # }
}

response = requests.post(url, headers=headers, json=body)
if response.status_code == 200:
    print("流水线触发成功,运行ID:", response.json()["id"])
else:
    print("触发失败,错误信息:", response.text)

补充说明

  • 脚本运行成功后,直接登录Azure DevOps对应流水线页面就能看到新生成的运行任务
  • 不要将PAT硬编码到公开的代码仓库中,生产环境建议将PAT存入系统环境变量读取,避免凭据泄露
  • 如果你的流水线有其他资源依赖(比如关联了其他仓库、构件),可以根据需求修改body内的resources字段配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 08:24:05