diff options
author | Douwe Maan <douwe@gitlab.com> | 2015-11-30 21:15:19 +0100 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2015-11-30 21:36:35 +0100 |
commit | f9017a2b0384eef3f99ec2f3f1f2ef156afff2b8 (patch) | |
tree | be09e71c29669870acbc17652d4cdd893a09fddc /lib/gitlab/closing_issue_extractor.rb | |
parent | d6a5b45c8ea5ec7a68e213636fde405c52bb90e4 (diff) | |
download | gitlab-ce-f9017a2b0384eef3f99ec2f3f1f2ef156afff2b8.tar.gz |
Have ClosingIssueExtractor recognize all referenced issues
Diffstat (limited to 'lib/gitlab/closing_issue_extractor.rb')
-rw-r--r-- | lib/gitlab/closing_issue_extractor.rb | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/lib/gitlab/closing_issue_extractor.rb b/lib/gitlab/closing_issue_extractor.rb index aeec595782c..70b9943d7eb 100644 --- a/lib/gitlab/closing_issue_extractor.rb +++ b/lib/gitlab/closing_issue_extractor.rb @@ -1,6 +1,10 @@ module Gitlab class ClosingIssueExtractor - ISSUE_CLOSING_REGEX = Regexp.new(Gitlab.config.gitlab.issue_closing_pattern) + ISSUE_CLOSING_REGEX = begin + pattern = Gitlab.config.gitlab.issue_closing_pattern + pattern = pattern.sub('%{issue_ref}', "(?:#{Issue.reference_pattern})") + Regexp.new(pattern).freeze + end def initialize(project, current_user = nil) @extractor = Gitlab::ReferenceExtractor.new(project, current_user) @@ -9,10 +13,12 @@ module Gitlab def closed_by_message(message) return [] if message.nil? - closing_statements = message.scan(ISSUE_CLOSING_REGEX). - map { |ref| ref[0] }.join(" ") + closing_statements = [] + message.scan(ISSUE_CLOSING_REGEX) do + closing_statements << Regexp.last_match[0] + end - @extractor.analyze(closing_statements) + @extractor.analyze(closing_statements.join(" ")) @extractor.issues end |