summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean McGivern <sean@mcgivern.me.uk>2017-09-01 09:15:40 +0000
committerJose Ivan Vargas <jvargas@gitlab.com>2017-09-01 15:12:16 -0500
commit89d3f11703a800e22845af29db18d21dfd0ad428 (patch)
treee92a2ec0585b2da7230700aa23d8d9169957146f
parent7f2a49c538b7479479a64f35ddc707f903a6149b (diff)
downloadgitlab-ce-89d3f11703a800e22845af29db18d21dfd0ad428.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 e83b11f7668..9fc526ec3ef 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -598,6 +598,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 a1a3e70a7d2..5baa7c81ecc 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