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

如何获取GitLab中含子组成员的所有群组可访问用户数据?

GitLab:获取群组全部可访问用户的方法

问题背景

Group1有2名直接成员,Group2有4名直接成员,将Group2添加为Group1的成员群组后,6名用户都能访问Group1,但List all members of a group API仅返回直接/继承的已分配条目(包含Group2这个群组),无法直接拿到所有6个用户的信息。

解决步骤

要获取所有有权访问Group1的用户,需要分两步调用API并合并结果:

  1. 获取Group1的所有直接/继承成员
    调用带include_inherited=true参数的API,拿到Group1的直接用户和作为成员的Group2:
    curl --header "PRIVATE-TOKEN: <你的访问令牌>" "https://你的GitLab地址/api/v4/groups/Group1/members?include_inherited=true"
    
  2. 获取子群组的成员
    遍历第一步的返回结果,筛选出类型为group的条目(即Group2),调用该群组的成员API:
    curl --header "PRIVATE-TOKEN: <你的访问令牌>" "https://你的GitLab地址/api/v4/groups/Group2/members"
    
  3. 合并去重
    将两次获取的用户列表合并,以用户ID为唯一标识去重,最终得到所有6名拥有Group1访问权限的用户。

额外说明

  • 访问令牌需要具备read_group权限,否则无法获取成员数据
  • 如果存在多层群组嵌套(比如Group2还关联了其他群组),需要递归处理所有子群组的成员
  • 若用脚本实现,可以用用户ID做键,避免重复添加同一用户

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 12:12:07