Commit 80e984ee authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Fix project lookup in post receive

parent db7e0bf8
class PostReceive class PostReceive
@queue = :post_receive @queue = :post_receive
def self.perform(reponame, oldrev, newrev, ref, identifier) def self.perform(repo_path, oldrev, newrev, ref, identifier)
project = Project.find_by_path(reponame) 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? return false if project.nil?
# Ignore push from non-gitlab users # 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 email = project.commit(newrev).author.email rescue nil
User.find_by_email(email) if email User.find_by_email(email) if email
elsif /^[A-Z0-9._%a-z\-]+@(?:[A-Z0-9a-z\-]+\.)+[A-Za-z]{2,4}$/.match(identifier) elsif /^[A-Z0-9._%a-z\-]+@(?:[A-Z0-9a-z\-]+\.)+[A-Za-z]{2,4}$/.match(identifier)
......
...@@ -6,7 +6,6 @@ ...@@ -6,7 +6,6 @@
while read oldrev newrev ref while read oldrev newrev ref
do do
# For every branch or tag that was pushed, create a Resque job in redis. # For every branch or tag that was pushed, create a Resque job in redis.
pwd=`pwd` repo_path=`pwd`
reponame=`basename "$pwd" | sed s/\.git$//` env -i redis-cli rpush "resque:gitlab:queue:post_receive" "{\"class\":\"PostReceive\",\"args\":[\"$repo_path\",\"$oldrev\",\"$newrev\",\"$ref\",\"$GL_USER\"]}" > /dev/null 2>&1
env -i redis-cli rpush "resque:gitlab:queue:post_receive" "{\"class\":\"PostReceive\",\"args\":[\"$reponame\",\"$oldrev\",\"$newrev\",\"$ref\",\"$GL_USER\"]}" > /dev/null 2>&1
done done
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment