Commit e4ac948c authored by Jacob Vosmaer's avatar Jacob Vosmaer

Send more Gitaly::Repository fields

parent 9216f59a
...@@ -1156,6 +1156,9 @@ class Repository ...@@ -1156,6 +1156,9 @@ class Repository
@project.repository_storage_path @project.repository_storage_path
end end
delegate :gitaly_repository, to: :raw_repository
delegate :gitaly_channel, to: :raw_repository
def initialize_raw_repository def initialize_raw_repository
Gitlab::Git::Repository.new(project.repository_storage, path_with_namespace + '.git') Gitlab::Git::Repository.new(project.repository_storage, path_with_namespace + '.git')
end end
......
...@@ -968,6 +968,14 @@ module Gitlab ...@@ -968,6 +968,14 @@ module Gitlab
@attributes.attributes(path) @attributes.attributes(path)
end end
def gitaly_repository
Gitlab::GitalyClient::Util.repository(@repository_storage, @relative_path)
end
def gitaly_channel
Gitlab::GitalyClient::Util.channel(@repository_storage)
end
private private
# Get the content of a blob for a given commit. If the blob is a commit # Get the content of a blob for a given commit. If the blob is a commit
......
...@@ -7,14 +7,13 @@ module Gitlab ...@@ -7,14 +7,13 @@ module Gitlab
class << self class << self
def diff_from_parent(commit, options = {}) def diff_from_parent(commit, options = {})
project = commit.project repository = commit.project.repository
channel = GitalyClient.get_channel(project.repository_storage) gitaly_repo = repository.gitaly_repository
stub = Gitaly::Diff::Stub.new(nil, nil, channel_override: channel) stub = Gitaly::Diff::Stub.new(nil, nil, channel_override: repository.gitaly_channel)
repo = Gitaly::Repository.new(path: project.repository.path_to_repo)
parent = commit.parents[0] parent = commit.parents[0]
parent_id = parent ? parent.id : EMPTY_TREE_ID parent_id = parent ? parent.id : EMPTY_TREE_ID
request = Gitaly::CommitDiffRequest.new( request = Gitaly::CommitDiffRequest.new(
repository: repo, repository: gitaly_repo,
left_commit_id: parent_id, left_commit_id: parent_id,
right_commit_id: commit.id right_commit_id: commit.id
) )
...@@ -23,12 +22,10 @@ module Gitlab ...@@ -23,12 +22,10 @@ module Gitlab
end end
def is_ancestor(repository, ancestor_id, child_id) def is_ancestor(repository, ancestor_id, child_id)
project = Project.find_by_path(repository.path) gitaly_repo = repository.gitaly_repository
channel = GitalyClient.get_channel(project.repository_storage) stub = Gitaly::Commit::Stub.new(nil, nil, channel_override: repository.gitaly_channel)
stub = Gitaly::Commit::Stub.new(nil, nil, channel_override: channel)
repo = Gitaly::Repository.new(path: repository.path_to_repo)
request = Gitaly::CommitIsAncestorRequest.new( request = Gitaly::CommitIsAncestorRequest.new(
repository: repo, repository: gitaly_repo,
ancestor_id: ancestor_id, ancestor_id: ancestor_id,
child_id: child_id child_id: child_id
) )
......
...@@ -4,7 +4,8 @@ module Gitlab ...@@ -4,7 +4,8 @@ module Gitlab
attr_accessor :stub attr_accessor :stub
def initialize(repository_storage, relative_path) def initialize(repository_storage, relative_path)
@channel, @repository = Util.process_path(repository_storage, relative_path) @channel = Util.channel(repository_storage)
@repository = Util.repository(repository_storage, relative_path)
@stub = Gitaly::Notifications::Stub.new(nil, nil, channel_override: @channel) @stub = Gitaly::Notifications::Stub.new(nil, nil, channel_override: @channel)
end end
......
...@@ -4,7 +4,8 @@ module Gitlab ...@@ -4,7 +4,8 @@ module Gitlab
attr_accessor :stub attr_accessor :stub
def initialize(repository_storage, relative_path) def initialize(repository_storage, relative_path)
@channel, @repository = Util.process_path(repository_storage, relative_path) @channel = Util.channel(repository_storage)
@repository = Util.repository(repository_storage, relative_path)
@stub = Gitaly::Ref::Stub.new(nil, nil, channel_override: @channel) @stub = Gitaly::Ref::Stub.new(nil, nil, channel_override: @channel)
end end
......
module Gitlab module Gitlab
module GitalyClient module GitalyClient
module Util module Util
class << self
def self.process_path(repository_storage, relative_path) def self.process_path(repository_storage, relative_path)
channel = GitalyClient.get_channel(repository_storage) [channel(repository_storage), repository(repository_storage, relative_path)]
storage_path = Gitlab.config.repositories.storages[repository_storage]['path'] end
repository = Gitaly::Repository.new(path: File.join(storage_path, relative_path))
def repository(repository_storage, relative_path)
Gitaly::Repository.new(
path: File.join(Gitlab.config.repositories.storages[repository_storage]['path'], relative_path),
storage_name: repository_storage,
relative_path: relative_path,
)
end
[channel, repository] def channel(repository_storage)
GitalyClient.get_channel(repository_storage)
end
end end
end end
end end
......
...@@ -24,14 +24,8 @@ module Gitlab ...@@ -24,14 +24,8 @@ module Gitlab
} }
if Gitlab.config.gitaly.enabled if Gitlab.config.gitaly.enabled
storage = repository.project.repository_storage address = Gitlab::GitalyClient.get_address(repository.project.repository_storage)
address = Gitlab::GitalyClient.get_address(storage) params[:Repository] = repository.gitaly_repository.to_h
# TODO: use GitalyClient code to assemble the Repository message
params[:Repository] = Gitaly::Repository.new(
path: repo_path,
storage_name: storage,
relative_path: Gitlab::RepoPath.strip_storage_path(repo_path),
).to_h
feature_enabled = case action.to_s feature_enabled = case action.to_s
when 'git_receive_pack' when 'git_receive_pack'
......
...@@ -4,7 +4,7 @@ describe Gitlab::GitalyClient::Commit do ...@@ -4,7 +4,7 @@ describe Gitlab::GitalyClient::Commit do
describe '.diff_from_parent' do describe '.diff_from_parent' do
let(:diff_stub) { double('Gitaly::Diff::Stub') } let(:diff_stub) { double('Gitaly::Diff::Stub') }
let(:project) { create(:project, :repository) } let(:project) { create(:project, :repository) }
let(:repository_message) { Gitaly::Repository.new(path: project.repository.path) } let(:repository_message) { project.repository.gitaly_repository }
let(:commit) { project.commit('913c66a37b4a45b9769037c55c2d238bd0942d2e') } let(:commit) { project.commit('913c66a37b4a45b9769037c55c2d238bd0942d2e') }
before do before do
......
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