summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG3
-rw-r--r--VERSION2
-rw-r--r--lib/gitlab_access.rb7
-rw-r--r--lib/gitlab_net.rb5
4 files changed, 13 insertions, 4 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 3bf0d5d..bae860c 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,6 @@
+v4.1.1
+ - Send (a selection of) git environment variables while making the API call to `/allowed`, !112
+
v4.1.0
- Add support for global custom hooks and chained hook directories (Elan Ruusamäe, Dirk Hörner), !113, !111, !93, !89, #32
- Clear up text with merge request after new branch push (Lisanne Fellinger)
diff --git a/VERSION b/VERSION
index ee74734..627a3f4 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-4.1.0
+4.1.1
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/