diff options
author | Kamil Trzcinski <ayufan@ayufan.eu> | 2017-02-15 17:23:39 +0100 |
---|---|---|
committer | Kamil Trzcinski <ayufan@ayufan.eu> | 2017-02-15 17:39:35 +0100 |
commit | 03345b3613d7667bd0ef05ec2258049e58d355ec (patch) | |
tree | 44288c6cdb9ab47bc5f2e40d4640a05874c6c8b0 /lib/ci/api | |
parent | e7f99753dae4de7422836ebf5f72e0dba3a867bb (diff) | |
download | gitlab-ce-remove-trigger-requests.tar.gz |
Remove trigger request and migrate all data to pipeline, by adding trigger_id and trigger_variables.remove-trigger-requests
Diffstat (limited to 'lib/ci/api')
-rw-r--r-- | lib/ci/api/entities.rb | 5 | ||||
-rw-r--r-- | lib/ci/api/triggers.rb | 22 |
2 files changed, 11 insertions, 16 deletions
diff --git a/lib/ci/api/entities.rb b/lib/ci/api/entities.rb index 792ff628b09..bf94ed43ac6 100644 --- a/lib/ci/api/entities.rb +++ b/lib/ci/api/entities.rb @@ -69,11 +69,6 @@ module Ci class WebHook < Grape::Entity expose :id, :project_id, :url end - - class TriggerRequest < Grape::Entity - expose :id, :variables - expose :pipeline, using: Commit, as: :commit - end end end end diff --git a/lib/ci/api/triggers.rb b/lib/ci/api/triggers.rb index 63b42113513..1a82bc8fc8a 100644 --- a/lib/ci/api/triggers.rb +++ b/lib/ci/api/triggers.rb @@ -3,14 +3,12 @@ module Ci # Build Trigger API class Triggers < Grape::API resource :projects do - # Trigger a GitLab CI project build - # - # Parameters: - # id (required) - The ID of a CI project - # ref (required) - The name of project's branch or tag - # token (required) - The uniq token of trigger - # Example Request: - # POST /projects/:id/ref/:ref/trigger + desc 'Trigger a GitLab CI project build' + params do + requires :ref, type: String, desc: 'The commit sha or name of a branch or tag' + requires :token, type: String, desc: 'The unique token of trigger' + optional :variables, type: Hash, desc: 'The list of variables to be injected into build' + end post ":id/refs/:ref/trigger" do required_attributes! [:token] @@ -35,9 +33,11 @@ module Ci end # create request and trigger builds - trigger_request = Ci::CreateTriggerRequestService.new.execute(project, trigger, params[:ref].to_s, variables) - if trigger_request - present trigger_request, with: Entities::TriggerRequest + pipeline = Ci::CreatePipelineService.new(project, nil, ref: params[:ref].to_s). + execute(ignore_skip_ci: true, trigger: trigger, trigger_variables: variables) + if pipeline + data = { id: pipeline.trigger_id, variables: pipeline.trigger_variables } + present data else errors = 'No builds created' render_api_error!(errors, 400) |