Skip to content

Commit cb9481a

Browse files
committed
Move regex patterns to a common file
1 parent d8975f6 commit cb9481a

File tree

14 files changed

+92
-78
lines changed

14 files changed

+92
-78
lines changed

src/GitVersion.Configuration.Tests/Configuration/ConfigurationProviderTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ public void CanReadDefaultDocument()
246246
configuration.AssemblyInformationalFormat.ShouldBe(null);
247247
configuration.Branches["develop"].Label.ShouldBe("alpha");
248248
configuration.Branches["release"].Label.ShouldBe("beta");
249-
configuration.TagPrefix.ShouldBe(ConfigurationConstants.DefaultTagPrefix);
249+
configuration.TagPrefix.ShouldBe(RegexPatterns.Configuration.DefaultTagPrefixPattern);
250250
configuration.NextVersion.ShouldBe(null);
251251
}
252252

@@ -398,7 +398,7 @@ public void ShouldUseDefaultTagPrefixWhenNotSetInConfigFile()
398398
using var _ = this.fileSystem.SetupConfigFile(path: this.repoPath, text: text);
399399
var configuration = this.configurationProvider.ProvideForDirectory(this.repoPath);
400400

401-
configuration.TagPrefix.ShouldBe(ConfigurationConstants.DefaultTagPrefix);
401+
configuration.TagPrefix.ShouldBe(RegexPatterns.Configuration.DefaultTagPrefixPattern);
402402
}
403403

404404
[Test]
@@ -437,7 +437,7 @@ public void ShouldNotOverrideDefaultTagPrefixWhenNotSetInOverrideConfig()
437437

438438
var configuration = this.configurationProvider.ProvideForDirectory(this.repoPath, overrideConfiguration);
439439

440-
configuration.TagPrefix.ShouldBe(ConfigurationConstants.DefaultTagPrefix);
440+
configuration.TagPrefix.ShouldBe(RegexPatterns.Configuration.DefaultTagPrefixPattern);
441441
}
442442

443443
[Test]

src/GitVersion.Configuration/BranchConfiguration.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using GitVersion.Configuration.Attributes;
2+
using GitVersion.Core;
23
using GitVersion.Extensions;
34
using GitVersion.VersionCalculation;
45

@@ -26,8 +27,8 @@ internal record BranchConfiguration : IBranchConfiguration
2627
public PreventIncrementConfiguration PreventIncrement { get; internal set; } = new();
2728

2829
[JsonPropertyName("label-number-pattern")]
29-
[JsonPropertyDescription($"The regular expression pattern to use to extract the number from the branch name. Defaults to '{ConfigurationConstants.DefaultLabelNumberPattern}'.")]
30-
[JsonPropertyDefault(ConfigurationConstants.DefaultLabelNumberPattern)]
30+
[JsonPropertyDescription($"The regular expression pattern to use to extract the number from the branch name. Defaults to '{RegexPatterns.Configuration.DefaultLabelNumberPattern}'.")]
31+
[JsonPropertyDefault(RegexPatterns.Configuration.DefaultLabelNumberPattern)]
3132
[JsonPropertyFormat(Format.Regex)]
3233
public string? LabelNumberPattern { get; internal set; }
3334

src/GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using GitVersion.Core;
12
using GitVersion.Extensions;
23
using GitVersion.Helpers;
34
using GitVersion.VersionCalculation;
@@ -47,49 +48,49 @@ internal abstract class ConfigurationBuilderBase<TConfigurationBuilder> : IConfi
4748
protected readonly BranchMetaData MainBranch = new()
4849
{
4950
Name = ConfigurationConstants.MainBranchKey,
50-
RegexPattern = ConfigurationConstants.MainBranchRegex
51+
RegexPattern = RegexPatterns.Configuration.MainBranchRegexPattern
5152
};
5253

5354
protected readonly BranchMetaData DevelopBranch = new()
5455
{
5556
Name = ConfigurationConstants.DevelopBranchKey,
56-
RegexPattern = ConfigurationConstants.DevelopBranchRegex
57+
RegexPattern = RegexPatterns.Configuration.DevelopBranchRegexPattern
5758
};
5859

5960
protected readonly BranchMetaData ReleaseBranch = new()
6061
{
6162
Name = ConfigurationConstants.ReleaseBranchKey,
62-
RegexPattern = ConfigurationConstants.ReleaseBranchRegex
63+
RegexPattern = RegexPatterns.Configuration.ReleaseBranchRegexPattern
6364
};
6465

6566
protected readonly BranchMetaData FeatureBranch = new()
6667
{
6768
Name = ConfigurationConstants.FeatureBranchKey,
68-
RegexPattern = ConfigurationConstants.FeatureBranchRegex
69+
RegexPattern = RegexPatterns.Configuration.FeatureBranchRegexPattern
6970
};
7071

7172
protected readonly BranchMetaData PullRequestBranch = new()
7273
{
7374
Name = ConfigurationConstants.PullRequestBranchKey,
74-
RegexPattern = ConfigurationConstants.PullRequestBranchRegex
75+
RegexPattern = RegexPatterns.Configuration.PullRequestBranchRegexPattern
7576
};
7677

7778
protected readonly BranchMetaData HotfixBranch = new()
7879
{
7980
Name = ConfigurationConstants.HotfixBranchKey,
80-
RegexPattern = ConfigurationConstants.HotfixBranchRegex
81+
RegexPattern = RegexPatterns.Configuration.HotfixBranchRegexPattern
8182
};
8283

8384
protected readonly BranchMetaData SupportBranch = new()
8485
{
8586
Name = ConfigurationConstants.SupportBranchKey,
86-
RegexPattern = ConfigurationConstants.SupportBranchRegex
87+
RegexPattern = RegexPatterns.Configuration.SupportBranchRegexPattern
8788
};
8889

8990
protected readonly BranchMetaData UnknownBranch = new()
9091
{
9192
Name = ConfigurationConstants.UnknownBranchKey,
92-
RegexPattern = ConfigurationConstants.UnknownBranchRegex
93+
RegexPattern = RegexPatterns.Configuration.UnknownBranchRegexPattern
9394
};
9495

9596
protected ConfigurationBuilderBase()

src/GitVersion.Configuration/Builders/GitFlowConfigurationBuilder.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ private GitFlowConfigurationBuilder()
2020
PatchVersionBumpMessage = RegexPatterns.VersionCalculation.DefaultPatchPattern,
2121
SemanticVersionFormat = ConfigurationConstants.DefaultSemanticVersionFormat,
2222
VersionStrategies = ConfigurationConstants.DefaultVersionStrategies,
23-
TagPrefix = ConfigurationConstants.DefaultTagPrefix,
24-
VersionInBranchPattern = ConfigurationConstants.DefaultVersionInBranchPattern,
23+
TagPrefix = RegexPatterns.Configuration.DefaultTagPrefixPattern,
24+
VersionInBranchPattern = RegexPatterns.Configuration.DefaultVersionInBranchPattern,
2525
TagPreReleaseWeight = ConfigurationConstants.DefaultTagPreReleaseWeight,
2626
UpdateBuildNumber = ConfigurationConstants.DefaultUpdateBuildNumber,
2727
DeploymentMode = DeploymentMode.ContinuousDelivery,
@@ -145,7 +145,7 @@ private GitFlowConfigurationBuilder()
145145
OfMergedBranch = true,
146146
WhenCurrentCommitTagged = false
147147
},
148-
LabelNumberPattern = ConfigurationConstants.DefaultLabelNumberPattern,
148+
LabelNumberPattern = RegexPatterns.Configuration.DefaultLabelNumberPattern,
149149
TrackMergeMessage = true,
150150
PreReleaseWeight = 30000
151151
});

src/GitVersion.Configuration/Builders/GitHubFlowConfigurationBuilder.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ private GitHubFlowConfigurationBuilder()
2020
PatchVersionBumpMessage = RegexPatterns.VersionCalculation.DefaultPatchPattern,
2121
SemanticVersionFormat = ConfigurationConstants.DefaultSemanticVersionFormat,
2222
VersionStrategies = ConfigurationConstants.DefaultVersionStrategies,
23-
TagPrefix = ConfigurationConstants.DefaultTagPrefix,
24-
VersionInBranchPattern = ConfigurationConstants.DefaultVersionInBranchPattern,
23+
TagPrefix = RegexPatterns.Configuration.DefaultTagPrefixPattern,
24+
VersionInBranchPattern = RegexPatterns.Configuration.DefaultVersionInBranchPattern,
2525
TagPreReleaseWeight = ConfigurationConstants.DefaultTagPreReleaseWeight,
2626
UpdateBuildNumber = ConfigurationConstants.DefaultUpdateBuildNumber,
2727
DeploymentMode = DeploymentMode.ContinuousDelivery,
@@ -114,7 +114,7 @@ private GitHubFlowConfigurationBuilder()
114114
OfMergedBranch = true,
115115
WhenCurrentCommitTagged = false
116116
},
117-
LabelNumberPattern = ConfigurationConstants.DefaultLabelNumberPattern,
117+
LabelNumberPattern = RegexPatterns.Configuration.DefaultLabelNumberPattern,
118118
RegularExpression = PullRequestBranch.RegexPattern,
119119
SourceBranches =
120120
[

src/GitVersion.Configuration/Builders/TrunkBasedConfigurationBuilder.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ private TrunkBasedConfigurationBuilder()
2323
VersionStrategies.ConfiguredNextVersion,
2424
VersionStrategies.Mainline
2525
],
26-
TagPrefix = ConfigurationConstants.DefaultTagPrefix,
27-
VersionInBranchPattern = ConfigurationConstants.DefaultVersionInBranchPattern,
26+
TagPrefix = RegexPatterns.Configuration.DefaultTagPrefixPattern,
27+
VersionInBranchPattern = RegexPatterns.Configuration.DefaultVersionInBranchPattern,
2828
TagPreReleaseWeight = ConfigurationConstants.DefaultTagPreReleaseWeight,
2929
UpdateBuildNumber = ConfigurationConstants.DefaultUpdateBuildNumber,
3030
DeploymentMode = DeploymentMode.ContinuousDelivery,
@@ -112,7 +112,7 @@ private TrunkBasedConfigurationBuilder()
112112
OfMergedBranch = true,
113113
WhenCurrentCommitTagged = false
114114
},
115-
LabelNumberPattern = ConfigurationConstants.DefaultLabelNumberPattern,
115+
LabelNumberPattern = RegexPatterns.Configuration.DefaultLabelNumberPattern,
116116
RegularExpression = PullRequestBranch.RegexPattern,
117117
SourceBranches =
118118
[

src/GitVersion.Configuration/GitVersionConfiguration.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,14 @@ internal sealed record GitVersionConfiguration : BranchConfiguration, IGitVersio
3838
public string? AssemblyFileVersioningFormat { get; internal set; }
3939

4040
[JsonPropertyName("tag-prefix")]
41-
[JsonPropertyDescription($"A regular expression which is used to trim Git tags before processing. Defaults to '{DefaultTagPrefix}'")]
42-
[JsonPropertyDefault(DefaultTagPrefix)]
41+
[JsonPropertyDescription($"A regular expression which is used to trim Git tags before processing. Defaults to '{RegexPatterns.Configuration.DefaultTagPrefixPattern}'")]
42+
[JsonPropertyDefault(RegexPatterns.Configuration.DefaultTagPrefixPattern)]
4343
[JsonPropertyFormat(Format.Regex)]
4444
public string? TagPrefix { get; internal set; }
4545

4646
[JsonPropertyName("version-in-branch-pattern")]
47-
[JsonPropertyDescription($"A regular expression which is used to determine the version number in the branch name or commit message (e.g., v1.0.0-LTS). Defaults to '{DefaultVersionInBranchPattern}'.")]
48-
[JsonPropertyDefault(DefaultVersionInBranchPattern)]
47+
[JsonPropertyDescription($"A regular expression which is used to determine the version number in the branch name or commit message (e.g., v1.0.0-LTS). Defaults to '{RegexPatterns.Configuration.DefaultVersionInBranchPattern}'.")]
48+
[JsonPropertyDefault(RegexPatterns.Configuration.DefaultVersionInBranchPattern)]
4949
[JsonPropertyFormat(Format.Regex)]
5050
public string? VersionInBranchPattern { get; internal set; }
5151

@@ -56,7 +56,7 @@ internal sealed record GitVersionConfiguration : BranchConfiguration, IGitVersio
5656
private string GetVersionInBranchPattern()
5757
{
5858
var versionInBranchPattern = VersionInBranchPattern;
59-
if (versionInBranchPattern.IsNullOrEmpty()) versionInBranchPattern = DefaultVersionInBranchPattern;
59+
if (versionInBranchPattern.IsNullOrEmpty()) versionInBranchPattern = RegexPatterns.Configuration.DefaultVersionInBranchPattern;
6060
return $"^{versionInBranchPattern.TrimStart('^')}";
6161
}
6262

src/GitVersion.Core.Tests/IntegrationTests/MainScenarios.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ public void CanSpecifyTagPrefixes()
215215
[Test]
216216
public void CanSpecifyTagPrefixesAsRegex()
217217
{
218-
var configuration = GitFlowConfigurationBuilder.New.WithTagPrefix($"version-|{ConfigurationConstants.DefaultTagPrefix}").Build();
218+
var configuration = GitFlowConfigurationBuilder.New.WithTagPrefix($"version-|{RegexPatterns.Configuration.DefaultTagPrefixPattern}").Build();
219219
using var fixture = new EmptyRepositoryFixture();
220220
var taggedVersion = "v1.0.3";
221221
fixture.Repository.MakeATaggedCommit(taggedVersion);

src/GitVersion.Core.Tests/VersionCalculation/SemanticVersionTests.cs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
using GitVersion.Configuration;
21
using GitVersion.Core.Tests.Helpers;
32

43
namespace GitVersion.Core.Tests;
@@ -23,9 +22,9 @@ public class SemanticVersionTests : TestBase
2322
[TestCase("1.2.3+4.Branch.Foo", 1, 2, 3, "", null, 4, "Foo", null, null, null, null, SemanticVersionFormat.Strict)]
2423
[TestCase("1.2.3+randomMetaData", 1, 2, 3, "", null, null, null, null, "randomMetaData", null, null, SemanticVersionFormat.Strict)]
2524
[TestCase("1.2.3-beta.1+4.Sha.12234.Othershiz", 1, 2, 3, "beta", 1, 4, null, "12234", "Othershiz", null, null, SemanticVersionFormat.Strict)]
26-
[TestCase("1.2.3", 1, 2, 3, "", null, null, null, null, null, null, ConfigurationConstants.DefaultTagPrefix, SemanticVersionFormat.Strict)]
27-
[TestCase("v1.2.3", 1, 2, 3, "", null, null, null, null, null, "1.2.3", ConfigurationConstants.DefaultTagPrefix, SemanticVersionFormat.Strict)]
28-
[TestCase("V1.2.3", 1, 2, 3, "", null, null, null, null, null, "1.2.3", ConfigurationConstants.DefaultTagPrefix, SemanticVersionFormat.Strict)]
25+
[TestCase("1.2.3", 1, 2, 3, "", null, null, null, null, null, null, RegexPatterns.Configuration.DefaultTagPrefixPattern, SemanticVersionFormat.Strict)]
26+
[TestCase("v1.2.3", 1, 2, 3, "", null, null, null, null, null, "1.2.3", RegexPatterns.Configuration.DefaultTagPrefixPattern, SemanticVersionFormat.Strict)]
27+
[TestCase("V1.2.3", 1, 2, 3, "", null, null, null, null, null, "1.2.3", RegexPatterns.Configuration.DefaultTagPrefixPattern, SemanticVersionFormat.Strict)]
2928
[TestCase("version-1.2.3", 1, 2, 3, "", null, null, null, null, null, "1.2.3", "version-", SemanticVersionFormat.Strict)]
3029
[TestCase("1.0.0-develop-20201007113711", 1, 0, 0, "develop-20201007113711", null, null, null, null, null, "1.0.0-develop-20201007113711", null, SemanticVersionFormat.Strict)]
3130
[TestCase("20201007113711.658165168461351.64136516984163213-develop-20201007113711.98848747823+65416321321", 20201007113711, 658165168461351, 64136516984163213, "develop-20201007113711", 98848747823, 65416321321, null, null, null, "20201007113711.658165168461351.64136516984163213-develop-20201007113711.98848747823+65416321321", null, SemanticVersionFormat.Strict)]
@@ -63,7 +62,7 @@ public void ValidateVersionParsing(
6362

6463
[TestCase("someText")]
6564
[TestCase("some-T-ext")]
66-
[TestCase("v.1.2.3", ConfigurationConstants.DefaultTagPrefix)]
65+
[TestCase("v.1.2.3", RegexPatterns.Configuration.DefaultTagPrefixPattern)]
6766
public void ValidateInvalidVersionParsing(string versionString, string? tagPrefixRegex = null) =>
6867
Assert.That(SemanticVersion.TryParse(versionString, tagPrefixRegex, out _), Is.False, "TryParse Result");
6968

src/GitVersion.Core/Configuration/ConfigurationConstants.cs

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,8 @@ internal static class ConfigurationConstants
2222
VersionStrategies.VersionInBranchName
2323
];
2424
public const string DefaultAssemblyInformationalFormat = "{InformationalVersion}";
25-
//language=regexp
26-
public const string DefaultTagPrefix = "[vV]?";
27-
//language=regexp
28-
public const string DefaultVersionInBranchPattern = @"(?<version>[vV]?\d+(\.\d+)?(\.\d+)?).*";
2925
public const string DefaultCommitDateFormat = "yyyy-MM-dd";
3026
public const string BranchNamePlaceholder = "{BranchName}";
31-
//language=regexp
32-
public const string DefaultLabelNumberPattern = @"[/-](?<number>\d+)";
3327
public const bool DefaultUpdateBuildNumber = true;
3428
public const int DefaultTagPreReleaseWeight = 60000;
3529

@@ -42,21 +36,4 @@ internal static class ConfigurationConstants
4236
public const string HotfixBranchKey = "hotfix";
4337
public const string SupportBranchKey = "support";
4438
public const string UnknownBranchKey = "unknown";
45-
46-
//language=regexp
47-
public const string MainBranchRegex = "^master$|^main$";
48-
//language=regexp
49-
public const string DevelopBranchRegex = "^dev(elop)?(ment)?$";
50-
//language=regexp
51-
public const string ReleaseBranchRegex = "^releases?[/-](?<BranchName>.+)";
52-
//language=regexp
53-
public const string FeatureBranchRegex = "^features?[/-](?<BranchName>.+)";
54-
//language=regexp
55-
public const string PullRequestBranchRegex = @"^(pull|pull\-requests|pr)[/-]";
56-
//language=regexp
57-
public const string HotfixBranchRegex = "^hotfix(es)?[/-](?<BranchName>.+)";
58-
//language=regexp
59-
public const string SupportBranchRegex = "^support[/-](?<BranchName>.+)";
60-
//language=regexp
61-
public const string UnknownBranchRegex = "(?<BranchName>.+)";
6239
}

0 commit comments

Comments
 (0)