Remove intermediate methods on Branch and Tag classes

This commit is contained in:
Zeger-Jan van de Weg 2018-01-30 11:22:08 +01:00
parent 73bd48de97
commit fd46d6ceb8
No known key found for this signature in database
GPG Key ID: 65F6A8D64A88ABAC
4 changed files with 17 additions and 28 deletions

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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