diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2014-09-02 10:58:54 +0300 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2014-09-02 10:58:54 +0300 |
commit | 730712f77e4ebaf10b6181672b5f85cf984ac27f (patch) | |
tree | beba28ca1d8aee17c0d7b5dcf35f1fb5dda1c607 /app | |
parent | 0306a4e2e4e16443128ced5e8758752c4d9bf3c9 (diff) | |
download | gitlab-ce-730712f77e4ebaf10b6181672b5f85cf984ac27f.tar.gz |
Update post-receive worker for new format
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Diffstat (limited to 'app')
-rw-r--r-- | app/workers/post_receive.rb | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/app/workers/post_receive.rb b/app/workers/post_receive.rb index f110e20bf00..1406cba2db3 100644 --- a/app/workers/post_receive.rb +++ b/app/workers/post_receive.rb @@ -4,8 +4,7 @@ class PostReceive sidekiq_options queue: :post_receive - def perform(repo_path, oldrev, newrev, ref, identifier) - + def perform(repo_path, identifier, changes) if repo_path.start_with?(Gitlab.config.gitlab_shell.repos_path.to_s) repo_path.gsub!(Gitlab.config.gitlab_shell.repos_path.to_s, "") else @@ -22,17 +21,23 @@ class PostReceive return false end - user = identify(identifier, project, newrev) + changes = changes.lines if changes.kind_of?(String) - unless user - log("Triggered hook for non-existing user \"#{identifier} \"") - return false - end + changes.each do |change| + oldrev, newrev, ref = change.strip.split(' ') - if tag?(ref) - GitTagPushService.new.execute(project, user, oldrev, newrev, ref) - else - GitPushService.new.execute(project, user, oldrev, newrev, ref) + @user ||= identify(identifier, project, newrev) + + unless @user + log("Triggered hook for non-existing user \"#{identifier} \"") + return false + end + + if tag?(ref) + GitTagPushService.new.execute(project, @user, oldrev, newrev, ref) + else + GitPushService.new.execute(project, @user, oldrev, newrev, ref) + end end end |