summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Niedzielski <adamsunday@gmail.com>2016-10-20 16:40:24 +0200
committerAdam Niedzielski <adamsunday@gmail.com>2016-10-20 16:40:24 +0200
commit23e81bfde879dfd116cb70cb8034d0fce21fffb6 (patch)
tree0ae05e5b9ebcc49de7f2d500f266354f1d5b3498
parent2510345ee5f36c9cbe7088f7dce9402645c3fcf6 (diff)
downloadgitlab-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.rb2
-rw-r--r--spec/services/merge_requests/assign_issues_service_spec.rb12
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