diff options
Diffstat (limited to 'app/models/commit_collection.rb')
-rw-r--r-- | app/models/commit_collection.rb | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/app/models/commit_collection.rb b/app/models/commit_collection.rb index 47ecdfa8574..eb7db0fc9b4 100644 --- a/app/models/commit_collection.rb +++ b/app/models/commit_collection.rb @@ -118,4 +118,21 @@ class CommitCollection def next_page @pagination.next_page end + + def load_tags + oids = commits.map(&:id) + references = repository.list_refs([Gitlab::Git::TAG_REF_PREFIX], pointing_at_oids: oids, peel_tags: true) + oid_to_references = references.group_by { |reference| reference.peeled_target.presence || reference.target } + + return self if oid_to_references.empty? + + commits.each do |commit| + grouped_references = oid_to_references[commit.id] + next unless grouped_references + + commit.referenced_by = grouped_references.map(&:name) + end + + self + end end |