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

调用Azure DevOps API进行构建租约操作所需权限及401错误排查咨询

解决Azure DevOps API操作构建租约的401权限问题

首先,你遇到的401错误核心原因是PAT的权限范围不够——操作构建租约(获取、删除)需要的权限比你当前配置的更具体,下面是详细的解决步骤:

一、正确的PAT权限要求

你之前配置的Builds(读取/执行)权限不足以操作租约,租约属于构建保留策略的一部分,需要将PAT的Build权限设置为「Read & Manage」:

  • 生成PAT时,在权限范围里找到「Build」选项,勾选「Read & Manage」(而不是只选Read/Execute)
  • 如果是项目级PAT,确保它关联的是目标项目,并且没有过期

另外,你不需要Test Management的权限,租约操作完全属于Build模块的权限范畴。

二、验证请求格式(你的当前格式是正确的)

你的请求头和Base64编码方式完全符合Azure DevOps API要求,不需要调整:

  • 用:$token转Base64是正确的Basic认证格式
  • Content-Type设置为application/json也没问题

三、测试删除租约的脚本示例

如果你要删除租约,需要把请求方法改成Delete,示例脚本如下:

$token = "{你的PAT}"
$url="https://{instance}/{collection}/{project}/_apis/build/retention/leases/{lease Id}?api-version=6.0-preview.1"
$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($token)"))
$response = Invoke-RestMethod -Uri $url -Headers @{Authorization = "Basic $token"} -Method Delete -ContentType application/json

四、额外的项目级权限检查

如果重新生成PAT后还是报错,需要检查项目级的权限设置:

  1. 进入目标项目的「项目设置」→「权限」→「Builds」
  2. 找到PAT对应的用户(或你用来生成PAT的账号)
  3. 确保该账号被分配了「Manage build retention」的权限(这个权限是管理构建保留和租约的关键)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 13:12:40