From e8f39a0a61c4c91b8a5dc016474b6139a79a52e8 Mon Sep 17 00:00:00 2001 From: randx Date: Fri, 7 Sep 2012 20:43:51 +0300 Subject: [PATCH] gitolite -> more exceptions --- lib/gitlab/backend/gitolite_config.rb | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/lib/gitlab/backend/gitolite_config.rb b/lib/gitlab/backend/gitolite_config.rb index ff4c901..61ec8c1 100644 --- a/lib/gitlab/backend/gitolite_config.rb +++ b/lib/gitlab/backend/gitolite_config.rb @@ -4,6 +4,9 @@ require 'fileutils' module Gitlab class GitoliteConfig + class PullError < StandardError; end + class PushError < StandardError; end + attr_reader :config_tmp_dir, :ga_repo, :conf def config_tmp_dir @@ -54,6 +57,14 @@ module Gitlab end end end + rescue PullError => ex + Gitlab::Logger.error("Pull error -> " + ex.message) + raise Gitolite::AccessDenied, ex.message + + rescue PushError => ex + Gitlab::Logger.error("Push error -> " + " " + ex.message) + raise Gitolite::AccessDenied, ex.message + rescue Exception => ex Gitlab::Logger.error(ex.class.name + " " + ex.message) raise Gitolite::AccessDenied.new("gitolite timeout") @@ -171,14 +182,21 @@ module Gitlab def pull tmp_dir Dir.mkdir tmp_dir `git clone #{Gitlab.config.gitolite_admin_uri} #{tmp_dir}/gitolite` + + unless File.exists?(File.join(tmp_dir, 'gitolite', 'conf', 'gitolite.conf')) + raise PullError, "unable to clone gitolite-admin repo" + end end def push tmp_dir Dir.chdir(File.join(tmp_dir, "gitolite")) - `git add -A` - `git commit -am "GitLab"` - `git push` - Dir.chdir(Rails.root) + system('git add -A') + system('git commit -am "GitLab"') + if system('git push') + Dir.chdir(Rails.root) + else + raise PushError, "unable to push gitolite-admin repo" + end end end end -- libgit2 0.21.2