Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Boxiang Sun
gitlab-ce
Commits
85af3e82
Commit
85af3e82
authored
Feb 25, 2015
by
Douwe Maan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add option to disable code diffs to EmailOnPush.
See #1950
parent
e0c186c3
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
60 additions
and
42 deletions
+60
-42
app/controllers/admin/services_controller.rb
app/controllers/admin/services_controller.rb
+1
-1
app/controllers/projects/services_controller.rb
app/controllers/projects/services_controller.rb
+1
-1
app/mailers/emails/projects.rb
app/mailers/emails/projects.rb
+2
-1
app/models/project_services/emails_on_push_service.rb
app/models/project_services/emails_on_push_service.rb
+7
-1
app/views/notify/repository_push_email.html.haml
app/views/notify/repository_push_email.html.haml
+23
-22
app/views/notify/repository_push_email.text.haml
app/views/notify/repository_push_email.text.haml
+16
-14
app/workers/emails_on_push_worker.rb
app/workers/emails_on_push_worker.rb
+10
-2
No files found.
app/controllers/admin/services_controller.rb
View file @
85af3e82
...
...
@@ -46,7 +46,7 @@ class Admin::ServicesController < Admin::ApplicationController
:user_key
,
:device
,
:priority
,
:sound
,
:bamboo_url
,
:username
,
:password
,
:build_key
,
:server
,
:teamcity_url
,
:build_type
,
:description
,
:issues_url
,
:new_issue_url
,
:restrict_to_branch
,
:send_from_committer_email
:send_from_committer_email
,
:disable_diffs
])
end
end
app/controllers/projects/services_controller.rb
View file @
85af3e82
...
...
@@ -51,7 +51,7 @@ class Projects::ServicesController < Projects::ApplicationController
:user_key
,
:device
,
:priority
,
:sound
,
:bamboo_url
,
:username
,
:password
,
:build_key
,
:server
,
:teamcity_url
,
:build_type
,
:description
,
:issues_url
,
:new_issue_url
,
:restrict_to_branch
,
:send_from_committer_email
:send_from_committer_email
,
:disable_diffs
)
end
end
app/mailers/emails/projects.rb
View file @
85af3e82
...
...
@@ -16,13 +16,14 @@ module Emails
subject:
subject
(
"Project was moved"
))
end
def
repository_push_email
(
project_id
,
recipient
,
author_id
,
branch
,
compare
,
send_from_committer_email
=
false
)
def
repository_push_email
(
project_id
,
recipient
,
author_id
,
branch
,
compare
,
send_from_committer_email
=
false
,
disable_diffs
=
false
)
@project
=
Project
.
find
(
project_id
)
@author
=
User
.
find
(
author_id
)
@compare
=
compare
@commits
=
Commit
.
decorate
(
compare
.
commits
)
@diffs
=
compare
.
diffs
@branch
=
branch
.
gsub
(
"refs/heads/"
,
""
)
@disable_diffs
=
disable_diffs
@subject
=
"[
#{
@project
.
path_with_namespace
}
][
#{
@branch
}
] "
...
...
app/models/project_services/emails_on_push_service.rb
View file @
85af3e82
...
...
@@ -15,6 +15,7 @@
class
EmailsOnPushService
<
Service
prop_accessor
:send_from_committer_email
prop_accessor
:disable_diffs
prop_accessor
:recipients
validates
:recipients
,
presence:
true
,
if: :activated?
...
...
@@ -34,13 +35,18 @@ class EmailsOnPushService < Service
self
.
send_from_committer_email
==
"1"
end
def
disable_diffs?
self
.
disable_diffs
==
"1"
end
def
execute
(
push_data
)
EmailsOnPushWorker
.
perform_async
(
project_id
,
recipients
,
push_data
,
se
lf
.
send_from_committer_email
?
)
EmailsOnPushWorker
.
perform_async
(
project_id
,
recipients
,
push_data
,
se
nd_from_committer_email?
,
disable_diffs
?
)
end
def
fields
[
{
type:
'checkbox'
,
name:
'send_from_committer_email'
,
title:
"Send from committer email if domain matches"
},
{
type:
'checkbox'
,
name:
'disable_diffs'
,
title:
"Disable code diffs"
},
{
type:
'textarea'
,
name:
'recipients'
,
placeholder:
'Emails separated by whitespace'
},
]
end
...
...
app/views/notify/repository_push_email.html.haml
View file @
85af3e82
...
...
@@ -16,7 +16,7 @@
%ul
-
@diffs
.
each_with_index
do
|
diff
,
i
|
%li
.file-stats
%a
{
href:
"#
diff-#{i}"
}
%a
{
href:
"#
{@target_url if @disable_diffs}#diff-#{i}"
}
-
if
diff
.
deleted_file
%span
.deleted-file
−
...
...
@@ -32,27 +32,28 @@
-
else
=
diff
.
new_path
%h4
Changes:
-
@diffs
.
each_with_index
do
|
diff
,
i
|
%li
{
id:
"diff-#{i}"
}
%a
{
href:
@target_url
+
"#diff-#{i}"
}
-
if
diff
.
deleted_file
%strong
=
diff
.
old_path
deleted
-
elsif
diff
.
renamed_file
%strong
=
diff
.
old_path
→
%strong
=
diff
.
new_path
-
else
%strong
=
diff
.
new_path
%hr
%pre
=
color_email_diff
(
diff
.
diff
)
%br
-
unless
@disable_diffs
%h4
Changes:
-
@diffs
.
each_with_index
do
|
diff
,
i
|
%li
{
id:
"diff-#{i}"
}
%a
{
href:
@target_url
+
"#diff-#{i}"
}
-
if
diff
.
deleted_file
%strong
=
diff
.
old_path
deleted
-
elsif
diff
.
renamed_file
%strong
=
diff
.
old_path
→
%strong
=
diff
.
new_path
-
else
%strong
=
diff
.
new_path
%hr
%pre
=
color_email_diff
(
diff
.
diff
)
%br
-
if
@compare
.
timeout
%h5
Huge diff. To prevent performance issues changes are hidden
app/views/notify/repository_push_email.text.haml
View file @
85af3e82
...
...
@@ -19,20 +19,22 @@ Commits:
\- +
#{
diff
.
new_path
}
-
else
\-
#{
diff
.
new_path
}
\
\
Changes:
-
@diffs
.
each
do
|
diff
|
-
unless
@disable_diffs
\
\=====================================
-
if
diff
.
deleted_file
#{
diff
.
old_path
}
deleted
-
elsif
diff
.
renamed_file
#{
diff
.
old_path
}
→
#{
diff
.
new_path
}
-
else
=
diff
.
new_path
\=====================================
!=
diff
.
diff
\
\
Changes:
-
@diffs
.
each
do
|
diff
|
\
\=====================================
-
if
diff
.
deleted_file
#{
diff
.
old_path
}
deleted
-
elsif
diff
.
renamed_file
#{
diff
.
old_path
}
→
#{
diff
.
new_path
}
-
else
=
diff
.
new_path
\=====================================
!=
diff
.
diff
-
if
@compare
.
timeout
\
\
Huge diff. To prevent performance issues it was hidden
app/workers/emails_on_push_worker.rb
View file @
85af3e82
class
EmailsOnPushWorker
include
Sidekiq
::
Worker
def
perform
(
project_id
,
recipients
,
push_data
,
send_from_committer_email
=
false
)
def
perform
(
project_id
,
recipients
,
push_data
,
send_from_committer_email
=
false
,
disable_diffs
=
false
)
project
=
Project
.
find
(
project_id
)
before_sha
=
push_data
[
"before"
]
after_sha
=
push_data
[
"after"
]
...
...
@@ -19,7 +19,15 @@ class EmailsOnPushWorker
return
false
unless
compare
&&
compare
.
commits
.
present?
recipients
.
split
(
" "
).
each
do
|
recipient
|
Notify
.
repository_push_email
(
project_id
,
recipient
,
author_id
,
branch
,
compare
,
send_from_committer_email
).
deliver
Notify
.
repository_push_email
(
project_id
,
recipient
,
author_id
,
branch
,
compare
,
send_from_committer_email
,
disable_diffs
).
deliver
end
ensure
compare
=
nil
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment