34 lines
		
	
	
		
			668 B
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			668 B
		
	
	
	
		
			Ruby
		
	
	
	
# frozen_string_literal: true
 | 
						|
 | 
						|
module Gitlab
 | 
						|
  module Git
 | 
						|
    class Branch < Ref
 | 
						|
      STALE_BRANCH_THRESHOLD = 3.months
 | 
						|
 | 
						|
      def self.find(repo, branch_name)
 | 
						|
        if branch_name.is_a?(Gitlab::Git::Branch)
 | 
						|
          branch_name
 | 
						|
        else
 | 
						|
          repo.find_branch(branch_name)
 | 
						|
        end
 | 
						|
      end
 | 
						|
 | 
						|
      def initialize(repository, name, target, target_commit)
 | 
						|
        super(repository, name, target, target_commit)
 | 
						|
      end
 | 
						|
 | 
						|
      def active?
 | 
						|
        self.dereferenced_target.committed_date >= STALE_BRANCH_THRESHOLD.ago
 | 
						|
      end
 | 
						|
 | 
						|
      def stale?
 | 
						|
        !active?
 | 
						|
      end
 | 
						|
 | 
						|
      def state
 | 
						|
        active? ? :active : :stale
 | 
						|
      end
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 |