Commit 464cd59dff0e543cc367c0d468a70ca590334e42

Authored by randx
1 parent 3824f9b3

Rake task to provider full repo access for gitolite-owner.\n Automerge requires…

… gitlab user be able to push to any repo
lib/gitlabhq/gitolite.rb
... ... @@ -123,5 +123,34 @@ module Gitlabhq
123 123  
124 124 repo
125 125 end
  126 +
  127 + def admin_all_repo
  128 + ga_repo = ::Gitolite::GitoliteAdmin.new(File.join(@local_dir,'gitolite'))
  129 + conf = ga_repo.config
  130 + owner_name = ""
  131 +
  132 + # Read gitolite-admin user
  133 + #
  134 + begin
  135 + repo = conf.get_repo("gitolite-admin")
  136 + owner_name = repo.permissions[0]["RW+"][""][0]
  137 + raise StandardError if owner_name.blank?
  138 + rescue => ex
  139 + puts "Cant determine gitolite-admin owner".red
  140 + raise StandardError
  141 + end
  142 +
  143 + # @ALL repos premission for gitolite owner
  144 + repo_name = "@all"
  145 + repo = if conf.has_repo?(repo_name)
  146 + conf.get_repo(repo_name)
  147 + else
  148 + ::Gitolite::Config::Repo.new(repo_name)
  149 + end
  150 +
  151 + repo.add_permission("RW+", "", owner_name)
  152 + conf.add_repo(repo, true)
  153 + ga_repo.save
  154 + end
126 155 end
127 156 end
... ...
lib/tasks/gitlab_enable_automerge.rake 0 → 100644
... ... @@ -0,0 +1,9 @@
  1 +desc "Give gitlab user full access to every repo"
  2 +task :gitlab_enable_automerge => :environment do
  3 +
  4 + Gitlabhq::GitHost.system.new.configure do |git|
  5 + git.admin_all_repo
  6 + end
  7 +
  8 + puts "Done!".green
  9 +end
... ...