58 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Ruby
		
	
	
	
module Gitlab
 | 
						|
  module Git
 | 
						|
    BLANK_SHA = ('0' * 40).freeze
 | 
						|
    TAG_REF_PREFIX = "refs/tags/".freeze
 | 
						|
    BRANCH_REF_PREFIX = "refs/heads/".freeze
 | 
						|
 | 
						|
    class << self
 | 
						|
      def ref_name(ref)
 | 
						|
        ref.gsub(/\Arefs\/(tags|heads)\//, '')
 | 
						|
      end
 | 
						|
 | 
						|
      def branch_name(ref)
 | 
						|
        ref = ref.to_s
 | 
						|
        if self.branch_ref?(ref)
 | 
						|
          self.ref_name(ref)
 | 
						|
        else
 | 
						|
          nil
 | 
						|
        end
 | 
						|
      end
 | 
						|
 | 
						|
      def committer_hash(email:, name:)
 | 
						|
        return if email.nil? || name.nil?
 | 
						|
 | 
						|
        {
 | 
						|
          email: email,
 | 
						|
          name: name,
 | 
						|
          time: Time.now
 | 
						|
        }
 | 
						|
      end
 | 
						|
 | 
						|
      def tag_name(ref)
 | 
						|
        ref = ref.to_s
 | 
						|
        if self.tag_ref?(ref)
 | 
						|
          self.ref_name(ref)
 | 
						|
        else
 | 
						|
          nil
 | 
						|
        end
 | 
						|
      end
 | 
						|
 | 
						|
      def tag_ref?(ref)
 | 
						|
        ref.start_with?(TAG_REF_PREFIX)
 | 
						|
      end
 | 
						|
 | 
						|
      def branch_ref?(ref)
 | 
						|
        ref.start_with?(BRANCH_REF_PREFIX)
 | 
						|
      end
 | 
						|
 | 
						|
      def blank_ref?(ref)
 | 
						|
        ref == BLANK_SHA
 | 
						|
      end
 | 
						|
 | 
						|
      def version
 | 
						|
        Gitlab::VersionInfo.parse(Gitlab::Popen.popen(%W(#{Gitlab.config.git.bin_path} --version)).first)
 | 
						|
      end
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 |