diff options
author | Rémy Coutable <remy@rymai.me> | 2017-12-13 13:28:34 +0000 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2017-12-13 13:28:34 +0000 |
commit | b305a1331c14f819914ef1230bdf184860475045 (patch) | |
tree | e1e4e2e3b1ce5b3df625ca532de67bae7a41937b | |
parent | f12be5c9259da532ab1867ed7547111f3cce3237 (diff) | |
parent | b1e3cb24fa777bc6776c7602935876f546383a38 (diff) | |
download | gitlab-ce-b305a1331c14f819914ef1230bdf184860475045.tar.gz |
Merge branch 'fix-create-mr-from-issue-with-template' into 'master'
Execute quick actions when creating MR from issue
Closes gitlab-ee#4277
See merge request gitlab-org/gitlab-ce!15810
-rw-r--r-- | app/services/issuable_base_service.rb | 6 | ||||
-rw-r--r-- | changelogs/unreleased/fix-create-mr-from-issue-with-template.yml | 5 | ||||
-rw-r--r-- | spec/services/merge_requests/create_from_issue_service_spec.rb | 12 |
3 files changed, 21 insertions, 2 deletions
diff --git a/app/services/issuable_base_service.rb b/app/services/issuable_base_service.rb index 2c51ac13815..e7463e6e25c 100644 --- a/app/services/issuable_base_service.rb +++ b/app/services/issuable_base_service.rb @@ -106,12 +106,14 @@ class IssuableBaseService < BaseService end def merge_quick_actions_into_params!(issuable) + original_description = params.fetch(:description, issuable.description) + description, command_params = QuickActions::InterpretService.new(project, current_user) - .execute(params[:description], issuable) + .execute(original_description, issuable) # Avoid a description already set on an issuable to be overwritten by a nil - params[:description] = description if params.key?(:description) + params[:description] = description if description params.merge!(command_params) end diff --git a/changelogs/unreleased/fix-create-mr-from-issue-with-template.yml b/changelogs/unreleased/fix-create-mr-from-issue-with-template.yml new file mode 100644 index 00000000000..8668aa18669 --- /dev/null +++ b/changelogs/unreleased/fix-create-mr-from-issue-with-template.yml @@ -0,0 +1,5 @@ +--- +title: Execute quick actions (if present) when creating MR from issue +merge_request: 15810 +author: +type: fixed diff --git a/spec/services/merge_requests/create_from_issue_service_spec.rb b/spec/services/merge_requests/create_from_issue_service_spec.rb index a7ab389b357..623b182b205 100644 --- a/spec/services/merge_requests/create_from_issue_service_spec.rb +++ b/spec/services/merge_requests/create_from_issue_service_spec.rb @@ -100,5 +100,17 @@ describe MergeRequests::CreateFromIssueService do expect(result[:merge_request].target_branch).to eq(project.default_branch) end + + it 'executes quick actions if the build service sets them in the description' do + allow(service).to receive(:merge_request).and_wrap_original do |m, *args| + m.call(*args).tap do |merge_request| + merge_request.description = "/assign #{user.to_reference}" + end + end + + result = service.execute + + expect(result[:merge_request].assignee).to eq(user) + end end end |