Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarin Jankovski <marin@gitlab.com>2014-04-03 11:54:57 +0400
committerMarin Jankovski <marin@gitlab.com>2014-04-03 11:54:57 +0400
commitb2de30c51ed71984a53aa72fb25afefb950450a9 (patch)
tree5edb4218d9e4972cd809222f1410abfa24b3a6bb
parentfcbebcb6aa7d9c3251e5766bb232765181c96b5e (diff)
parent60fc9348e781fb5264ba247e38f4a8046cc6a97f (diff)
Merge branch 'patch/6-7-2' into '6-7-stable'
6.7.3 patch release
-rw-r--r--CHANGELOG6
-rw-r--r--app/mailers/emails/merge_requests.rb4
-rw-r--r--app/services/merge_requests/auto_merge_service.rb2
-rw-r--r--app/services/merge_requests/merge_service.rb2
-rw-r--r--app/services/notification_service.rb4
-rw-r--r--lib/backup/database.rb5
-rw-r--r--lib/tasks/gitlab/db/drop_all_tables.rake10
-rw-r--r--spec/mailers/notify_spec.rb24
-rw-r--r--spec/services/notification_service_spec.rb6
9 files changed, 51 insertions, 12 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 75d88e2ce3f..36f4b85bf71 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,4 +1,8 @@
-v6.7.2
+v 6.7.3
+ - Fix the merge notification email not being sent (Pierre de La Morinerie)
+ - Drop all tables before restoring a Postgres backup
+
+v 6.7.2
- Fix upgrader script
v6.7.1
diff --git a/app/mailers/emails/merge_requests.rb b/app/mailers/emails/merge_requests.rb
index 5e1b8faf13e..a97d55f1b50 100644
--- a/app/mailers/emails/merge_requests.rb
+++ b/app/mailers/emails/merge_requests.rb
@@ -29,11 +29,11 @@ module Emails
subject: subject("#{@merge_request.title} (!#{@merge_request.iid})"))
end
- def merged_merge_request_email(recipient_id, merge_request_id)
+ def merged_merge_request_email(recipient_id, merge_request_id, updated_by_user_id)
@merge_request = MergeRequest.find(merge_request_id)
@project = @merge_request.project
@target_url = project_merge_request_url(@project, @merge_request)
- mail(from: sender(@merge_request.author_id_of_changes),
+ mail(from: sender(updated_by_user_id),
to: recipient(recipient_id),
subject: subject("#{@merge_request.title} (!#{@merge_request.iid})"))
end
diff --git a/app/services/merge_requests/auto_merge_service.rb b/app/services/merge_requests/auto_merge_service.rb
index d60d61ed54a..9c9117f4687 100644
--- a/app/services/merge_requests/auto_merge_service.rb
+++ b/app/services/merge_requests/auto_merge_service.rb
@@ -12,7 +12,7 @@ module MergeRequests
merge_request.author_id_of_changes = current_user.id
merge_request.merge
- notification.merge_mr(merge_request)
+ notification.merge_mr(merge_request, current_user)
create_merge_event(merge_request)
execute_project_hooks(merge_request)
diff --git a/app/services/merge_requests/merge_service.rb b/app/services/merge_requests/merge_service.rb
index 1d5af04cdbb..80487f661e0 100644
--- a/app/services/merge_requests/merge_service.rb
+++ b/app/services/merge_requests/merge_service.rb
@@ -10,7 +10,7 @@ module MergeRequests
merge_request.author_id_of_changes = current_user.id
merge_request.merge
- notification.merge_mr(merge_request)
+ notification.merge_mr(merge_request, current_user)
create_merge_event(merge_request)
execute_project_hooks(merge_request)
diff --git a/app/services/notification_service.rb b/app/services/notification_service.rb
index 5daf573630d..1b1a85b8858 100644
--- a/app/services/notification_service.rb
+++ b/app/services/notification_service.rb
@@ -86,12 +86,12 @@ class NotificationService
# * merge_request assignee if their notification level is not Disabled
# * project team members with notification level higher then Participating
#
- def merge_mr(merge_request)
+ def merge_mr(merge_request, current_user)
recipients = reject_muted_users([merge_request.author, merge_request.assignee], merge_request.target_project)
recipients = recipients.concat(project_watchers(merge_request.target_project)).uniq
recipients.each do |recipient|
- mailer.merged_merge_request_email(recipient.id, merge_request.id)
+ mailer.merged_merge_request_email(recipient.id, merge_request.id, current_user.id)
end
end
diff --git a/lib/backup/database.rb b/lib/backup/database.rb
index 6552f45ff0b..7b6908ccad8 100644
--- a/lib/backup/database.rb
+++ b/lib/backup/database.rb
@@ -29,9 +29,10 @@ module Backup
print "Restoring MySQL database #{config['database']} ... "
system('mysql', *mysql_args, config['database'], in: db_file_name)
when "postgresql" then
- puts "Destructively rebuilding database schema for RAILS_ENV #{Rails.env}"
- Rake::Task["db:schema:load"].invoke
print "Restoring PostgreSQL database #{config['database']} ... "
+ # Drop all tables because PostgreSQL DB dumps do not contain DROP TABLE
+ # statements like MySQL.
+ Rake::Task["gitlab:db:drop_all_tables"].invoke
pg_env
system('psql', config['database'], '-f', db_file_name)
end
diff --git a/lib/tasks/gitlab/db/drop_all_tables.rake b/lib/tasks/gitlab/db/drop_all_tables.rake
new file mode 100644
index 00000000000..a66030ab93a
--- /dev/null
+++ b/lib/tasks/gitlab/db/drop_all_tables.rake
@@ -0,0 +1,10 @@
+namespace :gitlab do
+ namespace :db do
+ task drop_all_tables: :environment do
+ connection = ActiveRecord::Base.connection
+ connection.tables.each do |table|
+ connection.drop_table(table)
+ end
+ end
+ end
+end
diff --git a/spec/mailers/notify_spec.rb b/spec/mailers/notify_spec.rb
index f990ed659b8..22d60429ccd 100644
--- a/spec/mailers/notify_spec.rb
+++ b/spec/mailers/notify_spec.rb
@@ -229,6 +229,7 @@ describe Notify do
end
context 'for merge requests' do
+ let(:merge_author) { create(:user) }
let(:merge_request) { create(:merge_request, author: current_user, assignee: assignee, source_project: project, target_project: project) }
let(:merge_request_with_description) { create(:merge_request, author: current_user, assignee: assignee, source_project: project, target_project: project, description: Faker::Lorem.sentence) }
@@ -288,7 +289,30 @@ describe Notify do
it 'contains a link to the merge request' do
should have_body_text /#{project_merge_request_path project, merge_request}/
end
+ end
+
+ describe 'that are merged' do
+ subject { Notify.merged_merge_request_email(recipient.id, merge_request.id, merge_author.id) }
+
+ it_behaves_like 'a multiple recipients email'
+
+ it 'is sent as the merge author' do
+ sender = subject.header[:from].addrs[0]
+ sender.display_name.should eq(merge_author.name)
+ sender.address.should eq(gitlab_sender)
+ end
+
+ it 'has the correct subject' do
+ should have_subject /#{merge_request.title} \(!#{merge_request.iid}\)/
+ end
+ it 'contains the new status' do
+ should have_body_text /merged/i
+ end
+
+ it 'contains a link to the merge request' do
+ should have_body_text /#{project_merge_request_path project, merge_request}/
+ end
end
end
end
diff --git a/spec/services/notification_service_spec.rb b/spec/services/notification_service_spec.rb
index 077ad8b6e12..59c17d6e4d7 100644
--- a/spec/services/notification_service_spec.rb
+++ b/spec/services/notification_service_spec.rb
@@ -233,15 +233,15 @@ describe NotificationService do
should_email(@u_watcher.id)
should_not_email(@u_participating.id)
should_not_email(@u_disabled.id)
- notification.merge_mr(merge_request)
+ notification.merge_mr(merge_request, @u_disabled)
end
def should_email(user_id)
- Notify.should_receive(:merged_merge_request_email).with(user_id, merge_request.id)
+ Notify.should_receive(:merged_merge_request_email).with(user_id, merge_request.id, @u_disabled.id)
end
def should_not_email(user_id)
- Notify.should_not_receive(:merged_merge_request_email).with(user_id, merge_request.id)
+ Notify.should_not_receive(:merged_merge_request_email).with(user_id, merge_request.id, @u_disabled.id)
end
end
end