Azure DevOps拉取请求策略评估API调用权限/资源不存在报错排查
解决Azure DevOps Policy Evaluations API调用报错问题
补全API URL中的组织名称
你的请求URL里https://dev.azure.com//_apis/存在缺失,两个斜杠之间需要填入你的Azure DevOps组织名称,正确格式应为:https://dev.azure.com/{your-org-name}/_apis/policy/evaluations?artifactId=vstfs:///Git/PullRequestId/71aa4bb3-8b6c-404e-a0ed-a450a41bc297/56036600-b23c-4de6-a97d-a760749e3088/102388&api-version=7.1-preview.1浏览器访问时会自动补全组织信息,但API调用必须明确指定。
修正Artifact ID的URL编码问题
错误提示中的Artifact ID出现了%2f(斜杠的URL编码),而API要求使用原始斜杠格式。检查你复制的Artifact ID是否被自动编码,将所有%2f替换为/后再传入请求参数。确认API调用的认证方式与权限
浏览器通过会话cookie认证,但API调用需要使用个人访问令牌(PAT),且令牌需包含以下权限:Policy (Read)Git (Read)
在请求头中添加Authorization: Basic {base64-encoded-PAT}(注意PAT需要先按:{PAT}格式拼接再转base64)。即使浏览器能查看PR,API若无正确认证或权限不足仍会报错。
验证Artifact ID的格式正确性
确认Artifact ID的三个组成部分(项目ID、仓库ID、PR编号)与实际PR信息一致:vstfs:///Git/PullRequestId/{project-id}/{repo-id}/{pr-number}可通过PR页面的URL或Git Repositories API核对项目ID、仓库ID和PR编号是否正确。
尝试使用更直接的API端点
若上述方法无效,可改用针对特定PR的策略评估端点,避免Artifact ID格式错误:https://dev.azure.com/{your-org-name}/{project-name}/_apis/git/repositories/{repo-id}/pullRequests/{pr-number}/policyevaluations?api-version=7.1-preview.1此端点只需仓库ID和PR编号,更易配置且不易出错。
内容的提问来源于stack exchange,提问作者Rob
相关产品推荐
相关产品推荐

