diff options
author | Sean McGivern <sean@mcgivern.me.uk> | 2016-10-21 15:15:33 +0000 |
---|---|---|
committer | Sean McGivern <sean@mcgivern.me.uk> | 2016-10-21 15:15:33 +0000 |
commit | 6ff3625f636b1b4ba94370d5b7ce4afbe0b29a95 (patch) | |
tree | cd9aa6185847e1842239a08dfb74a5b2c32e7777 | |
parent | 3fd3f85bc056f024ba0488ae1989ad6fbd8f6c60 (diff) | |
parent | 23e81bfde879dfd116cb70cb8034d0fce21fffb6 (diff) | |
download | gitlab-ce-6ff3625f636b1b4ba94370d5b7ce4afbe0b29a95.tar.gz |
Merge branch 'fix-bulk-assign-issues-for-external-issues' into 'master'
Ignore external issues when bulk assigning issues to author of merge request.
Fixes #23552
See merge request !7020
-rw-r--r-- | app/services/merge_requests/assign_issues_service.rb | 2 | ||||
-rw-r--r-- | spec/services/merge_requests/assign_issues_service_spec.rb | 12 |
2 files changed, 13 insertions, 1 deletions
diff --git a/app/services/merge_requests/assign_issues_service.rb b/app/services/merge_requests/assign_issues_service.rb index f636e5fec4f..066efa1acc3 100644 --- a/app/services/merge_requests/assign_issues_service.rb +++ b/app/services/merge_requests/assign_issues_service.rb @@ -4,7 +4,7 @@ module MergeRequests @assignable_issues ||= begin if current_user == merge_request.author closes_issues.select do |issue| - !issue.assignee_id? && can?(current_user, :admin_issue, issue) + !issue.is_a?(ExternalIssue) && !issue.assignee_id? && can?(current_user, :admin_issue, issue) end else [] diff --git a/spec/services/merge_requests/assign_issues_service_spec.rb b/spec/services/merge_requests/assign_issues_service_spec.rb index 7aeb95a15ea..5034b6ef33f 100644 --- a/spec/services/merge_requests/assign_issues_service_spec.rb +++ b/spec/services/merge_requests/assign_issues_service_spec.rb @@ -46,4 +46,16 @@ describe MergeRequests::AssignIssuesService, services: true do it 'assigns these to the merge request owner' do expect { service.execute }.to change { issue.reload.assignee }.to(user) end + + it 'ignores external issues' do + external_issue = ExternalIssue.new('JIRA-123', project) + service = described_class.new( + project, + user, + merge_request: merge_request, + closes_issues: [external_issue] + ) + + expect(service.assignable_issues.count).to eq 0 + end end |