Gitlab::ShellEnv added

This commit is contained in:
Dmitriy Zaporozhets 2013-02-14 15:17:43 +02:00
parent b698094d4d
commit 49cf9badbc
4 changed files with 22 additions and 3 deletions

View file

@ -32,8 +32,7 @@ module Grack
self.user = User.find_by_email(login) || User.find_by_username(login) self.user = User.find_by_email(login) || User.find_by_username(login)
return false unless user.try(:valid_password?, password) return false unless user.try(:valid_password?, password)
# Set GL_ID env variable Gitlab::ShellEnv.set_env(user)
ENV['GL_ID'] = "user-#{user.id}"
end end
# Git upload and receive # Git upload and receive

View file

@ -53,7 +53,6 @@ module Gitlab
system("/home/git/gitlab-shell/bin/gitlab-keys rm-key #{key_id} \"#{key_content}\"") system("/home/git/gitlab-shell/bin/gitlab-keys rm-key #{key_id} \"#{key_content}\"")
end end
def url_to_repo path def url_to_repo path
Gitlab.config.gitlab_shell.ssh_path_prefix + "#{path}.git" Gitlab.config.gitlab_shell.ssh_path_prefix + "#{path}.git"
end end

View file

@ -0,0 +1,17 @@
module Gitlab
# This module provide 2 methods
# to set specific ENV variabled for GitLab Shell
module ShellEnv
extend self
def set_env(user)
# Set GL_ID env variable
ENV['GL_ID'] = "user-#{user.id}"
end
def reset_env
# Reset GL_ID env variable
ENV['GL_ID'] = nil
end
end
end

View file

@ -17,6 +17,8 @@ module Gitlab
# * Locks the satellite repo # * Locks the satellite repo
# * Yields the prepared satellite repo # * Yields the prepared satellite repo
def in_locked_and_timed_satellite def in_locked_and_timed_satellite
Gitlab::ShellEnv.set_env(user)
Grit::Git.with_timeout(options[:git_timeout]) do Grit::Git.with_timeout(options[:git_timeout]) do
project.satellite.lock do project.satellite.lock do
return yield project.satellite.repo return yield project.satellite.repo
@ -28,6 +30,8 @@ module Gitlab
rescue Grit::Git::GitTimeout => ex rescue Grit::Git::GitTimeout => ex
Gitlab::GitLogger.error(ex.message) Gitlab::GitLogger.error(ex.message)
return false return false
ensure
Gitlab::ShellEnv.reset_env
end end
# * Clears the satellite # * Clears the satellite