summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean McGivern <sean@mcgivern.me.uk>2017-09-01 09:15:40 +0000
committerSean McGivern <sean@mcgivern.me.uk>2017-09-01 09:15:40 +0000
commit2fc500819f83edf976879789113673389c55a461 (patch)
treebf4729e2d6eaea95013c459fe77456161423b20d
parent5dd157be16c04850279373123d9dba4377a9f852 (diff)
parent3e4013f21760be5522ac080669b6da9fb9118999 (diff)
downloadgitlab-ce-2fc500819f83edf976879789113673389c55a461.tar.gz
Merge branch 'issue_36820' into 'master'
Remove closing external issues by reference error Closes #36820 See merge request !13910
-rw-r--r--app/models/merge_request.rb2
-rw-r--r--changelogs/unreleased/issue_36820.yml5
-rw-r--r--spec/models/merge_request_spec.rb2
3 files changed, 9 insertions, 0 deletions
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index ca3a1806ee8..7a817eedec2 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -605,6 +605,8 @@ class MergeRequest < ActiveRecord::Base
self.merge_requests_closing_issues.delete_all
closes_issues(current_user).each do |issue|
+ next if issue.is_a?(ExternalIssue)
+
self.merge_requests_closing_issues.create!(issue: issue)
end
end
diff --git a/changelogs/unreleased/issue_36820.yml b/changelogs/unreleased/issue_36820.yml
new file mode 100644
index 00000000000..ec5fb6ac079
--- /dev/null
+++ b/changelogs/unreleased/issue_36820.yml
@@ -0,0 +1,5 @@
+---
+title: Remove closing external issues by reference error
+merge_request:
+author:
+type: fixed
diff --git a/spec/models/merge_request_spec.rb b/spec/models/merge_request_spec.rb
index 09f3b97ec58..f5d079c27c4 100644
--- a/spec/models/merge_request_spec.rb
+++ b/spec/models/merge_request_spec.rb
@@ -159,6 +159,7 @@ describe MergeRequest do
before do
subject.project.has_external_issue_tracker = true
subject.project.save!
+ create(:jira_service, project: subject.project)
end
it 'does not cache issues from external trackers' do
@@ -166,6 +167,7 @@ describe MergeRequest do
commit = double('commit1', safe_message: "Fixes #{issue.to_reference}")
allow(subject).to receive(:commits).and_return([commit])
+ expect { subject.cache_merge_request_closes_issues!(subject.author) }.not_to raise_error
expect { subject.cache_merge_request_closes_issues!(subject.author) }.not_to change(subject.merge_requests_closing_issues, :count)
end