summaryrefslogtreecommitdiff
path: root/lib/gitlab/git_ref_validator.rb
blob: 2e3e4fc3f1f8aff05294232c24bbb3e8a18875c6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# Gitaly note: JV: does not need to be migrated, works without a repo.

module Gitlab
  module GitRefValidator
    extend self
    # Validates a given name against the git reference specification
    #
    # Returns true for a valid reference name, false otherwise
    def validate(ref_name)
      return false if ref_name.start_with?('refs/heads/')
      return false if ref_name.start_with?('refs/remotes/')

      Gitlab::Utils.system_silent(
        %W(#{Gitlab.config.git.bin_path} check-ref-format --branch #{ref_name}))
    end
  end
end