summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémy Coutable <remy@rymai.me>2016-10-13 13:19:56 +0000
committerRémy Coutable <remy@rymai.me>2016-10-17 14:10:21 +0200
commitab92551bbd98c5f51cb3aa8073f8dc108b19ceea (patch)
treefcbfc0394f34f561587f4f0f8982d5c41fb408af
parent70b24e49938fcf5fde3dde3b38ec0b9f941eebef (diff)
downloadgitlab-ce-ab92551bbd98c5f51cb3aa8073f8dc108b19ceea.tar.gz
Merge branch '23234-deleting-a-milestone-removes-source-branch-deletion-options-of-associated-merge-requests' into 'master'
Maintain "force_remove_source_branch" options on Merge Request unless specified Fixes a problem where Merge Requests were losing the state associated with the flag to remove the source branch upon merge * Closes #23234 * Closes #23191 * Closes #19351 See merge request !6817 Signed-off-by: Rémy Coutable <remy@rymai.me>
-rw-r--r--CHANGELOG1
-rw-r--r--app/services/merge_requests/update_service.rb4
-rw-r--r--spec/services/merge_requests/update_service_spec.rb12
3 files changed, 16 insertions, 1 deletions
diff --git a/CHANGELOG b/CHANGELOG
index ccf71700e1a..f849d6eec64 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -6,6 +6,7 @@ v 8.12.7
- Use gitlab-markup gem instead of github-markup to fix `.rst` file rendering. !6659
- Prevent flash alert text from being obscured when container is fluid. !6694
- Fix JS bug with select2 because of missing `data-field` attribute in select box. !6812
+ - Do not alter 'force_remove_source_branch' options on MergeRequest unless specified. !6817
v 8.12.6
- Update mailroom to 0.8.1 in Gemfile.lock !6814
diff --git a/app/services/merge_requests/update_service.rb b/app/services/merge_requests/update_service.rb
index f14f9e4b327..0c158bf4477 100644
--- a/app/services/merge_requests/update_service.rb
+++ b/app/services/merge_requests/update_service.rb
@@ -15,7 +15,9 @@ module MergeRequests
params.except!(:target_branch, :force_remove_source_branch)
end
- merge_request.merge_params['force_remove_source_branch'] = params.delete(:force_remove_source_branch)
+ if params[:force_remove_source_branch].present?
+ merge_request.merge_params['force_remove_source_branch'] = params.delete(:force_remove_source_branch)
+ end
update(merge_request)
end
diff --git a/spec/services/merge_requests/update_service_spec.rb b/spec/services/merge_requests/update_service_spec.rb
index 33db34c0f62..aacf95d0b63 100644
--- a/spec/services/merge_requests/update_service_spec.rb
+++ b/spec/services/merge_requests/update_service_spec.rb
@@ -104,6 +104,18 @@ describe MergeRequests::UpdateService, services: true do
expect(note).not_to be_nil
expect(note.note).to eq 'Target branch changed from `master` to `target`'
end
+
+ context 'when not including source branch removal options' do
+ before do
+ opts.delete(:force_remove_source_branch)
+ end
+
+ it 'maintains the original options' do
+ update_merge_request(opts)
+
+ expect(@merge_request.merge_params["force_remove_source_branch"]).to eq("1")
+ end
+ end
end
context 'todos' do