我正在使用VSTS Pullrequest create API方法来自动执行PR创建,在请求中,我需要为createdby / autocompleteby / reviewers属性提供各种IdentityRef id值。在我的情况下,我所拥有的只是用户详细信息(例如全名,电子邮件地址-user1@domain.com),在这种情况下,我如何检索IdentityRef Guid以便将其传递给PR Create API。
感谢您的帮助。
答案 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 email,by IdentityDescriptors,by ids,by name的IdentityRef和by SubjectDescriptors。这避免了必须重复获取用户图来定位单个用户的昂贵方法,并且还有助于直接获取IdentityRef而不仅仅是用户描述符。