Fix project lookup in post receive
This commit is contained in:
parent
db7e0bf88d
commit
80e984ee5e
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue