Commit 7121a58eb9e4dcb63d762e17a668f3bb4b0eaa85

Authored by Dmitriy Zaporozhets
1 parent f72dc7f7

Advanced logging for post-receive worker

app/workers/post_receive.rb
@@ -4,12 +4,22 @@ class PostReceive @@ -4,12 +4,22 @@ class PostReceive
4 sidekiq_options queue: :post_receive 4 sidekiq_options queue: :post_receive
5 5
6 def perform(repo_path, oldrev, newrev, ref, identifier) 6 def perform(repo_path, oldrev, newrev, ref, identifier)
7 - repo_path.gsub!(Gitlab.config.gitolite.repos_path.to_s, "") 7 +
  8 + if repo_path.start_with?(Gitlab.config.gitolite.repos_path.to_s)
  9 + repo_path.gsub!(Gitlab.config.gitolite.repos_path.to_s, "")
  10 + else
  11 + Gitlab::GitLogger.error("POST-RECEIVE: Check gitlab.yml config for correct gitolite.repos_path variable. \"#{Gitlab.config.gitolite.repos_path}\" does not match \"#{repo_path}\"")
  12 + end
  13 +
8 repo_path.gsub!(/.git$/, "") 14 repo_path.gsub!(/.git$/, "")
9 repo_path.gsub!(/^\//, "") 15 repo_path.gsub!(/^\//, "")
10 16
11 project = Project.find_with_namespace(repo_path) 17 project = Project.find_with_namespace(repo_path)
12 - return false if project.nil? 18 +
  19 + if project.nil?
  20 + Gitlab::GitLogger.error("POST-RECEIVE: Triggered hook for non-existing project with full path \"#{repo_path} \"")
  21 + return false
  22 + end
13 23
14 # Ignore push from non-gitlab users 24 # Ignore push from non-gitlab users
15 user = if identifier.eql? Gitlab.config.gitolite.admin_key 25 user = if identifier.eql? Gitlab.config.gitolite.admin_key
config/gitlab.yml.example
@@ -106,7 +106,8 @@ backup: @@ -106,7 +106,8 @@ backup:
106 ## Gitolite settings 106 ## Gitolite settings
107 gitolite: 107 gitolite:
108 admin_uri: git@localhost:gitolite-admin 108 admin_uri: git@localhost:gitolite-admin
109 - # repos_path must not be a symlink 109 +
  110 + # REPOS_PATH MUST NOT BE A SYMLINK!!!
110 repos_path: /home/git/repositories/ 111 repos_path: /home/git/repositories/
111 hooks_path: /home/git/.gitolite/hooks/ 112 hooks_path: /home/git/.gitolite/hooks/
112 admin_key: gitlab 113 admin_key: gitlab