Commit f5114187 authored by Sean McGivern's avatar Sean McGivern

Merge branch 'dm-batchloader-project' into 'master'

Include project in BatchLoader key to prevent returning blobs for the wrong project

Closes gitlab-ee#4325

See merge request gitlab-org/gitlab-ce!15936
parents 78ba3a9a f871027e
...@@ -77,9 +77,15 @@ class Blob < SimpleDelegator ...@@ -77,9 +77,15 @@ class Blob < SimpleDelegator
end end
def self.lazy(project, commit_id, path) def self.lazy(project, commit_id, path)
BatchLoader.for(commit_id: commit_id, path: path).batch do |items, loader| BatchLoader.for({ project: project, commit_id: commit_id, path: path }).batch do |items, loader|
project.repository.blobs_at(items.map(&:values)).each do |blob| items_by_project = items.group_by { |i| i[:project] }
loader.call({ commit_id: blob.commit_id, path: blob.path }, blob) if blob
items_by_project.each do |project, items|
items = items.map { |i| i.values_at(:commit_id, :path) }
project.repository.blobs_at(items).each do |blob|
loader.call({ project: blob.project, commit_id: blob.commit_id, path: blob.path }, blob) if blob
end
end end
end end
end end
......
RSpec.configure do |config|
config.after do
BatchLoader::Executor.clear_current
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment