Commit d550933907a51aa6cf5ed8b042db2f7e3323fa8c

Authored by Dmitriy Zaporozhets
1 parent 2428a0b2

Add new method to mailer for deliver emails with push info

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
app/mailers/emails/projects.rb
@@ -13,5 +13,15 @@ module Emails @@ -13,5 +13,15 @@ module Emails
13 mail(to: @user.email, 13 mail(to: @user.email,
14 subject: subject("Project was moved")) 14 subject: subject("Project was moved"))
15 end 15 end
  16 +
  17 + def repository_push_email(project_id, recipient, branch, compare)
  18 + @project = Project.find project_id
  19 + @commits = compare.commits
  20 + @commit = compare.commit
  21 + @diffs = compare.diffs
  22 + @branch = branch
  23 +
  24 + mail(to: recipient, subject: subject("New push to repository"))
  25 + end
16 end 26 end
17 end 27 end
app/models/project_services/emails_on_push_service.rb
@@ -32,8 +32,16 @@ class EmailsOnPushService &lt; Service @@ -32,8 +32,16 @@ class EmailsOnPushService &lt; Service
32 'emails_on_push' 32 'emails_on_push'
33 end 33 end
34 34
35 - def execute  
36 - true 35 + def execute(push_data)
  36 + before_sha = push_data[:before]
  37 + after_sha = push_data[:after]
  38 + branch = push_data[:ref]
  39 +
  40 + compare = Gitlab::Git::Compare.new(project.repository.raw_repository, before_sha, after_sha)
  41 +
  42 + recipients.split(" ").each do |recipient|
  43 + Notify.delay.repository_push_email(project_id, recipient, branch, compare)
  44 + end
37 end 45 end
38 46
39 def fields 47 def fields
app/views/projects/services/_form.html.haml
@@ -34,7 +34,7 @@ @@ -34,7 +34,7 @@
34 - if type == 'text' 34 - if type == 'text'
35 = f.text_field name, class: "input-xlarge", placeholder: placeholder 35 = f.text_field name, class: "input-xlarge", placeholder: placeholder
36 - elsif type == 'textarea' 36 - elsif type == 'textarea'
37 - = f.text_area name, rows: 5, class: "input-xlarge", placeholder: placeholder 37 + = f.text_area name, rows: 5, class: "input-xxlarge", placeholder: placeholder
38 - elsif type == 'checkbox' 38 - elsif type == 'checkbox'
39 = f.check_box name 39 = f.check_box name
40 40