如何有效地将用户添加到GitLab中的所有项目(以编程方式或其他方式)

时间:2019-07-17 12:56:11

标签: git api gitlab

我有一个包含许多项目的GitLab CE服务器,我想为所有项目添加一个用户。

如果可能的话,我希望避免通过UI(“项目”->“设置”->“成员”->“将用户添加到项目”)执行此操作,因为这将花费大量时间。

2 个答案:

答案 0 :(得分:1)

执行此操作的一种方法是将所有项目移到一个组中。然后,将新成员添加到组中将授予他们访问所有包含项目的权限。移动所有项目可能很乏味,但是一旦完成,将使成员管理更加容易。如果您希望将来可能需要更细粒度的权限,也可以考虑对组进行嵌套的层次结构。

有关说明,请参见https://docs.gitlab.com/ce/user/group

从链接页面的“将用户添加到组”部分:

  

将多个项目归为一组的好处是您可以   用户只需执行一项操作,即可访问组中的所有项目。

     

通过导航至该小组的仪表板,将成员添加到该小组   点击会员

     

选择权限级别,然后添加新成员。您也可以设定   该用户的到期日期;这是他们的约会日期   不再有权访问您的论坛。

     

考虑一个有两个项目的小组:

     
      
  • 组成员页面上,您现在可以向该组添加新用户。
  •   
  • 现在,由于该用户是该组的 Developer 成员,因此他们自动获得该组中所有项目 Developer 访问权限。 / li>   
     

为特定用户增加现有用户的访问级别   项目,然后将它们再次添加为项目的新成员   所需的权限级别。

答案 1 :(得分:1)

您可以使用GitLab ProjectsMembers API来实现这一目标。

首先对GET API发出/projects请求,以获取所有项目的列表。

然后针对您要向其添加成员的每个项目,对POST API进行/projects/:id/members

您可以在该page上看到POST请求的示例

curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --data "user_id=1&access_level=30" https://gitlab.example.com/api/v4/projects/:id/members