Commit 7121a58eb9e4dcb63d762e17a668f3bb4b0eaa85
1 parent
f72dc7f7
Exists in
master
and in
4 other branches
Advanced logging for post-receive worker
Showing
2 changed files
with
14 additions
and
3 deletions
Show diff stats
app/workers/post_receive.rb
| ... | ... | @@ -4,12 +4,22 @@ class PostReceive |
| 4 | 4 | sidekiq_options queue: :post_receive |
| 5 | 5 | |
| 6 | 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 | 14 | repo_path.gsub!(/.git$/, "") |
| 9 | 15 | repo_path.gsub!(/^\//, "") |
| 10 | 16 | |
| 11 | 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 | 24 | # Ignore push from non-gitlab users |
| 15 | 25 | user = if identifier.eql? Gitlab.config.gitolite.admin_key | ... | ... |
config/gitlab.yml.example
| ... | ... | @@ -106,7 +106,8 @@ backup: |
| 106 | 106 | ## Gitolite settings |
| 107 | 107 | gitolite: |
| 108 | 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 | 111 | repos_path: /home/git/repositories/ |
| 111 | 112 | hooks_path: /home/git/.gitolite/hooks/ |
| 112 | 113 | admin_key: gitlab | ... | ... |