有人知道如何在GitLab中将一个组的所有成员导入到另一个组中,而不是一个一个地手动执行吗?
答案 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.html,http://doc.gitlab.com/ce/api/users.html和http://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