summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/gitlab_access_status.rb7
-rw-r--r--lib/gitlab_shell.rb15
2 files changed, 15 insertions, 7 deletions
diff --git a/lib/gitlab_access_status.rb b/lib/gitlab_access_status.rb
index 6a906f1..a6a274c 100644
--- a/lib/gitlab_access_status.rb
+++ b/lib/gitlab_access_status.rb
@@ -1,18 +1,19 @@
require 'json'
class GitAccessStatus
- attr_reader :message, :gl_repository, :repository_path
+ attr_reader :message, :gl_repository, :repository_path, :gitaly
- def initialize(status, message, gl_repository, repository_path)
+ def initialize(status, message, gl_repository, repository_path, gitaly)
@status = status
@message = message
@gl_repository = gl_repository
@repository_path = repository_path
+ @gitaly = gitaly
end
def self.create_from_json(json)
values = JSON.parse(json)
- self.new(values["status"], values["message"], values["gl_repository"], values["repository_path"])
+ self.new(values["status"], values["message"], values["gl_repository"], values["repository_path"], values["gitaly"])
end
def allowed?
diff --git a/lib/gitlab_shell.rb b/lib/gitlab_shell.rb
index e7d0254..f3981fb 100644
--- a/lib/gitlab_shell.rb
+++ b/lib/gitlab_shell.rb
@@ -17,7 +17,7 @@ class GitlabShell
API_COMMANDS = %w(2fa_recovery_codes)
GL_PROTOCOL = 'ssh'.freeze
- attr_accessor :key_id, :gl_repository, :repo_name, :command, :git_access
+ attr_accessor :key_id, :gl_repository, :repo_name, :command, :git_access, :repository, :gitaly_address
attr_reader :repo_path
def initialize(key_id)
@@ -99,6 +99,7 @@ class GitlabShell
self.repo_path = status.repository_path
@gl_repository = status.gl_repository
+ @gitaly = status.gitaly
end
def process_cmd(args)
@@ -115,15 +116,16 @@ class GitlabShell
executable = @command
args = [repo_path]
- if GITALY_MIGRATED_COMMANDS.has_key?(executable)
+ if GITALY_MIGRATED_COMMANDS.has_key?(executable) && @gitaly
executable = GITALY_MIGRATED_COMMANDS[executable]
- gitaly_address = '' # would be returned by gitlab-rails internal API
+ gitaly_address = @gitaly['address']
# The entire gitaly_request hash should be built in gitlab-ce and passed
# on as-is. For now we build a fake one on the spot.
gitaly_request = JSON.dump({
- 'repository' => { 'path' => repo_path },
+ 'repository' => @gitaly['repository'],
+ 'gl_repository' => @gl_repository,
'gl_id' => @key_id,
})
@@ -153,6 +155,11 @@ class GitlabShell
'GL_PROTOCOL' => GL_PROTOCOL,
'GL_REPOSITORY' => @gl_repository
}
+ if @gitaly && @gitaly.has?('token')
+ env.merge!({
+ 'GITALY_TOKEN' => @gitaly['token']
+ })
+ end
if git_trace_available?
env.merge!({