diff options
author | Adam Niedzielski <adamsunday@gmail.com> | 2016-10-20 16:40:24 +0200 |
---|---|---|
committer | Adam Niedzielski <adamsunday@gmail.com> | 2016-10-20 16:40:24 +0200 |
commit | 23e81bfde879dfd116cb70cb8034d0fce21fffb6 (patch) | |
tree | 0ae05e5b9ebcc49de7f2d500f266354f1d5b3498 | |
parent | 2510345ee5f36c9cbe7088f7dce9402645c3fcf6 (diff) | |
download | gitlab-ce-fix-bulk-assign-issues-for-external-issues.tar.gz |
Ignore external issues when bulk assigning issues to author of merge request.fix-bulk-assign-issues-for-external-issues
Fixes #23552
-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 |