Module: Gitlab::GitRefValidator
- Extended by:
- GitRefValidator
- Included in:
- GitRefValidator
- Defined in:
- lib/gitlab/git_ref_validator.rb
Constant Summary collapse
- EXPANDED_PREFIXES =
%w[refs/heads/ refs/remotes/].freeze
- DISALLOWED_PREFIXES =
%w[-].freeze
Instance Method Summary collapse
-
#validate(ref_name, skip_head_ref_check: false) ⇒ Object
Validates a given name against the git reference specification.
- #validate_merge_request_branch(ref_name) ⇒ Object
Instance Method Details
#validate(ref_name, skip_head_ref_check: false) ⇒ Object
Validates a given name against the git reference specification
Returns true for a valid reference name, false otherwise
15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/gitlab/git_ref_validator.rb', line 15 def validate(ref_name, skip_head_ref_check: false) return false if ref_name.to_s.empty? # #blank? raises an ArgumentError for invalid encodings return false if ref_name.start_with?(*(EXPANDED_PREFIXES + DISALLOWED_PREFIXES)) return false if ref_name == 'HEAD' && !skip_head_ref_check begin Rugged::Reference.valid_name?("refs/heads/#{ref_name}") rescue ArgumentError false end end |
#validate_merge_request_branch(ref_name) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/gitlab/git_ref_validator.rb', line 27 def validate_merge_request_branch(ref_name) return false if ref_name.to_s.empty? return false if ref_name.start_with?(*DISALLOWED_PREFIXES) = if ref_name.start_with?(*EXPANDED_PREFIXES) ref_name else "refs/heads/#{ref_name}" end begin Rugged::Reference.valid_name?() rescue ArgumentError false end end |