diff options
Diffstat (limited to 'lib/gitlab/config')
-rw-r--r-- | lib/gitlab/config/entry/composable_hash.rb | 10 | ||||
-rw-r--r-- | lib/gitlab/config/entry/validators.rb | 13 |
2 files changed, 21 insertions, 2 deletions
diff --git a/lib/gitlab/config/entry/composable_hash.rb b/lib/gitlab/config/entry/composable_hash.rb index 9531b7e56fd..0b892fd4552 100644 --- a/lib/gitlab/config/entry/composable_hash.rb +++ b/lib/gitlab/config/entry/composable_hash.rb @@ -25,9 +25,9 @@ module Gitlab entry_class_name = entry_class.name.demodulize.underscore factory = ::Gitlab::Config::Entry::Factory.new(entry_class) - .value(config || {}) + .value(config.nil? ? {} : config) .with(key: name, parent: self, description: "#{name} #{entry_class_name} definition") # rubocop:disable CodeReuse/ActiveRecord - .metadata(name: name) + .metadata(composable_metadata.merge(name: name)) @entries[name] = factory.create! end @@ -38,9 +38,15 @@ module Gitlab end end + private + def composable_class(name, config) opt(:composable_class) end + + def composable_metadata + {} + end end end end diff --git a/lib/gitlab/config/entry/validators.rb b/lib/gitlab/config/entry/validators.rb index cc24ae837f3..337cfbc5287 100644 --- a/lib/gitlab/config/entry/validators.rb +++ b/lib/gitlab/config/entry/validators.rb @@ -304,6 +304,7 @@ module Gitlab end end + # This will be removed with the FF `ci_variables_refactoring_to_variable`. class VariablesValidator < ActiveModel::EachValidator include LegacyValidationHelpers @@ -336,6 +337,18 @@ module Gitlab end end + class AlphanumericValidator < ActiveModel::EachValidator + def self.validate(value) + value.is_a?(String) || value.is_a?(Symbol) || value.is_a?(Integer) + end + + def validate_each(record, attribute, value) + unless self.class.validate(value) + record.errors.add(attribute, 'must be an alphanumeric string') + end + end + end + class ExpressionValidator < ActiveModel::EachValidator def validate_each(record, attribute, value) unless value.is_a?(String) && ::Gitlab::Ci::Pipeline::Expression::Statement.new(value).valid? |