diff --git a/app/services/ci/create_pipeline_service.rb b/app/services/ci/create_pipeline_service.rb index 223514968fc..e13f4fce13d 100644 --- a/app/services/ci/create_pipeline_service.rb +++ b/app/services/ci/create_pipeline_service.rb @@ -13,6 +13,8 @@ module Ci raise RuntimeError, 'Insufficient permissions to create a new pipeline' end + pipeline = new_pipeline + Ci::Commit.transaction do unless pipeline.config_processor raise ArgumentError, pipeline.yaml_errors || 'Missing .gitlab-ci.yml file' @@ -27,6 +29,10 @@ module Ci private + def new_pipeline + project.ci_commits.new(sha: commit.id, ref: params[:ref], before_sha: Gitlab::Git::BLANK_SHA) + end + def ref_names @ref_names ||= project.repository.ref_names end @@ -34,9 +40,5 @@ module Ci def commit @commit ||= project.commit(params[:ref]) end - - def pipeline - @pipeline ||= project.ci_commits.new(sha: commit.id, ref: params[:ref], before_sha: Gitlab::Git::BLANK_SHA) - end end end