通过Azure DevOps API添加必填审阅者时出现无效参数错误
Azure DevOps API添加必填审阅者报错「A valid reviewer must be supplied」的解决方法
问题场景
我能在Azure DevOps拉取请求(PR)界面手动添加自己作为必填审阅者,但通过API执行该操作时触发以下错误:
{"$id":"1","innerException":null,"message":"Invalid argument value.\r\nParameter name: A valid reviewer must be supplied.","typeName":"Microsoft.TeamFoundation.SourceControl.WebServer.InvalidArgumentValueException, Microsoft.TeamFoundation.SourceControl.WebServer","typeKey":"InvalidArgumentValueException","errorCode":0,"eventId":0}
已尝试过的审阅者ID类型均无效:
- 邮箱地址
user@domain.com - Entra ID用户对象ID
- 从PR reviewers查询接口获取的ID
- Teams「Get Team Members With Extended Properties」接口返回的ID
解决步骤
1. 严格匹配API请求格式
Azure DevOps添加PR审阅者的API(POST https://dev.azure.com/{org}/{proj}/_apis/git/repositories/{repoId}/pullRequests/{prId}/reviewers?api-version=7.1-preview.1)要求请求体必须包含Azure DevOps内部用户ID和isRequired字段,示例格式如下:
[ { "id": "你的Azure DevOps专属用户ID", "isRequired": true } ]
2. 获取正确的Azure DevOps用户ID
不要使用外部系统ID,直接从Azure DevOps自身渠道获取:
- 调用身份查询接口:
GET https://dev.azure.com/{org}/_apis/identity/identities?api-version=7.1-preview.1,通过filter参数(比如邮箱)过滤自己的信息,返回结果里的id字段就是有效ID。 - 查看个人资料:在Azure DevOps个人资料页面,地址栏中
_usersDetails/后的字符串即为你的用户ID。
3. 检查API权限和身份验证
确保调用API的凭据(PAT令牌或OAuth令牌)拥有项目贡献者或更高权限,且令牌已勾选Code权限范围。
4. 区分用户ID与团队/组ID
如果误将团队ID或组ID当作用户ID传入,会直接触发该错误。确认传入的id是单个用户的专属ID,而非团队或组的标识。
5. 验证请求头设置
必须在请求头中添加Content-Type: application/json,否则API无法正确解析请求体内容。
内容的提问来源于stack exchange,提问作者Vir
相关产品推荐
相关产品推荐

