30 lines
749 B
Ruby
30 lines
749 B
Ruby
# frozen_string_literal: true
|
|
|
|
module Gitlab
|
|
module Ci
|
|
class Config
|
|
module Entry
|
|
class Include
|
|
class Rules::Rule < ::Gitlab::Config::Entry::Node
|
|
include ::Gitlab::Config::Entry::Validatable
|
|
include ::Gitlab::Config::Entry::Attributable
|
|
|
|
ALLOWED_KEYS = %i[if exists].freeze
|
|
|
|
attributes :if, :exists
|
|
|
|
validations do
|
|
validates :config, presence: true
|
|
validates :config, type: { with: Hash }
|
|
validates :config, allowed_keys: ALLOWED_KEYS
|
|
|
|
with_options allow_nil: true do
|
|
validates :if, expression: true
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|