3

我正在尝试通过 Gitlab API (v4) 在我的 GitLab-CE 实例中查找非活动成员。

“(中)活动”的标准之一是给定用户是否是任何项目或组的成员。

虽然这些信息似乎很容易通过网络界面(Groups and projects管理区域中用户概述页面上的选项卡)获得,但我无法通过 API 找到该信息。

我目前找到的唯一方法是遍历所有项目(或组)并检查用户是否是其中的成员。

这让我觉得非常慢(因为可能有无数项目),所以我正在寻找一种更直接的方法来查询系统中所有项目user的成员。

4

1 回答 1

0

与文档(https://docs.gitlab.com/ce/api/members.html)一样,您可以使用:

GET /groups/:id/members
GET /projects/:id/members

只让成员直接添加到组/项目中

或者:

GET /groups/:id/members/all
GET /projects/:id/members/all

获取所有成员(即使是从上面的组继承的成员)

---编辑关于@Nico问题---

为了知道用户是否是项目的成员,@umläute 测试的解决方案是遍历项目成员,然后遍历所有子组,直到它到达用户:

Given \fu\bar\project_p
With project_p.id = 1
        bar.id = 10
        fu.id = 100
Is user 'Nico' a member of project_p ?
    GET /projects/1/members returns ('Paul') / No
    GET /groups/10/members returns ('Marc', 'Jean') / No
    GET /groups/100/members returns ('Nico') / Yes

相反,Gitlab 提供了另一个 API:

GET /projects/1/members/all returns ('Paul', 'Marc', 'Jean', 'Nico') / Yes
于 2019-01-15T16:18:33.977 回答