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

误删Azure DevOps Release-X,如何通过PAT及PowerShell脚本恢复?

恢复Azure DevOps中误删的Release版本

前提条件

  • 拥有项目管理员或发布管理员权限
  • PAT令牌需授予Release (Read & Manage)权限
  • 误删的Release未超过平台默认90天的保留期限

步骤1:定位已删除的Release ID

执行以下PowerShell脚本,筛选出目标删除发布的ID:

$orgUrl = "https://dev.azure.com/你的组织名"
$projectName = "你的项目名"
$pat = "你的PAT令牌"
$encodedPat = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$pat"))

# 获取所有已删除的发布列表
$deletedReleasesUrl = "$orgUrl/$projectName/_apis/release/deletedreleases?api-version=7.1-preview.1"
$deletedReleases = Invoke-RestMethod -Uri $deletedReleasesUrl -Headers @{Authorization = "Basic $encodedPat"} -Method Get

# 筛选目标发布(示例:匹配名称包含"Release 233"的条目)
$targetRelease = $deletedReleases.value | Where-Object { $_.name -like "*Release 233*" }
if ($targetRelease) {
    Write-Host "找到目标删除发布,ID:$($targetRelease.id)"
} else {
    Write-Host "未找到对应删除的发布"
    exit
}

步骤2:恢复目标Release

使用上一步获取的ID,调用恢复API完成操作:

$restoreUrl = "$orgUrl/$projectName/_apis/release/deletedreleases/$($targetRelease.id)/restore?api-version=7.1-preview.1"
$restoreResult = Invoke-RestMethod -Uri $restoreUrl -Headers @{Authorization = "Basic $encodedPat"} -Method Post

if ($restoreResult.id -eq $targetRelease.id) {
    Write-Host "Release $($targetRelease.name) 已成功恢复"
} else {
    Write-Host "恢复失败,请检查权限或发布状态"
}

注意事项

  • 若之前尝试的脚本无效,优先检查API版本是否为7.1-preview.1及以上
  • 若发布关联的管道、环境已被删除,恢复后的Release可能无法正常触发部署
  • 恢复后的Release会回到发布列表的"已删除"标签页之外,可正常查看审计记录

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 07:49:51