summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorrandx <dmitriy.zaporozhets@gmail.com>2012-08-29 00:33:19 +0300
committerrandx <dmitriy.zaporozhets@gmail.com>2012-08-29 00:33:19 +0300
commitc48c0f95b279e3fdaf0764d48711304beaa8ace8 (patch)
treec4f7badcb57f404be14557e0e64a0ff3f2ac55de /lib
parente8e8ca940bd592738f123985a8791dadcc3f75e7 (diff)
downloadgitlab-ce-c48c0f95b279e3fdaf0764d48711304beaa8ace8.tar.gz
Gitlab::Gitolite final fixes. Seems like all functionality is working correctly now
Diffstat (limited to 'lib')
-rw-r--r--lib/gitlab/backend/gitolite.rb80
1 files changed, 41 insertions, 39 deletions
diff --git a/lib/gitlab/backend/gitolite.rb b/lib/gitlab/backend/gitolite.rb
index 96a13350ede..18b30500913 100644
--- a/lib/gitlab/backend/gitolite.rb
+++ b/lib/gitlab/backend/gitolite.rb
@@ -10,14 +10,14 @@ module Gitlab
def set_key key_id, key_content, projects
configure do |c|
c.update_keys(key_id, key_content)
- c.update_project(project.path, projects)
+ c.update_projects(projects)
end
end
def remove_key key_id, projects
configure do |c|
c.delete_key(key_id)
- c.update_project(project.path, projects)
+ c.update_projects(projects)
end
end
@@ -50,43 +50,7 @@ module Gitlab
end
end
- private
-
- def pull
- # create tmp dir
- @local_dir = File.join(Rails.root, 'tmp',"gitlabhq-gitolite-#{Time.now.to_i}")
- Dir.mkdir @local_dir
-
- `git clone #{Gitlab.config.gitolite_admin_uri} #{@local_dir}/gitolite`
- end
-
- def push
- Dir.chdir(File.join(@local_dir, "gitolite"))
- `git add -A`
- `git commit -am "Gitlab"`
- `git push`
- Dir.chdir(Rails.root)
-
- FileUtils.rm_rf(@local_dir)
- end
-
- def configure
- Timeout::timeout(30) do
- File.open(File.join(Rails.root, 'tmp', "gitlabhq-gitolite.lock"), "w+") do |f|
- begin
- f.flock(File::LOCK_EX)
- pull
- yield(self)
- push
- ensure
- f.flock(File::LOCK_UN)
- end
- end
- end
- rescue Exception => ex
- Gitlab::Logger.error(ex.message)
- raise Gitolite::AccessDenied.new("gitolite timeout")
- end
+ protected
def destroy_project(project)
FileUtils.rm_rf(project.path_to_repo)
@@ -191,5 +155,43 @@ module Gitlab
conf.add_repo(repo, true)
ga_repo.save
end
+
+ private
+
+ def pull
+ # create tmp dir
+ @local_dir = File.join(Rails.root, 'tmp',"gitlabhq-gitolite-#{Time.now.to_i}")
+ Dir.mkdir @local_dir
+
+ `git clone #{Gitlab.config.gitolite_admin_uri} #{@local_dir}/gitolite`
+ end
+
+ def push
+ Dir.chdir(File.join(@local_dir, "gitolite"))
+ `git add -A`
+ `git commit -am "Gitlab"`
+ `git push`
+ Dir.chdir(Rails.root)
+
+ FileUtils.rm_rf(@local_dir)
+ end
+
+ def configure
+ Timeout::timeout(30) do
+ File.open(File.join(Rails.root, 'tmp', "gitlabhq-gitolite.lock"), "w+") do |f|
+ begin
+ f.flock(File::LOCK_EX)
+ pull
+ yield(self)
+ push
+ ensure
+ f.flock(File::LOCK_UN)
+ end
+ end
+ end
+ rescue Exception => ex
+ Gitlab::Logger.error(ex.message)
+ raise Gitolite::AccessDenied.new("gitolite timeout")
+ end
end
end