summaryrefslogtreecommitdiff
path: root/lib/api/helpers
diff options
context:
space:
mode:
authorAhmad Sherif <me@ahmadsherif.com>2017-11-14 16:14:35 +0100
committerAhmad Sherif <me@ahmadsherif.com>2017-11-14 20:26:39 +0100
commit52bfd064627c6a63b82bc81e7ebabac299b25eed (patch)
treeca5160fb5bf53efd77a519a47ec8e063212f3bb5 /lib/api/helpers
parent3730d89fe8578ce827468ebebef9cd6e33ae89f4 (diff)
downloadgitlab-ce-52bfd064627c6a63b82bc81e7ebabac299b25eed.tar.gz
Use relative git object paths to construct absolute ones before setting Envfix/git-env-repo-paths
Diffstat (limited to 'lib/api/helpers')
-rw-r--r--lib/api/helpers/internal_helpers.rb12
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/api/helpers/internal_helpers.rb b/lib/api/helpers/internal_helpers.rb
index 4c0db4d42b1..4b3c473b0bb 100644
--- a/lib/api/helpers/internal_helpers.rb
+++ b/lib/api/helpers/internal_helpers.rb
@@ -36,6 +36,18 @@ module API
{}
end
+ def fix_git_env_repository_paths(env, repository_path)
+ if obj_dir_relative = env['GIT_OBJECT_DIRECTORY_RELATIVE'].presence
+ env['GIT_OBJECT_DIRECTORY'] = File.join(repository_path, obj_dir_relative)
+ end
+
+ if alt_obj_dirs_relative = env['GIT_ALTERNATE_OBJECT_DIRECTORIES_RELATIVE'].presence
+ env['GIT_ALTERNATE_OBJECT_DIRECTORIES'] = alt_obj_dirs_relative.map { |dir| File.join(repository_path, dir) }
+ end
+
+ env
+ end
+
def log_user_activity(actor)
commands = Gitlab::GitAccess::DOWNLOAD_COMMANDS