Move EmailOnPush logic to async worker
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
This commit is contained in:
parent
fc3878c034
commit
6ac73f45f0
|
@ -33,24 +33,7 @@ class EmailsOnPushService < Service
|
|||
end
|
||||
|
||||
def execute(push_data)
|
||||
before_sha = push_data[:before]
|
||||
after_sha = push_data[:after]
|
||||
branch = push_data[:ref]
|
||||
author_id = push_data[:user_id]
|
||||
|
||||
if before_sha =~ /^000000/ || after_sha =~ /^000000/
|
||||
# skip if new branch was pushed or branch was removed
|
||||
return true
|
||||
end
|
||||
|
||||
compare = Gitlab::Git::Compare.new(project.repository.raw_repository, before_sha, after_sha)
|
||||
|
||||
# Do not send emails if git compare failed
|
||||
return false unless compare && compare.commits.present?
|
||||
|
||||
recipients.split(" ").each do |recipient|
|
||||
Notify.delay.repository_push_email(project_id, recipient, author_id, branch, compare)
|
||||
end
|
||||
EmailsOnPushWorker.perform_async(project_id, recipients, push_data)
|
||||
end
|
||||
|
||||
def fields
|
||||
|
@ -59,4 +42,3 @@ class EmailsOnPushService < Service
|
|||
]
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
class EmailsOnPushWorker
|
||||
include Sidekiq::Worker
|
||||
|
||||
def perform(project_id, recipients, push_data)
|
||||
project = Project.find(project_id)
|
||||
before_sha = push_data["before"]
|
||||
after_sha = push_data["after"]
|
||||
branch = push_data["ref"]
|
||||
author_id = push_data["user_id"]
|
||||
|
||||
if before_sha =~ /^000000/ || after_sha =~ /^000000/
|
||||
# skip if new branch was pushed or branch was removed
|
||||
return true
|
||||
end
|
||||
|
||||
compare = Gitlab::Git::Compare.new(project.repository.raw_repository, before_sha, after_sha)
|
||||
|
||||
# Do not send emails if git compare failed
|
||||
return false unless compare && compare.commits.present?
|
||||
|
||||
recipients.split(" ").each do |recipient|
|
||||
Notify.delay.repository_push_email(project_id, recipient, author_id, branch, compare)
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue