summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/models/merge_request.rb17
1 files changed, 9 insertions, 8 deletions
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index 4532e7df7b5..5af01846699 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -747,15 +747,16 @@ class MergeRequest < ActiveRecord::Base
def all_pipelines
return unless source_project
- @all_pipelines ||= begin
- if persisted?
- sha = merge_request_diffs.flat_map(&:commits_sha).uniq
- else
- sha = diff_head_sha
- end
+ @all_pipelines ||= source_project.pipelines.order(id: :desc).
+ where(sha: all_commits_sha, ref: source_branch)
+ end
- source_project.pipelines.order(id: :desc).
- where(sha: sha, ref: source_branch)
+ # Note that this would also return SHA from dangling commits
+ def all_commits_sha
+ if persisted?
+ merge_request_diffs.flat_map(&:commits_sha).uniq
+ else
+ [diff_head_sha]
end
end