diff options
| -rw-r--r-- | app/models/merge_request.rb | 17 |
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 |
