has_ref.rb 750 Bytes
Newer Older
1 2
# frozen_string_literal: true

3 4 5
##
# We will disable `ref` and `sha` attributes in `Ci::Build` in the future
# and remove this module in favor of Ci::PipelineDelegator.
6 7 8 9
module HasRef
  extend ActiveSupport::Concern

  def branch?
10
    !tag? && !merge_request_event?
11 12 13 14 15 16 17 18 19
  end

  def git_ref
    if branch?
      Gitlab::Git::BRANCH_REF_PREFIX + ref.to_s
    elsif tag?
      Gitlab::Git::TAG_REF_PREFIX + ref.to_s
    end
  end
20 21 22 23 24 25 26 27 28 29 30

  # A slugified version of the build ref, suitable for inclusion in URLs and
  # domain names. Rules:
  #
  #   * Lowercased
  #   * Anything not matching [a-z0-9-] is replaced with a -
  #   * Maximum length is 63 bytes
  #   * First/Last Character is not a hyphen
  def ref_slug
    Gitlab::Utils.slugify(ref.to_s)
  end
31
end