summaryrefslogtreecommitdiff
path: root/app/models/merge_request.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/merge_request.rb')
-rw-r--r--app/models/merge_request.rb25
1 files changed, 14 insertions, 11 deletions
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index 5cf2ded114d..df516009397 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -212,8 +212,8 @@ class MergeRequest < ApplicationRecord
scope :join_project, -> { joins(:target_project) }
scope :references_project, -> { references(:target_project) }
scope :with_api_entity_associations, -> {
- preload(:assignees, :author, :unresolved_notes, :labels, :milestone, :timelogs,
- latest_merge_request_diff: [:merge_request_diff_commits],
+ preload(:assignees, :author, :unresolved_notes, :labels, :milestone,
+ :timelogs, :latest_merge_request_diff,
metrics: [:latest_closed_by, :merged_by],
target_project: [:route, { namespace: :route }],
source_project: [:route, { namespace: :route }])
@@ -396,14 +396,17 @@ class MergeRequest < ApplicationRecord
end
end
- def commit_shas
- if persisted?
- merge_request_diff.commit_shas
- elsif compare_commits
- compare_commits.to_a.reverse.map(&:sha)
- else
- Array(diff_head_sha)
- end
+ def commit_shas(limit: nil)
+ return merge_request_diff.commit_shas(limit: limit) if persisted?
+
+ shas =
+ if compare_commits
+ compare_commits.to_a.reverse.map(&:sha)
+ else
+ Array(diff_head_sha)
+ end
+
+ limit ? shas.take(limit) : shas
end
# Returns true if there are commits that match at least one commit SHA.
@@ -913,7 +916,7 @@ class MergeRequest < ApplicationRecord
def commit_notes
# Fetch comments only from last 100 commits
- commit_ids = commit_shas.take(100)
+ commit_ids = commit_shas(limit: 100)
Note
.user