gpt4 book ai didi

Azure DevOps Rest API 不返回属于特定组的成员的组

转载 作者:行者123 更新时间:2023-12-03 05:32:13 26 4
gpt4 key购买 nike

我观察到 Azure DevOps REST API 的奇怪行为。本文档页https://learn.microsoft.com/en-us/rest/api/azure/devops/memberentitlementmanagement/?view=azure-devops-rest-5.1意思是“成员是添加到帐户的用户或组。”

但是当我尝试获取某个群组的成员时,例如: https://vsaex.dev.azure.com/XXXXX/_apis/GroupEntitlements/YYY/members?api-version=5.1-preview.1

它完美地返回所有用户成员,将鼠标悬停在 YYY 组中没有组成员。同时我可以看到 YYY 包含相当多的属于 YYY 成员的组。

同时,我没有看到其他 API 看起来能够满足我的需要。我的个人访问 token 拥有所有对象类型的所有“读取”权限。我错过了一些明显的东西吗?提前致谢。

最佳答案

作为解决方法,我们可以使用 API 列出所有组并获取组 ID(响应正文中的组 ID 为 originId)

GET https://vssps.dev.azure.com/{Org name}/_apis/graph/groups?api-version=6.0-preview.1

通过下面的 REST API 获取一组subjectDescriptor

注意:subjectDescriptor 是响应正文中的字段value

GET https://vssps.dev.azure.com/{Org name}/_apis/graph/descriptors/{Group ID}

enter image description here

列出群组成员

POST https://dev.azure.com/{Org name}/_apis/Contribution/HierarchyQuery?api-version=5.1-preview.1

请求正文

{
"contributionIds": [
"ms.vss-admin-web.org-admin-members-data-provider"
],
"dataProviderContext": {
"properties": {
"subjectDescriptor": "{subjectDescriptor}",
"sourcePage": {
"url": "https://dev.azure.com/{Org name}/_settings/groups?subjectDescriptor={subjectDescriptor}",
"routeId": "ms.vss-admin-web.collection-admin-hub-route",
"routeValues": {
"adminPivot": "groups",
"controller": "ContributedPage",
"action": "Execute"
}
}
}
}
}

结果:

enter image description here

注意:我建议您将初始问题提交至Developer Community ,他们会检查并联系产品团队。

更新1

检查组权限并获取NamespaceId和Token。

GET https://dev.azure.com/{Org name}/_apis/Contribution/HierarchyQuery?api-version=6.0-preview

请求正文

{
"contributionIds": [
"ms.vss-admin-web.org-admin-groups-permissions-pivot-data-provider"
],
"dataProviderContext": {
"properties": {
"subjectDescriptor": "{subjectDescriptor},
"sourcePage": {
"url": "https://dev.azure.com/v-viliu/_settings/groups?subjectDescriptor={subjectDescriptor}",
"routeId": "ms.vss-admin-web.collection-admin-hub-route",
"routeValues": {
"adminPivot": "groups",
"controller": "ContributedPage",
"action": "Execute"
}
}
}
}
}

通过下面获取描述符API

GET https://dev.azure.com/{Org name}/_apis/accesscontrollists/{securityNamespaceId}?api-version=6.0

Get group permission detail info

https://dev.azure.com/{Org name}/_apis/accesscontrollists/{securityNamespaceId}?token={Token}&descriptors={descriptor}&api-version=6.0

注意:这是二进制代码。

Update group permission .

POST https://dev.azure.com/{organization}/_apis/accesscontrollists/{securityNamespaceId}?api-version=6.0

我们可以通过上面的API获取请求体,如果需要更改权限,只需要更改Allow和Deny字段的值即可。

您也可以引用这个link .

关于Azure DevOps Rest API 不返回属于特定组的成员的组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64592586/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com