45 lines
987 B
Ruby
45 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')
|