Use latest pipeline of base commit to compare with for MR features
Description
The MR provides multiple reports that compare the output of pipeline jobs running on the source branch with the same job results that ran on target's branch, on the base commit.
Though, if for any reason (e.g. temporary failure) another pipeline has been triggered on the base commit we still take the first one results as comparison point.
Proposal
Use the latest available pipeline for the base commit.
Replace:
def base_pipeline
@base_pipeline ||= project.pipelines.find_by(sha: merge_request_diff&.base_commit_sha)
end
with:
def base_pipeline
@base_pipeline ||= project.pipelines
.order(id: :desc)
.where(sha: merge_request_diff&.base_commit_sha)
.first
end
Links / references
https://gitlab.com/gitlab-org/gitlab-ee/blob/master/app/models/merge_request.rb#L1110
Edited by Olivier Gonzalez