Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2017-08-25 16:16:09 +0300
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2017-08-25 16:16:09 +0300
commit7e6bc4dde29af635c4ec281beea20ca87ccfbe34 (patch)
tree9c1ed6fe2fc8145d1be5907d5a5fe77f17f65a32 /lib/gitlab/ci
parent99dddac55850fed68ea6f66363c3f083bd4866fa (diff)
Improve reporting of a CI/CD entry config location
Diffstat (limited to 'lib/gitlab/ci')
-rw-r--r--lib/gitlab/ci/config/entry/attributable.rb2
-rw-r--r--lib/gitlab/ci/config/entry/node.rb7
-rw-r--r--lib/gitlab/ci/config/entry/policy.rb2
-rw-r--r--lib/gitlab/ci/config/entry/validator.rb11
4 files changed, 10 insertions, 12 deletions
diff --git a/lib/gitlab/ci/config/entry/attributable.rb b/lib/gitlab/ci/config/entry/attributable.rb
index 1c8b55ee4c4..24ff862a142 100644
--- a/lib/gitlab/ci/config/entry/attributable.rb
+++ b/lib/gitlab/ci/config/entry/attributable.rb
@@ -8,6 +8,8 @@ module Gitlab
class_methods do
def attributes(*attributes)
attributes.flatten.each do |attribute|
+ raise ArgumentError if method_defined?(attribute)
+
define_method(attribute) do
return unless config.is_a?(Hash)
diff --git a/lib/gitlab/ci/config/entry/node.rb b/lib/gitlab/ci/config/entry/node.rb
index 2474684e07f..c868943c42e 100644
--- a/lib/gitlab/ci/config/entry/node.rb
+++ b/lib/gitlab/ci/config/entry/node.rb
@@ -71,6 +71,13 @@ module Gitlab
true
end
+ def location
+ name = @key.presence || self.class.name.to_s.demodulize
+ .underscore.humanize.downcase
+
+ ancestors.map(&:key).append(name).compact.join(':')
+ end
+
def inspect
val = leaf? ? config : descendants
unspecified = specified? ? '' : '(unspecified) '
diff --git a/lib/gitlab/ci/config/entry/policy.rb b/lib/gitlab/ci/config/entry/policy.rb
index 495822e9f5a..05602f1b3c6 100644
--- a/lib/gitlab/ci/config/entry/policy.rb
+++ b/lib/gitlab/ci/config/entry/policy.rb
@@ -37,7 +37,7 @@ module Gitlab
class UnknownStrategy < Entry::Node
def errors
- ['policy has to be either an array of conditions or a hash']
+ ["#{location} has to be either an array of conditions or a hash"]
end
end
diff --git a/lib/gitlab/ci/config/entry/validator.rb b/lib/gitlab/ci/config/entry/validator.rb
index 83bca0d08bc..2df23a3edcd 100644
--- a/lib/gitlab/ci/config/entry/validator.rb
+++ b/lib/gitlab/ci/config/entry/validator.rb
@@ -8,7 +8,6 @@ module Gitlab
def initialize(entry)
super(entry)
- @entry = entry
end
def messages
@@ -20,16 +19,6 @@ module Gitlab
def self.name
'Validator'
end
-
- private
-
- def location
- ancestors.map(&:key).compact.append(key_name).join(':')
- end
-
- def key_name
- key.presence || @entry.class.name.to_s.demodulize.underscore.humanize
- end
end
end
end