diff --git a/lib/gitlab/git/branch.rb b/lib/gitlab/git/branch.rb index 2c051bd33b9..ae7e88f0503 100644 --- a/lib/gitlab/git/branch.rb +++ b/lib/gitlab/git/branch.rb @@ -1,17 +1,11 @@ module Gitlab module Git class Branch < Ref - class << self - def find(repo, branch_name) - if branch_name.is_a?(Gitlab::Git::Branch) - branch_name - else - repo.find_branch(branch_name) - end - end - - def names_contains_sha(repo, sha, limit: 0) - GitalyClient::RefService.new(repo).branch_names_contains_sha(sha) + def self.find(repo, branch_name) + if branch_name.is_a?(Gitlab::Git::Branch) + branch_name + else + repo.find_branch(branch_name) end end diff --git a/lib/gitlab/git/repository.rb b/lib/gitlab/git/repository.rb index 76b94bf9030..95644dacc4e 100644 --- a/lib/gitlab/git/repository.rb +++ b/lib/gitlab/git/repository.rb @@ -1358,7 +1358,7 @@ module Gitlab def branch_names_contains_sha(sha) gitaly_migrate(:branch_names_contains_sha) do |is_enabled| if is_enabled - Gitlab::Git::Branch.names_contains_sha(self, sha) + gitaly_ref_client.branch_names_contains_sha(sha) else refs_contains_sha(:branch, sha) end @@ -1368,7 +1368,7 @@ module Gitlab def tag_names_contains_sha(sha) gitaly_migrate(:tag_names_contains_sha) do |is_enabled| if is_enabled - Gitlab::Git::Tag.names_contains_sha(self, sha) + gitaly_ref_client.tag_names_contains_sha(sha) else refs_contains_sha(:tag, sha) end diff --git a/lib/gitlab/git/tag.rb b/lib/gitlab/git/tag.rb index c163d383eb0..8a8f7b051ed 100644 --- a/lib/gitlab/git/tag.rb +++ b/lib/gitlab/git/tag.rb @@ -1,12 +1,6 @@ module Gitlab module Git class Tag < Ref - class << self - def names_contains_sha(repo, sha) - GitalyClient::RefService.new(repo).branch_names_contains_sha(sha) - end - end - attr_reader :object_sha def initialize(repository, name, target, target_commit, message = nil) diff --git a/lib/gitlab/gitaly_client/ref_service.rb b/lib/gitlab/gitaly_client/ref_service.rb index 22fee1ff07f..ba6b577fd17 100644 --- a/lib/gitlab/gitaly_client/ref_service.rb +++ b/lib/gitlab/gitaly_client/ref_service.rb @@ -146,7 +146,7 @@ module Gitlab end # Limit: 0 implies no limit, thus all tag names will be returned - def tag_names_containing(sha, limit: 0) + def tag_names_contains_sha(sha, limit: 0) request = Gitaly::ListTagNamesContainingCommitRequest.new( repository: @gitaly_repo, commit_id: sha, @@ -155,10 +155,7 @@ module Gitlab stream = GitalyClient.call(@repository.storage, :ref_service, :list_tag_names_containing_commit, request) - stream.each_with_object([]) do |response, array| - encoded_names = response.tag_names.map { |t| Gitlab::Git.ref_name(t) } - array.concat(encoded_names) - end + consume_ref_contains_sha_response(stream, :tag_names) end # Limit: 0 implies no limit, thus all tag names will be returned @@ -171,10 +168,7 @@ module Gitlab stream = GitalyClient.call(@repository.storage, :ref_service, :list_branch_names_containing_commit, request) - stream.each_with_object([]) do |response, array| - encoded_names = response.branch_names.map { |b| Gitlab::Git.ref_name(b) } - array.concat(encoded_names) - end + consume_ref_contains_sha_response(stream, :branch_names) end private @@ -247,6 +241,13 @@ module Gitlab Gitlab::Git::Commit.decorate(@repository, hash) end + def consume_ref_contains_sha_response(stream, collection_name) + stream.each_with_object([]) do |response, array| + encoded_names = response.send(collection_name).map { |b| Gitlab::Git.ref_name(b) } # rubocop:disable GitlabSecurity/PublicSend + array.concat(encoded_names) + end + end + def invalid_ref!(message) raise Gitlab::Git::Repository::InvalidRef.new(message) end