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

如何通过PowerShell调用Azure DevOps API重新运行失败的发布?

PowerShell调用Azure DevOps API重跑失败发布任务实现方案

现有代码问题说明

你当前的代码存在以下缺失和逻辑错误:

  • 未初始化计时秒表$sw,循环判断条件会直接报错
  • 状态判断逻辑错误:$ReleaseStatus.status -eq 'Rejected' -or 'active'语法错误,会永远返回真
  • 缺失Azure DevOps认证请求头$Header的构造逻辑
  • 缺失重跑请求的$Body参数构造,调用的API地址和请求方法也不匹配要求
  • 重跑发布后直接return退出,无法继续监控新的运行状态
  • 未定义$RId(发布ID)、$EId(环境ID)、PAT认证变量的赋值说明

补全后的完整实现代码

# 提前配置基础参数
$PAT = "你的Azure DevOps个人访问令牌"
$org = "你的组织名"
$project = "你的项目名"
$RId = "要操作的发布ID"
$EId = "要重跑的发布环境ID"
$timer = New-TimeSpan -Minutes 120
# 初始化计时秒表
$sw = [System.Diagnostics.Stopwatch]::StartNew()
# 构造认证头
$Header = @{
    Authorization = "Basic " + [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(":$PAT"))
}
# 构造重跑环境的请求体,仅重跑失败任务可添加redeployTrajectory参数
$rerunBody = @{
    status = "inProgress"
    comment = "自动重跑失败任务"
    redeployTrajectory = "onlyFailedJobs"
} | ConvertTo-Json
while ($sw.Elapsed -lt $timer) {  
    $ReleaseStatus  = Invoke-RestMethod -Uri "https://vsrm.dev.azure.com/$org/$project/_apis/release/releases/$RId/environments/$EId/?api-version=6.0" -Method GET -Headers $Header -Verbose
    Start-Sleep -Seconds 10
    
    if ($ReleaseStatus.Status -eq 'Succeeded') {
        Write-Host "发布执行成功"
        return
    }
    # 判断发布环境已失败的状态
    if ($ReleaseStatus.Status -in @('rejected', 'failed', 'canceled')) {
        Write-Host "发布执行失败,正在触发重跑"
        # 调用正确的重跑API
        Invoke-RestMethod -Uri "https://vsrm.dev.azure.com/$org/$project/_apis/release/releases/$RId/environments/$EId?api-version=6.0" -Method PATCH -Headers $Header -Body $rerunBody -ContentType 'application/json' -Verbose
        # 重跑后不退出,继续监控状态
        continue
    }
    # 发布处于运行中状态则继续等待
    if ($ReleaseStatus.Status -eq 'inProgress') {
        Write-Host "发布正在运行,等待执行结果"
        continue
    }
}
Write-Host "等待超时,未等到发布执行完成"

注意事项

  • 个人访问令牌(PAT)需要提前在Azure DevOps后台创建,权限勾选发布 > 读取、写入和执行
  • 如果需要重跑整个环境而不是仅失败的任务,删除请求体中的redeployTrajectory = "onlyFailedJobs"配置即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 02:27:02