Have ClosingIssueExtractor recognize all referenced issues
This commit is contained in:
parent
d6a5b45c8e
commit
f9017a2b03
|
@ -164,7 +164,7 @@ Settings.gitlab['signin_enabled'] ||= true if Settings.gitlab['signin_enabled'].
|
||||||
Settings.gitlab['twitter_sharing_enabled'] ||= true if Settings.gitlab['twitter_sharing_enabled'].nil?
|
Settings.gitlab['twitter_sharing_enabled'] ||= true if Settings.gitlab['twitter_sharing_enabled'].nil?
|
||||||
Settings.gitlab['restricted_visibility_levels'] = Settings.send(:verify_constant_array, Gitlab::VisibilityLevel, Settings.gitlab['restricted_visibility_levels'], [])
|
Settings.gitlab['restricted_visibility_levels'] = Settings.send(:verify_constant_array, Gitlab::VisibilityLevel, Settings.gitlab['restricted_visibility_levels'], [])
|
||||||
Settings.gitlab['username_changing_enabled'] = true if Settings.gitlab['username_changing_enabled'].nil?
|
Settings.gitlab['username_changing_enabled'] = true if Settings.gitlab['username_changing_enabled'].nil?
|
||||||
Settings.gitlab['issue_closing_pattern'] = '((?:[Cc]los(?:e[sd]?|ing)|[Ff]ix(?:e[sd]|ing)?|[Rr]esolv(?:e[sd]?|ing)) +(?:(?:issues? +)?#\d+(?:(?:, *| +and +)?))+)' if Settings.gitlab['issue_closing_pattern'].nil?
|
Settings.gitlab['issue_closing_pattern'] = '((?:[Cc]los(?:e[sd]?|ing)|[Ff]ix(?:e[sd]|ing)?|[Rr]esolv(?:e[sd]?|ing)) +(?:(?:issues? +)?%{issue_ref}(?:(?:, *| +and +)?))+)' if Settings.gitlab['issue_closing_pattern'].nil?
|
||||||
Settings.gitlab['default_projects_features'] ||= {}
|
Settings.gitlab['default_projects_features'] ||= {}
|
||||||
Settings.gitlab['webhook_timeout'] ||= 10
|
Settings.gitlab['webhook_timeout'] ||= 10
|
||||||
Settings.gitlab['max_attachment_size'] ||= 10
|
Settings.gitlab['max_attachment_size'] ||= 10
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
module Gitlab
|
module Gitlab
|
||||||
class ClosingIssueExtractor
|
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)
|
def initialize(project, current_user = nil)
|
||||||
@extractor = Gitlab::ReferenceExtractor.new(project, current_user)
|
@extractor = Gitlab::ReferenceExtractor.new(project, current_user)
|
||||||
|
@ -9,10 +13,12 @@ module Gitlab
|
||||||
def closed_by_message(message)
|
def closed_by_message(message)
|
||||||
return [] if message.nil?
|
return [] if message.nil?
|
||||||
|
|
||||||
closing_statements = message.scan(ISSUE_CLOSING_REGEX).
|
closing_statements = []
|
||||||
map { |ref| ref[0] }.join(" ")
|
message.scan(ISSUE_CLOSING_REGEX) do
|
||||||
|
closing_statements << Regexp.last_match[0]
|
||||||
|
end
|
||||||
|
|
||||||
@extractor.analyze(closing_statements)
|
@extractor.analyze(closing_statements.join(" "))
|
||||||
|
|
||||||
@extractor.issues
|
@extractor.issues
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue