2021-10-27 15:23:28 +05:30
|
|
|
# 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
|
|
|
|
|
2021-12-11 22:18:48 +05:30
|
|
|
ALLOWED_KEYS = %i[if exists].freeze
|
2021-10-27 15:23:28 +05:30
|
|
|
|
2021-12-11 22:18:48 +05:30
|
|
|
attributes :if, :exists
|
2021-10-27 15:23:28 +05:30
|
|
|
|
|
|
|
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
|