raise exception if gitolite is broken
This commit is contained in:
parent
5c3fdfaacb
commit
569a88a456
2 changed files with 15 additions and 2 deletions
|
@ -15,7 +15,7 @@
|
|||
%p
|
||||
Diagnostic tool:
|
||||
%pre
|
||||
bundle exec rake gitlab:app:status RAILS_ENV=production
|
||||
bundle exec rake gitlab:check RAILS_ENV=production
|
||||
%li
|
||||
%p
|
||||
Permissions:
|
||||
|
|
|
@ -6,6 +6,7 @@ module Gitlab
|
|||
class GitoliteConfig
|
||||
class PullError < StandardError; end
|
||||
class PushError < StandardError; end
|
||||
class BrokenGitolite < StandardError; end
|
||||
|
||||
attr_reader :config_tmp_dir, :ga_repo, :conf
|
||||
|
||||
|
@ -72,6 +73,10 @@ module Gitlab
|
|||
log("Push error -> " + " " + ex.message)
|
||||
raise Gitolite::AccessDenied, ex.message
|
||||
|
||||
rescue BrokenGitolite => ex
|
||||
log("Gitolite error -> " + " " + ex.message)
|
||||
raise Gitolite::AccessDenied, ex.message
|
||||
|
||||
rescue Exception => ex
|
||||
log(ex.class.name + " " + ex.message)
|
||||
raise Gitolite::AccessDenied.new("gitolite timeout")
|
||||
|
@ -202,7 +207,15 @@ module Gitlab
|
|||
system('git commit -m "GitLab"') # git commit returns 0 on success, and 1 if there is nothing to commit
|
||||
raise "Git commit failed." unless [0,1].include? $?.exitstatus
|
||||
|
||||
if system('git push')
|
||||
stdin, stdout, stderr = Open3.popen3('git push')
|
||||
push_output = stderr.read
|
||||
push_status = $?.to_i
|
||||
|
||||
if push_output =~ /remote\: FATAL/
|
||||
raise BrokenGitolite, push_output
|
||||
end
|
||||
|
||||
if push_status.zero?
|
||||
Dir.chdir(Rails.root)
|
||||
else
|
||||
raise PushError, "unable to push gitolite-admin repo"
|
||||
|
|
Loading…
Reference in a new issue