VSTS拉取请求API-如何获取IdentityRef

时间:2018-12-30 00:42:37

标签: azure-devops pull-request azure-devops-rest-api

我正在使用VSTS Pullrequest create 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

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

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的最大页面大小。如果您 are 使用延续令牌,并且不会返回所有用户,这对我来说听起来像是一个API错误。)

2)使用Get User Entitlements。这提供了顶部跳过参数。每个文档的 top 参数限制为10000条。

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

答案 1 :(得分:0)

一种更简单的方法是使用Identities - Read Identities API,该API允许我们查询用户by emailby IdentityDescriptorsby idsby name的IdentityRef和by SubjectDescriptors。这避免了必须重复获取用户图来定位单个用户的昂贵方法,并且还有助于直接获取IdentityRef而不仅仅是用户描述符。

相关问题