Persist source sha and target sha for merge pipelines
All threads resolved!
All threads resolved!
Compare changes
Files
13+ 2
− 0
@@ -622,6 +622,8 @@ def predefined_variables
This MR let CreatePipelineService
persist target_sha
and source_sha
. target_sha
stores the SHA of the HEAD of the target branch of the merge request. source_sha
stores the SHA of the HEAD of the source branch of the merge request.
This MR also introduces a few helper methods with these values.
Test in EE => https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/9739
## How to create a detached pipeline?
CreatePipelineService.new(project, user, ref: "refs/merge-requests/iid/head", checkout_sha: merge_request.source_branch_sha)
.execute(:merge_request, merge_request: merge_request)
## How to create a merge pipeline?
CreatePipelineService.new(project, user, ref: "refs/merge-requests/iid/merge", checkout_sha: merge_sha, source_sha: merge_request.diff_head_sha, target_sha: merge_request.target_branch_sha)
.execute(:merge_request, merge_request: merge_request)
## How to evaluate if it's a detached pipeline?
pipeline.merge_request? && pipeline.target_sha.nil?
## How to evaluate if it's a merge pipeline?
pipeline.merge_request? && pipeline.target_sha.present?
## How to evaluate if the merge pipeline uses HEAD of target branch (If false, don't merge)?
pipeline.merge_request? && pipeline.target_sha == merge_request.target_branch_sha
Related https://gitlab.com/gitlab-org/gitlab-ee/issues/7380