summaryrefslogtreecommitdiff
path: root/lib/gitlab/closing_issue_extractor.rb
blob: 6425193d85f8508eef08c0c6b95a09b59caa325c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
module Gitlab
  module ClosingIssueExtractor
    ISSUE_CLOSING_REGEX = Regexp.new(Gitlab.config.gitlab.issue_closing_pattern)

    def self.closed_by_message_in_project(message, project, current_user = nil)
      issues = []

      unless message.nil?
        md = message.scan(ISSUE_CLOSING_REGEX)

        md.each do |ref|
          extractor = Gitlab::ReferenceExtractor.new(project, current_user)
          extractor.analyze(ref[0])
          issues += extractor.issues
        end
      end

      issues.uniq
    end
  end
end