如何将一个GitLab组的成员导入另一个组

时间:2015-03-19 10:34:40

标签: gitlab

有人知道如何在GitLab中将一个组的所有成员导入到另一个组中,而不是一个一个地手动执行吗?

3 个答案:

答案 0 :(得分:2)

接近的唯一原生功能是lib/tasks/gitlab/bulk_add_permission.rake,在" User management"

中提及
# omnibus-gitlab
sudo gitlab-rake gitlab:import:all_users_to_all_groups

# installation from source
bundle exec rake gitlab:import:all_users_to_all_groups RAILS_ENV=production

你可以把它作为一个模型来开发我们自己的任务。

答案 1 :(得分:0)

我不知道这样的功能。但您可以使用API​​编写脚本。我们在这里使用它将所有用户添加到一个组(对于我们的情况,所有组的所有用户都不可行)。

有用的文档:http://doc.gitlab.com/ce/api/README.htmlhttp://doc.gitlab.com/ce/api/users.htmlhttp://doc.gitlab.com/ce/api/groups.html

对另一个可能有用的问题也有回应,并列出了各种编程语言的各种模块:Is there a way to add users automatically into gitlab?

答案 2 :(得分:0)

我一直在寻找将所有Gitlab用户分配到一个特定群组的解决方案。

以下是解决方案:

创建此文件:

  

/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/finder_import.rake

有了这个内容:

namespace :gitlab do   namespace :finder do

desc "GitLab | Add all users to group Colaboradores (admin users are added as owners)"
task importall: :environment  do |t, args|
  user_ids = User.where(admin: false).pluck(:id)
  admin_ids = User.where(admin: true).pluck(:id)
  groups = Group.where(name: "Colaboradores")

  puts "Importing #{user_ids.size} users into #{groups.size} groups"
  puts "Importing #{admin_ids.size} admins into #{groups.size} groups"
  groups.each do |group|
    puts "Importing into #{group.name}"
    group.add_users(user_ids, GroupMember::DEVELOPER)
    group.add_users(admin_ids, GroupMember::OWNER)
  end
end
     

结束

运行此命令:

  

gitlab-rake gitlab:finder:importall