diff options
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/ci/bridge.rb | 2 | ||||
-rw-r--r-- | app/models/ci/build.rb | 2 | ||||
-rw-r--r-- | app/models/ci/pipeline.rb | 2 | ||||
-rw-r--r-- | app/models/concerns/ci/has_ref.rb | 33 | ||||
-rw-r--r-- | app/models/concerns/has_ref.rb | 31 |
5 files changed, 36 insertions, 34 deletions
diff --git a/app/models/ci/bridge.rb b/app/models/ci/bridge.rb index 955b16ad50d..fa0619f35b0 100644 --- a/app/models/ci/bridge.rb +++ b/app/models/ci/bridge.rb @@ -7,7 +7,7 @@ module Ci include Ci::Metadatable include Importable include AfterCommitQueue - include HasRef + include Ci::HasRef InvalidBridgeTypeError = Class.new(StandardError) InvalidTransitionError = Class.new(StandardError) diff --git a/app/models/ci/build.rb b/app/models/ci/build.rb index fd099107fe7..4762740ee2f 100644 --- a/app/models/ci/build.rb +++ b/app/models/ci/build.rb @@ -10,7 +10,7 @@ module Ci include ObjectStorage::BackgroundMove include Presentable include Importable - include HasRef + include Ci::HasRef include IgnorableColumns BuildArchivedError = Class.new(StandardError) diff --git a/app/models/ci/pipeline.rb b/app/models/ci/pipeline.rb index bc0528bdbe0..d841601cf4b 100644 --- a/app/models/ci/pipeline.rb +++ b/app/models/ci/pipeline.rb @@ -11,7 +11,7 @@ module Ci include Gitlab::Utils::StrongMemoize include AtomicInternalId include EnumWithNil - include HasRef + include Ci::HasRef include ShaAttribute include FromUnion include UpdatedAtFilterable diff --git a/app/models/concerns/ci/has_ref.rb b/app/models/concerns/ci/has_ref.rb new file mode 100644 index 00000000000..cf57ff47743 --- /dev/null +++ b/app/models/concerns/ci/has_ref.rb @@ -0,0 +1,33 @@ +# frozen_string_literal: true + +## +# We will disable `ref` and `sha` attributes in `Ci::Build` in the future +# and remove this module in favor of Ci::PipelineDelegator. +module Ci + module HasRef + extend ActiveSupport::Concern + + def branch? + !tag? && !merge_request? + 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 + + # 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 + end +end diff --git a/app/models/concerns/has_ref.rb b/app/models/concerns/has_ref.rb deleted file mode 100644 index 22e5955984d..00000000000 --- a/app/models/concerns/has_ref.rb +++ /dev/null @@ -1,31 +0,0 @@ -# frozen_string_literal: true - -## -# We will disable `ref` and `sha` attributes in `Ci::Build` in the future -# and remove this module in favor of Ci::PipelineDelegator. -module HasRef - extend ActiveSupport::Concern - - def branch? - !tag? && !merge_request? - 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 - - # 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 -end |