diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2012-12-08 20:48:33 +0200 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2012-12-08 20:48:33 +0200 |
commit | 80e984ee5e6d29431a4a87ed26105fb0e8987ffb (patch) | |
tree | 6c1ee9750281d1a6e5c207b49adf0202954d154f | |
parent | db7e0bf88d0d77b187a4dcf58e49d252be554568 (diff) | |
download | gitlab-ce-80e984ee5e6d29431a4a87ed26105fb0e8987ffb.tar.gz |
Fix project lookup in post receive
-rw-r--r-- | app/workers/post_receive.rb | 9 | ||||
-rwxr-xr-x | lib/hooks/post-receive | 5 |
2 files changed, 8 insertions, 6 deletions
diff --git a/app/workers/post_receive.rb b/app/workers/post_receive.rb index 4f4f69c4ece..bf14ab8d579 100644 --- a/app/workers/post_receive.rb +++ b/app/workers/post_receive.rb @@ -1,12 +1,15 @@ class PostReceive @queue = :post_receive - def self.perform(reponame, oldrev, newrev, ref, identifier) - project = Project.find_by_path(reponame) + def self.perform(repo_path, oldrev, newrev, ref, identifier) + repo_path = repo_path.gsub(Gitlab.config.git_base_path, "") + repo_path = repo_path.gsub(/.git$/, "") + + project = Project.find_with_namespace(repo_path) return false if project.nil? # Ignore push from non-gitlab users - user = if identifier.eql? Gitlab.config.gitolite_admin_key + user = if identifier.eql? Gitlab.config.gitolite_admin_key email = project.commit(newrev).author.email rescue nil User.find_by_email(email) if email elsif /^[A-Z0-9._%a-z\-]+@(?:[A-Z0-9a-z\-]+\.)+[A-Za-z]{2,4}$/.match(identifier) diff --git a/lib/hooks/post-receive b/lib/hooks/post-receive index 4a3ce372eb8..ebd9e1a028a 100755 --- a/lib/hooks/post-receive +++ b/lib/hooks/post-receive @@ -6,7 +6,6 @@ while read oldrev newrev ref do # For every branch or tag that was pushed, create a Resque job in redis. - pwd=`pwd` - reponame=`basename "$pwd" | sed s/\.git$//` - env -i redis-cli rpush "resque:gitlab:queue:post_receive" "{\"class\":\"PostReceive\",\"args\":[\"$reponame\",\"$oldrev\",\"$newrev\",\"$ref\",\"$GL_USER\"]}" > /dev/null 2>&1 + repo_path=`pwd` + env -i redis-cli rpush "resque:gitlab:queue:post_receive" "{\"class\":\"PostReceive\",\"args\":[\"$repo_path\",\"$oldrev\",\"$newrev\",\"$ref\",\"$GL_USER\"]}" > /dev/null 2>&1 done |