Persist source sha and target sha for merge pipelines
All threads resolved!
All threads resolved!
Compare changes
There are no changes yet
No changes between version 13 and version 13
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
No changes between version 13 and version 13