44 lines
987 B
Ruby
44 lines
987 B
Ruby
# frozen_string_literal: true
|
|
|
|
module Gitlab
|
|
module Ci
|
|
class Config
|
|
module Entry
|
|
class Need < ::Gitlab::Config::Entry::Simplifiable
|
|
strategy :Job, if: -> (config) { config.is_a?(String) }
|
|
|
|
class Job < ::Gitlab::Config::Entry::Node
|
|
include ::Gitlab::Config::Entry::Validatable
|
|
|
|
validations do
|
|
validates :config, presence: true
|
|
validates :config, type: String
|
|
end
|
|
|
|
def type
|
|
:job
|
|
end
|
|
|
|
def value
|
|
{ name: @config }
|
|
end
|
|
end
|
|
|
|
class UnknownStrategy < ::Gitlab::Config::Entry::Node
|
|
def type
|
|
end
|
|
|
|
def value
|
|
end
|
|
|
|
def errors
|
|
["#{location} has an unsupported type"]
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
::Gitlab::Ci::Config::Entry::Need.prepend_if_ee('::EE::Gitlab::Ci::Config::Entry::Need')
|