首页 > 解决方案 > VSTS 拉取请求 API - 如何获取 IdentityRef

问题描述

我正在使用 VSTS Pullrequest 创建 API 方法来自动创建 PR,在请求中我需要为 createdby/autocompleteby/reviewers 属性提供各种 IdentityRef id 值。在我的情况下,我所拥有的只是用户详细信息(如全名、电子邮件地址 - user1@domain.com),在这种情况下,我如何检索 IdentityRef Guid 以便我可以将其传递给 PR Create API。

https://docs.microsoft.com/en-us/rest/api/azure/devops/git/pull%20requests/create?view=azure-devops-rest-5.0

任何帮助表示赞赏。

标签: azure-devopspull-requestazure-devops-rest-api

解决方案


1) 使用Graph - List Users,但还要检查X-MS-ContinuationToken响应标头以确定是否还有其他分页数据要检索。如果是这样,请使用延续令牌值重新发送请求,直到返回所有值:

  • GET https://vssps.dev.azure.com/{organization}/_apis/graph/users?api-version=5.0-preview.1, 其次是
  • GET https://vssps.dev.azure.com/{organization}/_apis/graph/users?continuationToken={continuationToken}&api-version=5.0-preview.1

(我想知道这是否就是为什么您在上面的评论中只能获得 500 个用户。不幸的是,文档没有列出此 API 的最大页面大小。如果您使用的是延续令牌并且没有返回所有用户,这对我来说听起来像是一个 API 错误。)

2)使用获取用户权利。这提供了topskip参数。根据文档,顶部参数有 10000 条记录限制。

  • GET https://vsaex.dev.azure.com/{organization}/_apis/userentitlements?top=10000&api-version=5.0-preview.2

推荐阅读