summaryrefslogtreecommitdiff
path: root/app/models/merge_request.rb
diff options
context:
space:
mode:
authorFelipe Artur <felipefac@gmail.com>2016-09-30 11:53:44 -0300
committerFelipe Artur <felipefac@gmail.com>2016-10-03 19:58:49 -0300
commit45bfadbcbf0eec5bf7c691b13751f684e3c62c5c (patch)
tree43d22923083a11c4395cde44629b242b38df50fc /app/models/merge_request.rb
parenta1aea3266e4b90869d5a9bcc334272996ab80fda (diff)
downloadgitlab-ce-45bfadbcbf0eec5bf7c691b13751f684e3c62c5c.tar.gz
Fix bug when trying to cache closed issues from external issue trackersissue_22446
Diffstat (limited to 'app/models/merge_request.rb')
-rw-r--r--app/models/merge_request.rb4
1 files changed, 4 insertions, 0 deletions
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index a431d46cc9e..071dfe54ef9 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -523,9 +523,13 @@ class MergeRequest < ActiveRecord::Base
# `MergeRequestsClosingIssues` model. This is a performance optimization.
# Calculating this information for a number of merge requests requires
# running `ReferenceExtractor` on each of them separately.
+ # This optimization does not apply to issues from external sources.
def cache_merge_request_closes_issues!(current_user = self.author)
+ return if project.has_external_issue_tracker?
+
transaction do
self.merge_requests_closing_issues.delete_all
+
closes_issues(current_user).each do |issue|
self.merge_requests_closing_issues.create!(issue: issue)
end