diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-06-20 14:10:13 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-06-20 14:10:13 +0300 |
commit | 0ea3fcec397b69815975647f5e2aa5fe944a8486 (patch) | |
tree | 7979381b89d26011bcf9bdc989a40fcc2f1ed4ff /app/controllers/projects/compare_controller.rb | |
parent | 72123183a20411a36d607d70b12d57c484394c8e (diff) |
Add latest changes from gitlab-org/gitlab@15-1-stable-eev15.1.0-rc42
Diffstat (limited to 'app/controllers/projects/compare_controller.rb')
-rw-r--r-- | app/controllers/projects/compare_controller.rb | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/app/controllers/projects/compare_controller.rb b/app/controllers/projects/compare_controller.rb index 3ced5f21b24..09a06aaed8c 100644 --- a/app/controllers/projects/compare_controller.rb +++ b/app/controllers/projects/compare_controller.rb @@ -102,7 +102,11 @@ class Projects::CompareController < Projects::ApplicationController # source == head_ref == to def source_project - project + strong_memoize(:source_project) do + # Eager load project's avatar url to prevent batch loading + # for all forked projects + project&.tap(&:avatar_url) + end end def compare @@ -112,17 +116,24 @@ class Projects::CompareController < Projects::ApplicationController end def start_ref - @start_ref ||= Addressable::URI.unescape(compare_params[:from]) + @start_ref ||= Addressable::URI.unescape(compare_params[:from]).presence end def head_ref return @ref if defined?(@ref) - @ref = @head_ref = Addressable::URI.unescape(compare_params[:to]) + @ref = @head_ref = Addressable::URI.unescape(compare_params[:to]).presence end def define_commits - @commits = compare.present? ? set_commits_for_rendering(@compare.commits) : [] + strong_memoize(:commits) do + if compare.present? + commits = compare.commits.with_markdown_cache.with_latest_pipeline(head_ref) + set_commits_for_rendering(commits) + else + [] + end + end end def define_diffs |