summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/controllers/ci/lints_controller.rb6
-rw-r--r--lib/api/lint.rb2
-rw-r--r--lib/ci/gitlab_ci_yaml_processor.rb1
-rw-r--r--spec/lib/ci/gitlab_ci_yaml_processor_spec.rb2
-rw-r--r--spec/requests/api/lint_spec.rb8
5 files changed, 9 insertions, 10 deletions
diff --git a/app/controllers/ci/lints_controller.rb b/app/controllers/ci/lints_controller.rb
index 62f6b23faba..e06d12cfce1 100644
--- a/app/controllers/ci/lints_controller.rb
+++ b/app/controllers/ci/lints_controller.rb
@@ -8,14 +8,12 @@ module Ci
def create
@content = params[:content]
@error = Ci::GitlabCiYamlProcessor.validation_message(@content)
+ @status = @error.blank?
- unless @error.blank?
- @status = @error.blank?
- else
+ if @error.blank?
@config_processor = Ci::GitlabCiYamlProcessor.new(@content)
@stages = @config_processor.stages
@builds = @config_processor.builds
- @status = true
end
rescue
@error = 'Undefined error'
diff --git a/lib/api/lint.rb b/lib/api/lint.rb
index 98010cf3b68..ec9c8c710e4 100644
--- a/lib/api/lint.rb
+++ b/lib/api/lint.rb
@@ -5,7 +5,7 @@ module API
requires :content, type: String, desc: 'Content of .gitlab-ci.yml'
end
- namespace 'ci' do
+ namespace :ci do
post '/lint' do
errors = Ci::GitlabCiYamlProcessor.validation_message(params[:content])
diff --git a/lib/ci/gitlab_ci_yaml_processor.rb b/lib/ci/gitlab_ci_yaml_processor.rb
index bdae3205511..e8c86349339 100644
--- a/lib/ci/gitlab_ci_yaml_processor.rb
+++ b/lib/ci/gitlab_ci_yaml_processor.rb
@@ -80,6 +80,7 @@ module Ci
def self.validation_message(content)
return 'Please provide content of .gitlab-ci.yml' if content.blank?
+
begin
Ci::GitlabCiYamlProcessor.new(content)
nil
diff --git a/spec/lib/ci/gitlab_ci_yaml_processor_spec.rb b/spec/lib/ci/gitlab_ci_yaml_processor_spec.rb
index 3b77dbdb817..43631070024 100644
--- a/spec/lib/ci/gitlab_ci_yaml_processor_spec.rb
+++ b/spec/lib/ci/gitlab_ci_yaml_processor_spec.rb
@@ -1251,7 +1251,7 @@ EOT
end
end
- describe "#errors" do
+ describe "#validation_message" do
context "when the YAML could not be parsed" do
it "returns an error about invalid configutaion" do
content = YAML.dump("invalid: yaml: test")
diff --git a/spec/requests/api/lint_spec.rb b/spec/requests/api/lint_spec.rb
index c791b4891b6..391fc13a380 100644
--- a/spec/requests/api/lint_spec.rb
+++ b/spec/requests/api/lint_spec.rb
@@ -4,11 +4,11 @@ describe API::Lint, api: true do
include ApiHelpers
describe 'POST /ci/lint' do
- let(:yaml_content) do
- File.read(Rails.root.join('spec/support/gitlab_stubs/gitlab_ci.yml'))
- end
-
context 'with valid .gitlab-ci.yaml content' do
+ let(:yaml_content) do
+ File.read(Rails.root.join('spec/support/gitlab_stubs/gitlab_ci.yml'))
+ end
+
it 'passes validation' do
post api('/ci/lint'), { content: yaml_content }