subject: subject("Project was moved"))
end
- def repository_push_email(project_id, recipient, branch, compare)
- @project = Project.find project_id
- @commits = Commit.decorate compare.commits
- @commit = compare.commit
+ def repository_push_email(project_id, recipient, author_id, branch, compare)
+ @project = Project.find(project_id)
+ @author = User.find(author_id)
+ @commits = Commit.decorate(compare.commits)
@diffs = compare.diffs
@branch = branch
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, branch, compare)
+ Notify.delay.repository_push_email(project_id, recipient, author_id, branch, compare)
end
end