Welcome to mirror list, hosted at ThFree Co, Russian Federation.

post_receive.rb « workers « app - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 10128660cd4fedbbc8a07422284598d1ac7f0c3e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class PostReceive
  @queue = :post_receive

  def self.perform(reponame, oldrev, newrev, ref, identifier)
    project = Project.find_by_path(reponame)
    return false if project.nil?

    # Ignore push from non-gitlab users
    user = if identifier.eql? Gitlab.config.gitolite_admin_key 
      email = project.commit(newrev).author.email
      User.find_by_email(email)
    elsif /^[A-Z0-9._%a-z\-]+@(?:[A-Z0-9a-z\-]+\.)+[A-Za-z]{2,4}$/.match(identifier)
      User.find_by_email(identifier)
    else
      Key.find_by_identifier(identifier).try(:user)
    end
    return false unless user

    project.trigger_post_receive(oldrev, newrev, ref, user)
  end
end