diff options
author | Lin Jen-Shin <godfat@godfat.org> | 2016-09-19 23:51:27 +0800 |
---|---|---|
committer | Lin Jen-Shin <godfat@godfat.org> | 2016-09-19 23:51:27 +0800 |
commit | e0f596c99debe880dfcaed66220a9483d0c81e7b (patch) | |
tree | 762599ad2fc27011f95651ef9b0d735163298d82 /app/models/merge_request.rb | |
parent | fe084819b4c0aa83ec80b5915e7b3f444b693e9f (diff) | |
download | gitlab-ce-e0f596c99debe880dfcaed66220a9483d0c81e7b.tar.gz |
Show all pipelines from all merge_request_diffs:
This way we could also show pipelines from commits which
were discarded due to a force push.
Diffstat (limited to 'app/models/merge_request.rb')
-rw-r--r-- | app/models/merge_request.rb | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index 75f48fd4ba5..4532e7df7b5 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -745,10 +745,18 @@ class MergeRequest < ActiveRecord::Base end def all_pipelines - @all_pipelines ||= - if diff_head_sha && source_project - source_project.pipelines.order(id: :desc).where(sha: commits_sha, ref: source_branch) + return unless source_project + + @all_pipelines ||= begin + if persisted? + sha = merge_request_diffs.flat_map(&:commits_sha).uniq + else + sha = diff_head_sha end + + source_project.pipelines.order(id: :desc). + where(sha: sha, ref: source_branch) + end end def merge_commit |