diff options
author | Katarzyna Kobierska <kkobierska@gmail.com> | 2016-08-18 08:50:01 +0200 |
---|---|---|
committer | Katarzyna Kobierska <kkobierska@gmail.com> | 2016-09-07 12:10:49 +0200 |
commit | fb1c7254d5764fb495d73b7e5bb16d60fd09bf03 (patch) | |
tree | 9f697c42d5fb42da3006160e1d37dbb08e39cc05 | |
parent | 1d5488699678d22644d24add4b89cede0419ad25 (diff) | |
download | gitlab-ce-fb1c7254d5764fb495d73b7e5bb16d60fd09bf03.tar.gz |
API for CI Lint
-rw-r--r-- | lib/ci/api/api.rb | 1 | ||||
-rw-r--r-- | lib/ci/api/entities.rb | 7 | ||||
-rw-r--r-- | lib/ci/api/lint.rb | 24 | ||||
-rw-r--r-- | spec/requests/ci/api/lint_spec.rb | 23 |
4 files changed, 55 insertions, 0 deletions
diff --git a/lib/ci/api/api.rb b/lib/ci/api/api.rb index a6b9beecded..741a81ca8f0 100644 --- a/lib/ci/api/api.rb +++ b/lib/ci/api/api.rb @@ -24,6 +24,7 @@ module Ci mount ::Ci::API::Builds mount ::Ci::API::Runners mount ::Ci::API::Triggers + mount ::Ci::API::Lint end end end diff --git a/lib/ci/api/entities.rb b/lib/ci/api/entities.rb index 3f5bdaba3f5..8052908e78a 100644 --- a/lib/ci/api/entities.rb +++ b/lib/ci/api/entities.rb @@ -59,6 +59,13 @@ module Ci expose :id, :variables expose :pipeline, using: Commit, as: :commit end + + class Lint < Grape::Entity + expose :content + expose :status + expose :builds + expose :stages + end end end end diff --git a/lib/ci/api/lint.rb b/lib/ci/api/lint.rb new file mode 100644 index 00000000000..d781441d2b7 --- /dev/null +++ b/lib/ci/api/lint.rb @@ -0,0 +1,24 @@ +module Ci + module API + class Lint < Grape::API + before { authenticate! } + + resources :lint do + post do + content = params[:content] + + if content + config_processor = Ci::GitlabCiYamlProcessor.new(content) + stages = config_processor.stages + builds = config_processor.builds + status = true + + response = { status: status, stages: stages, builds: builds } + end + + response + end + end + end + end +end diff --git a/spec/requests/ci/api/lint_spec.rb b/spec/requests/ci/api/lint_spec.rb new file mode 100644 index 00000000000..2ffd88120ae --- /dev/null +++ b/spec/requests/ci/api/lint_spec.rb @@ -0,0 +1,23 @@ +require 'spec_helper' + +describe Ci::API::API do + include ApiHelpers + + let(:content) do + File.read(Rails.root.join('spec/support/gitlab_stubs/gitlab_ci.yml')) + end + + describe "Builds API for Lint" do + + describe 'POST /ci/lint' do + before { content } + + context "with valid .gitlab-ci.yaml file" do + it "has success status" do + # binding.pry + expect(response).to have_content(true) + end + end + end + end +end |