summaryrefslogtreecommitdiff
path: root/app/models/merge_request.rb
diff options
context:
space:
mode:
authorLin Jen-Shin <godfat@godfat.org>2016-09-19 23:51:27 +0800
committerLin Jen-Shin <godfat@godfat.org>2016-09-19 23:51:27 +0800
commite0f596c99debe880dfcaed66220a9483d0c81e7b (patch)
tree762599ad2fc27011f95651ef9b0d735163298d82 /app/models/merge_request.rb
parentfe084819b4c0aa83ec80b5915e7b3f444b693e9f (diff)
downloadgitlab-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.rb14
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