Loading
Persist source sha and target sha for merge pipelines
What does this MR do?
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
Expected usage
## 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_shaWhat are the relevant issue numbers?
Related https://gitlab.com/gitlab-org/gitlab-ee/issues/7380
Does this MR meet the acceptance criteria?
- Changelog entry added, if necessary
- Documentation created/updated via this MR
- Documentation reviewed by technical writer or follow-up review issue created
- Tests added for this feature/bug
- [-] Tested in all supported browsers
- Conforms to the code review guidelines
- Conforms to the merge request performance guidelines
- Conforms to the style guides
- Conforms to the database guides
- [-] Link to e2e tests MR added if this MR has Requires e2e tests label. See the Test Planning Process.
- Security reports checked/validated by reviewer
Edited by Shinya Maeda