diff options
author | Matthias Baur <m.baur@syseleven.de> | 2019-06-03 14:52:54 +0200 |
---|---|---|
committer | Matthias Baur <m.baur@syseleven.de> | 2019-06-03 16:05:20 +0200 |
commit | e8683efea5aaed0c8c4b6efc75395372a3a3662b (patch) | |
tree | 5c63a5f07627e5d3759c4b3fe29bdb1848f7d66d | |
parent | 205f0d0cfe7ff47ead965ff120599dc3f2453974 (diff) | |
download | gitlab-ce-e8683efea5aaed0c8c4b6efc75395372a3a3662b.tar.gz |
Allow lowercase prefix for Youtrack issue ids
Relates to #42595.
Fixes #62661.
-rw-r--r-- | app/models/project_services/youtrack_service.rb | 6 | ||||
-rw-r--r-- | doc/user/project/integrations/youtrack.md | 4 | ||||
-rw-r--r-- | spec/lib/banzai/filter/external_issue_reference_filter_spec.rb | 7 |
3 files changed, 12 insertions, 5 deletions
diff --git a/app/models/project_services/youtrack_service.rb b/app/models/project_services/youtrack_service.rb index 957be685aea..175c2ebf197 100644 --- a/app/models/project_services/youtrack_service.rb +++ b/app/models/project_services/youtrack_service.rb @@ -5,12 +5,12 @@ class YoutrackService < IssueTrackerService prop_accessor :description, :project_url, :issues_url - # {PROJECT-KEY}-{NUMBER} Examples: YT-1, PRJ-1 + # {PROJECT-KEY}-{NUMBER} Examples: YT-1, PRJ-1, gl-030 def self.reference_pattern(only_long: false) if only_long - /(?<issue>\b[A-Z][A-Za-z0-9_]*-\d+)/ + /(?<issue>\b[A-Za-z][A-Za-z0-9_]*-\d+)/ else - /(?<issue>\b[A-Z][A-Za-z0-9_]*-\d+)|(#{Issue.reference_prefix}(?<issue>\d+))/ + /(?<issue>\b[A-Za-z][A-Za-z0-9_]*-\d+)|(#{Issue.reference_prefix}(?<issue>\d+))/ end end diff --git a/doc/user/project/integrations/youtrack.md b/doc/user/project/integrations/youtrack.md index a2a468b6fe4..07f362d48d3 100644 --- a/doc/user/project/integrations/youtrack.md +++ b/doc/user/project/integrations/youtrack.md @@ -31,8 +31,8 @@ To disable the internal issue tracker in a project: ## Referencing YouTrack issues in GitLab Issues in YouTrack can be referenced as `<PROJECT>-<ID>`. `<PROJECT>` -must start with a capital letter and can then be followed by capital or lower case -letters, numbers or underscores. `<ID>` is a number. An example reference is `YT-101` or `Api_32-143`. +must start with a letter and can then be followed by capital or lower case +letters, numbers or underscores. `<ID>` is a number. An example reference is `YT-101`, `Api_32-143` or `gl-030`. References to `<PROJECT>-<ID>` in merge requests, commits, or comments are automatically linked to the YouTrack issue URL. For more information, see the [External Issue Tracker](../../../integration/external-issue-tracker.md) documentation. diff --git a/spec/lib/banzai/filter/external_issue_reference_filter_spec.rb b/spec/lib/banzai/filter/external_issue_reference_filter_spec.rb index 43222ddb5e2..7c94cf37e32 100644 --- a/spec/lib/banzai/filter/external_issue_reference_filter_spec.rb +++ b/spec/lib/banzai/filter/external_issue_reference_filter_spec.rb @@ -155,6 +155,13 @@ describe Banzai::Filter::ExternalIssueReferenceFilter do it_behaves_like "external issue tracker" end + + context "with a lowercase prefix" do + let(:issue) { ExternalIssue.new("gl-030", project) } + let(:reference) { issue.to_reference } + + it_behaves_like "external issue tracker" + end end context "jira project" do |