如何通过GitLab API获取群组的所有成员(含添加的群组类型成员)
GitLab 群组包含群组类型成员的查询方案
你之前调用的GET /groups/:id/members接口仅设计为返回直接添加的用户类型成员,无法返回群组类型的成员,你可以通过专门的群组共享接口获取该类数据,具体方法如下:
1. 调用专属API接口
查询群组下所有作为成员添加的共享群组,使用如下接口:
GET https://[gitlab-URI]/api/v4/groups/35/group_shares
请求头需携带拥有read_api权限的私有访问令牌,格式如下:PRIVATE-TOKEN: <你的访问令牌>
2. 核心返回字段说明
接口返回JSON数组,每个元素对应一个群组类型成员,核心字段包括:
group_id:添加为成员的群组IDgroup_name:添加为成员的群组名称(对应你的场景就是teacher)access_level:该群组在sharing主群组内的权限等级expires_at:权限过期时间,未设置则返回null
3. 合并所有类型成员
如果你需要获取完整的成员列表(包含用户+群组类型),分别调用以下两个接口合并结果即可:
- 用户类型成员:
GET https://[gitlab-URI]/api/v4/groups/35/members - 群组类型成员:
GET https://[gitlab-URI]/api/v4/groups/35/group_shares
若需要包含从父群组继承的用户成员,可将用户查询接口替换为
GET /groups/35/members/all
内容的提问来源于stack exchange,提问作者Wallenstein
相关产品推荐
相关产品推荐

