summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/gitlab_access.rb7
-rw-r--r--lib/gitlab_net.rb5
2 files changed, 9 insertions, 3 deletions
diff --git a/lib/gitlab_access.rb b/lib/gitlab_access.rb
index 34cf4b1..1b2a065 100644
--- a/lib/gitlab_access.rb
+++ b/lib/gitlab_access.rb
@@ -22,7 +22,12 @@ class GitlabAccess
def exec
status = GitlabMetrics.measure('check-access:git-receive-pack') do
- api.check_access('git-receive-pack', @repo_path, @actor, @changes, @protocol)
+ env = {
+ "GIT_ALTERNATE_OBJECT_DIRECTORIES" => ENV["GIT_ALTERNATE_OBJECT_DIRECTORIES"],
+ "GIT_OBJECT_DIRECTORY" => ENV["GIT_OBJECT_DIRECTORY"]
+ }
+
+ api.check_access('git-receive-pack', @repo_path, @actor, @changes, @protocol, env: env.to_json)
end
raise AccessDeniedError, status.message unless status.allowed?
diff --git a/lib/gitlab_net.rb b/lib/gitlab_net.rb
index ed0b705..8488adc 100644
--- a/lib/gitlab_net.rb
+++ b/lib/gitlab_net.rb
@@ -15,14 +15,15 @@ class GitlabNet
CHECK_TIMEOUT = 5
READ_TIMEOUT = 300
- def check_access(cmd, repo, actor, changes, protocol)
+ def check_access(cmd, repo, actor, changes, protocol, env: {})
changes = changes.join("\n") unless changes.kind_of?(String)
params = {
action: cmd,
changes: changes,
project: sanitize_path(repo),
- protocol: protocol
+ protocol: protocol,
+ env: env
}
if actor =~ /\Akey\-\d+\Z/