raise exception if gitolite is broken
This commit is contained in:
		
							parent
							
								
									5c3fdfaacb
								
							
						
					
					
						commit
						569a88a456
					
				| 
						 | 
				
			
			@ -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 New Issue