diff options
author | Rémy Coutable <remy@rymai.me> | 2016-10-13 13:19:56 +0000 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2016-10-17 14:10:21 +0200 |
commit | ab92551bbd98c5f51cb3aa8073f8dc108b19ceea (patch) | |
tree | fcbfc0394f34f561587f4f0f8982d5c41fb408af | |
parent | 70b24e49938fcf5fde3dde3b38ec0b9f941eebef (diff) | |
download | gitlab-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-- | CHANGELOG | 1 | ||||
-rw-r--r-- | app/services/merge_requests/update_service.rb | 4 | ||||
-rw-r--r-- | spec/services/merge_requests/update_service_spec.rb | 12 |
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 |