diff --git a/lib/gitlab/backend/grack_auth.rb b/lib/gitlab/backend/grack_auth.rb
index 8fcafe4ea9df442fd3c41bffa1f366af41839de9..1e858701396fe1921ffa3496983a913682974d7c 100644
--- a/lib/gitlab/backend/grack_auth.rb
+++ b/lib/gitlab/backend/grack_auth.rb
@@ -32,8 +32,7 @@ module Grack
         self.user = User.find_by_email(login) || User.find_by_username(login)
         return false unless user.try(:valid_password?, password)
 
-        # Set GL_ID env variable
-        ENV['GL_ID'] = "user-#{user.id}"
+        Gitlab::ShellEnv.set_env(user)
       end
 
       # Git upload and receive
diff --git a/lib/gitlab/backend/shell.rb b/lib/gitlab/backend/shell.rb
index 85fa5bda0558ea2855d31729b59ee07beaa4a900..b7b92e86a871878f9bdf06bc58afe0ac82bbfc80 100644
--- a/lib/gitlab/backend/shell.rb
+++ b/lib/gitlab/backend/shell.rb
@@ -53,7 +53,6 @@ module Gitlab
       system("/home/git/gitlab-shell/bin/gitlab-keys rm-key #{key_id} \"#{key_content}\"")
     end
 
-
     def url_to_repo path
       Gitlab.config.gitlab_shell.ssh_path_prefix + "#{path}.git"
     end
diff --git a/lib/gitlab/backend/shell_env.rb b/lib/gitlab/backend/shell_env.rb
new file mode 100644
index 0000000000000000000000000000000000000000..157218750938d341d1b644def73bea38c4b099a2
--- /dev/null
+++ b/lib/gitlab/backend/shell_env.rb
@@ -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
diff --git a/lib/gitlab/satellite/action.rb b/lib/gitlab/satellite/action.rb
index ed2541f3998e45c0fd09345d0d37439c9d4ec89d..63303ca3de14c9d31a04f08b7630237e82d8c502 100644
--- a/lib/gitlab/satellite/action.rb
+++ b/lib/gitlab/satellite/action.rb
@@ -17,6 +17,8 @@ module Gitlab
       # * Locks the satellite repo
       # * Yields the prepared satellite repo
       def in_locked_and_timed_satellite
+        Gitlab::ShellEnv.set_env(user)
+
         Grit::Git.with_timeout(options[:git_timeout]) do
           project.satellite.lock do
             return yield project.satellite.repo
@@ -28,6 +30,8 @@ module Gitlab
       rescue Grit::Git::GitTimeout => ex
         Gitlab::GitLogger.error(ex.message)
         return false
+      ensure
+        Gitlab::ShellEnv.reset_env
       end
 
       # * Clears the satellite