You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过REST API查询Azure Devops工作项的可分配用户列表

查询Azure DevOps可分配工作项的经办人列表

你用的安全命名空间ID52d39943-cb85-4d7f-8fa8-c6baac873819确实对应工作项跟踪的权限空间,但直接查这个命名空间的安全组成员不是正确的做法——可分配经办人是指拥有「分配工作项」权限的用户/组,需要结合项目成员身份和权限检查来获取。

以下是正确的实现思路和方法:

核心逻辑

可分配工作项的用户需要同时满足两个条件:

  • 是目标项目的有效成员(包括通过Azure AD组、项目组继承的成员)
  • 拥有工作项跟踪模块下的「分配工作项」权限(权限状态为「允许」)

具体实现步骤

1. 获取项目的所有有效成员

通过Azure DevOps REST API获取项目的全部成员(含嵌套组的成员):

GET https://dev.azure.com/{组织名}/{项目名}/_apis/graph/members?api-version=7.1-preview.1

该接口会返回项目中所有直接/间接关联的用户,无需手动处理组嵌套。

2. 检查用户的「分配工作项」权限

用权限检查API批量验证用户是否拥有分配权限,对应的参数:

  • 命名空间ID:你之前用的52d39943-cb85-4d7f-8fa8-c6baac873819(工作项跟踪)
  • 权限ID:256(对应「分配工作项」权限)
  • 资源Token:project/{项目ID}(指定目标项目)

请求示例:

POST https://dev.azure.com/{组织名}/{项目名}/_apis/securitypermissions/checkpermissions?api-version=7.1-preview.1

请求体:

{
  "namespaceId": "52d39943-cb85-4d7f-8fa8-c6baac873819",
  "token": "project/{项目ID}",
  "permissions": [
    {
      "permissionId": 256,
      "name": "AssignWorkItem"
    }
  ],
  "descriptors": ["{用户1的Descriptor}", "{用户2的Descriptor}"]
}

返回结果中,permissionEvaluations字段会显示每个用户是否拥有该权限。

3. 简化方案:直接获取默认有权限的组

项目的「Contributors(参与者)」组默认拥有「分配工作项」权限,你可以直接查询该组的成员:

  1. 先获取Contributors组的Descriptor:
GET https://dev.azure.com/{组织名}/{项目名}/_apis/graph/groups?api-version=7.1-preview.1

在返回结果中找到displayName为「Contributors」的组,提取其descriptor字段。

  1. 查询该组的成员:
GET https://dev.azure.com/{组织名}/{项目名}/_apis/graph/groups/{组Descriptor}/members?api-version=7.1-preview.1

这种方法适合大部分场景,若有额外自定义权限的用户,再补充步骤2的权限检查即可。

内容的提问来源于stack exchange,提问作者Sanket Kar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 02:32:41