diff options
author | Douwe Maan <douwe@gitlab.com> | 2018-02-19 11:49:52 +0300 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2018-02-19 11:49:52 +0300 |
commit | 637ab60c608cd531c1cc8ad130c7606ca2716ba6 (patch) | |
tree | 7ead4f5d35f021085fadb55612f5c419635b416e | |
parent | 804b38d5e63c7e0001e26741b99960e9553114b1 (diff) | |
parent | 790ab5909b37a1eb64d7a86c21c6096441512290 (diff) |
Merge branch '41949-move' into 'master'
Remember assignee when moving an issue
See merge request gitlab-org/gitlab-ce!17116
-rw-r--r-- | app/services/issues/move_service.rb | 3 | ||||
-rw-r--r-- | changelogs/unreleased/41949-move.yml | 5 | ||||
-rw-r--r-- | spec/services/issues/move_service_spec.rb | 22 |
3 files changed, 29 insertions, 1 deletions
diff --git a/app/services/issues/move_service.rb b/app/services/issues/move_service.rb index 299b9c6215f..7140890d201 100644 --- a/app/services/issues/move_service.rb +++ b/app/services/issues/move_service.rb @@ -48,7 +48,8 @@ module Issues new_params = { id: nil, iid: nil, label_ids: cloneable_label_ids, milestone_id: cloneable_milestone_id, project: @new_project, author: @old_issue.author, - description: rewrite_content(@old_issue.description) } + description: rewrite_content(@old_issue.description), + assignee_ids: @old_issue.assignee_ids } new_params = @old_issue.serializable_hash.symbolize_keys.merge(new_params) CreateService.new(@new_project, @current_user, new_params).execute diff --git a/changelogs/unreleased/41949-move.yml b/changelogs/unreleased/41949-move.yml new file mode 100644 index 00000000000..40ccac63a28 --- /dev/null +++ b/changelogs/unreleased/41949-move.yml @@ -0,0 +1,5 @@ +--- +title: Remember assignee when moving an issue +merge_request: +author: +type: fixed diff --git a/spec/services/issues/move_service_spec.rb b/spec/services/issues/move_service_spec.rb index 322c91065e7..c148a98569b 100644 --- a/spec/services/issues/move_service_spec.rb +++ b/spec/services/issues/move_service_spec.rb @@ -232,6 +232,28 @@ describe Issues::MoveService do end end + context 'issue with assignee' do + let(:assignee) { create(:user) } + + before do + old_issue.assignees = [assignee] + end + + it 'preserves assignee with access to the new issue' do + new_project.add_reporter(assignee) + + new_issue = move_service.execute(old_issue, new_project) + + expect(new_issue.assignees).to eq([assignee]) + end + + it 'ignores assignee without access to the new issue' do + new_issue = move_service.execute(old_issue, new_project) + + expect(new_issue.assignees).to be_empty + end + end + context 'notes with references' do before do create(:merge_request, source_project: old_project) |