Merge branch 'workhorse-gitaly-repository' into 'master'
Pass Gitaly 'Repository' messages to workhorse for Git HTTP Closes gitaly#148 See merge request !10343
This commit is contained in:
commit
b23b76d8eb
2
Gemfile
2
Gemfile
|
@ -352,4 +352,4 @@ gem 'vmstat', '~> 2.3.0'
|
|||
gem 'sys-filesystem', '~> 1.1.6'
|
||||
|
||||
# Gitaly GRPC client
|
||||
gem 'gitaly', '~> 0.3.0'
|
||||
gem 'gitaly', '~> 0.5.0'
|
||||
|
|
|
@ -253,7 +253,7 @@ GEM
|
|||
json
|
||||
get_process_mem (0.2.0)
|
||||
gherkin-ruby (0.3.2)
|
||||
gitaly (0.3.0)
|
||||
gitaly (0.5.0)
|
||||
google-protobuf (~> 3.1)
|
||||
grpc (~> 1.0)
|
||||
github-linguist (4.7.6)
|
||||
|
@ -899,7 +899,7 @@ DEPENDENCIES
|
|||
fuubar (~> 2.0.0)
|
||||
gemnasium-gitlab-service (~> 0.2)
|
||||
gemojione (~> 3.0)
|
||||
gitaly (~> 0.3.0)
|
||||
gitaly (~> 0.5.0)
|
||||
github-linguist (~> 4.7.0)
|
||||
gitlab-flowdock-git-hook (~> 1.0.1)
|
||||
gitlab-markup (~> 1.5.1)
|
||||
|
|
|
@ -17,14 +17,22 @@ module Gitlab
|
|||
|
||||
class << self
|
||||
def git_http_ok(repository, user)
|
||||
repo_path = repository.path_to_repo
|
||||
params = {
|
||||
GL_ID: Gitlab::GlId.gl_id(user),
|
||||
RepoPath: repository.path_to_repo,
|
||||
RepoPath: repo_path,
|
||||
}
|
||||
|
||||
if Gitlab.config.gitaly.enabled
|
||||
address = Gitlab::GitalyClient.get_address(repository.project.repository_storage)
|
||||
storage = repository.project.repository_storage
|
||||
address = Gitlab::GitalyClient.get_address(storage)
|
||||
params[:GitalySocketPath] = URI(address).path
|
||||
# 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
|
||||
end
|
||||
|
||||
params
|
||||
|
|
|
@ -179,10 +179,11 @@ describe Gitlab::Workhorse, lib: true do
|
|||
|
||||
describe '.git_http_ok' do
|
||||
let(:user) { create(:user) }
|
||||
let(:repo_path) { repository.path_to_repo }
|
||||
|
||||
subject { described_class.git_http_ok(repository, user) }
|
||||
|
||||
it { expect(subject).to eq({ GL_ID: "user-#{user.id}", RepoPath: repository.path_to_repo }) }
|
||||
it { expect(subject).to eq({ GL_ID: "user-#{user.id}", RepoPath: repo_path }) }
|
||||
|
||||
context 'when Gitaly is enabled' do
|
||||
before do
|
||||
|
@ -192,6 +193,11 @@ describe Gitlab::Workhorse, lib: true do
|
|||
it 'includes Gitaly params in the returned value' do
|
||||
gitaly_socket_path = URI(Gitlab::GitalyClient.get_address('default')).path
|
||||
expect(subject).to include({ GitalySocketPath: gitaly_socket_path })
|
||||
expect(subject[:Repository]).to include({
|
||||
path: repo_path,
|
||||
storage_name: 'default',
|
||||
relative_path: project.full_path + '.git',
|
||||
})
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue