Merge branch 'regex-for-colons' into 'master'

Add optional colon.



See merge request !3591
This commit is contained in:
Douwe Maan 2016-04-07 14:40:18 +00:00
commit 9cae14037a
4 changed files with 118 additions and 2 deletions

View file

@ -29,6 +29,7 @@ v 8.7.0 (unreleased)
- Fix admin/projects when using visibility levels on search (PotHix)
- Build status notifications
- API: Expose user location (Robert Schilling)
- ClosingIssueExtractor regex now also works with colons. e.g. "Fixes: #1234" !3591
v 8.6.5 (unreleased)
- Only update repository language if it is not set to improve performance

View file

@ -80,7 +80,7 @@ production: &base
# This happens when the commit is pushed or merged into the default branch of a project.
# When not specified the default issue_closing_pattern as specified below will be used.
# Tip: you can test your closing pattern at http://rubular.com.
# issue_closing_pattern: '((?:[Cc]los(?:e[sd]?|ing)|[Ff]ix(?:e[sd]|ing)?) +(?:(?:issues? +)?%{issue_ref}(?:(?:, *| +and +)?))+)'
# issue_closing_pattern: '((?:[Cc]los(?:e[sd]?|ing)|[Ff]ix(?:e[sd]|ing)?|[Rr]esolv(?:e[sd]?|ing))(:?) +(?:(?:issues? +)?%{issue_ref}(?:(?:, *| +and +)?)|([A-Z][A-Z0-9_]+-\d+))+)'
## Default project features settings
default_projects_features:

View file

@ -176,7 +176,7 @@ Settings.gitlab['signup_enabled'] ||= true if Settings.gitlab['signup_enabled'].
Settings.gitlab['signin_enabled'] ||= true if Settings.gitlab['signin_enabled'].nil?
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['issue_closing_pattern'] = '((?:[Cc]los(?:e[sd]?|ing)|[Ff]ix(?:e[sd]|ing)?|[Rr]esolv(?:e[sd]?|ing)) +(?:(?:issues? +)?%{issue_ref}(?:(?:, *| +and +)?)|([A-Z][A-Z0-9_]+-\d+))+)' 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 +)?)|([A-Z][A-Z0-9_]+-\d+))+)' if Settings.gitlab['issue_closing_pattern'].nil?
Settings.gitlab['default_projects_features'] ||= {}
Settings.gitlab['webhook_timeout'] ||= 10
Settings.gitlab['max_attachment_size'] ||= 10

View file

@ -22,11 +22,21 @@ describe Gitlab::ClosingIssueExtractor, lib: true do
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "Awesome commit (Closes: #{reference})"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "Awesome commit (closes #{reference})"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "Awesome commit (closes: #{reference})"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "Closed #{reference}"
expect(subject.closed_by_message(message)).to eq([issue])
@ -37,106 +47,211 @@ describe Gitlab::ClosingIssueExtractor, lib: true do
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "closed: #{reference}"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "Closing #{reference}"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "Closing: #{reference}"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "closing #{reference}"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "closing: #{reference}"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "Close #{reference}"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "Close: #{reference}"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "close #{reference}"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "close: #{reference}"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "Awesome commit (Fixes #{reference})"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "Awesome commit (Fixes: #{reference})"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "Awesome commit (fixes #{reference})"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "Awesome commit (Fixes: #{reference})"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "Fixed #{reference}"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "Fixed: #{reference}"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "fixed #{reference}"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "fixed: #{reference}"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "Fixing #{reference}"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "Fixing: #{reference}"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "fixing #{reference}"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "fixing: #{reference}"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "Fix #{reference}"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "Fix: #{reference}"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "fix #{reference}"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "fix: #{reference}"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "Awesome commit (Resolves #{reference})"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "Awesome commit (Resolves: #{reference})"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "Awesome commit (resolves #{reference})"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "Awesome commit (resolves: #{reference})"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "Resolved #{reference}"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "Resolved: #{reference}"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "resolved #{reference}"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "resolved: #{reference}"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "Resolving #{reference}"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "Resolving: #{reference}"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "resolving #{reference}"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "resolving: #{reference}"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "Resolve #{reference}"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "Resolve: #{reference}"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "resolve #{reference}"
expect(subject.closed_by_message(message)).to eq([issue])
end
it do
message = "resolve: #{reference}"
expect(subject.closed_by_message(message)).to eq([issue])
end
context 'with an external issue tracker reference' do
it 'extracts the referenced issue' do
jira_project = create(:jira_project, name: 'JIRA_EXT1')