Use persisted version of methods that lead to Gitaly find_commit RPCs for the MR widget
Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.
These are the current calls that requests Gitaly's find_commit on MergeRequestsController#show.json (widget endpoint):
Stacktraces
"/Users/osw/projects/gitlab/gitlab-development-kit/gitlab/app/models/repository.rb:999:in `find_commit'",
"/Users/osw/projects/gitlab/gitlab-development-kit/gitlab/app/models/repository.rb:106:in `commit'",
"/Users/osw/projects/gitlab/gitlab-development-kit/gitlab/app/models/project.rb:532:in `commit'",
"/Users/osw/projects/gitlab/gitlab-development-kit/gitlab/app/models/ci/pipeline.rb:394:in `latest?'"
"/Users/osw/projects/gitlab/gitlab-development-kit/gitlab/app/models/repository.rb:999:in `find_commit'",
"/Users/osw/projects/gitlab/gitlab-development-kit/gitlab/app/models/repository.rb:106:in `commit'",
"/Users/osw/projects/gitlab/gitlab-development-kit/gitlab/app/models/merge_request.rb:449:in `block in source_branch_head'",
"/Users/osw/projects/gitlab/gitlab-development-kit/gitlab/lib/gitlab/utils/strong_memoize.rb:26:in `strong_memoize'",
"/Users/osw/projects/gitlab/gitlab-development-kit/gitlab/app/models/merge_request.rb:447:in `source_branch_head'",
"/Users/osw/projects/gitlab/gitlab-development-kit/gitlab/app/models/merge_request.rb:694:in `can_remove_source_branch?'",
"/Users/osw/projects/gitlab/gitlab-development-kit/gitlab/app/models/repository.rb:996:in `find_commit'",
"/Users/osw/projects/gitlab/gitlab-development-kit/gitlab/app/models/repository.rb:106:in `commit'",
"/Users/osw/projects/gitlab/gitlab-development-kit/gitlab/app/models/merge_request.rb:456:in `block in target_branch_head'",
"/Users/osw/projects/gitlab/gitlab-development-kit/gitlab/lib/gitlab/utils/strong_memoize.rb:26:in `strong_memoize'",
"/Users/osw/projects/gitlab/gitlab-development-kit/gitlab/app/models/merge_request.rb:455:in `target_branch_head'",
"/Users/osw/projects/gitlab/gitlab-development-kit/gitlab/app/models/merge_request.rb:470:in `target_branch_sha'",
"/Users/osw/projects/gitlab/gitlab-development-kit/gitlab/app/models/merge_request.rb:974:in `diverged_commits_count'",
"/Users/osw/projects/gitlab/gitlab-development-kit/gitlab/app/models/merge_request.rb:995:in `diverged_from_target_branch?'"
Instead fetching the repo:
- I believe we can use
MergeRequest#diff_start_commitinsteadMergeRequest#target_branch_head. - I believe we can use
MergeRequest#diff_head_commitinsteadMergeRequest#source_branch_head.
Still not sure about a caching solution on Ci::Pipeline#latest?.
cc @smcgivern
Edited by 🤖 GitLab Bot 🤖