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

create_pipeline_service.rb « external_pull_requests « services « app - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 36411465ff1212add64eba2e601275ec8037b1e0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# frozen_string_literal: true

# This service is responsible for creating a pipeline for a given
# ExternalPullRequest coming from other providers such as GitHub.

module ExternalPullRequests
  class CreatePipelineService < BaseService
    def execute(pull_request)
      return unless pull_request.open? && pull_request.actual_branch_head?

      create_pipeline_for(pull_request)
    end

    private

    def create_pipeline_for(pull_request)
      Ci::CreatePipelineService.new(project, current_user, create_params(pull_request))
        .execute(:external_pull_request_event, external_pull_request: pull_request)
    end

    def create_params(pull_request)
      {
        ref: pull_request.source_ref,
        source_sha: pull_request.source_sha,
        target_sha: pull_request.target_sha
      }
    end
  end
end