Skip to content

Commit 719899e

Browse files
authored
Merge pull request #4202 from arturcic/feature/regex
Move regex patterns to a common file
2 parents 1e376ce + e507abf commit 719899e

40 files changed

+222
-164
lines changed

new-cli/GitVersion.Common/GitVersion.Common.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
<Compile Include="..\..\src\GitVersion.Core\Core\Abstractions\IEnvironment.cs" Link="Infrastructure\%(Filename)%(Extension)" />
77
<Compile Include="..\..\src\GitVersion.Core\Core\Abstractions\IFileSystem.cs" Link="Infrastructure\%(Filename)%(Extension)" />
88
<Compile Include="..\..\src\GitVersion.Core\Core\Exceptions\WarningException.cs" Link="Exceptions\%(Filename)%(Extension)"/>
9+
<Compile Include="..\..\src\GitVersion.Core\Core\RegexPatterns.cs" Link="%(Filename)%(Extension)" />
910
<Compile Include="..\..\src\GitVersion.Core\Extensions\StringExtensions.cs" Link="Extensions\StringExtensions.cs" />
1011
<Compile Include="..\..\src\GitVersion.Core\Extensions\CommonExtensions.cs" Link="Extensions\CommonExtensions.cs" />
1112
<Compile Include="..\..\src\GitVersion.Core\Helpers\*.cs" Link="Helpers\%(Filename)%(Extension)" />

src/GitVersion.App/ArgumentParserExtensions.cs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using System.Text.RegularExpressions;
1+
using GitVersion.Core;
22
using GitVersion.Helpers;
33

44
namespace GitVersion;
@@ -39,9 +39,13 @@ public static bool IsValidPath(this string? path)
3939
}
4040

4141
public static bool IsSwitchArgument(this string? value)
42-
=> value != null
43-
&& (value.StartsWith('-') || value.StartsWith('/'))
44-
&& !Regex.Match(value, @"/\w+:").Success; //Exclude msbuild & project parameters in form /blah:, which should be parsed as values, not switch names.
42+
{
43+
var patternRegex = RegexPatterns.Common.SwitchArgumentRegex;
44+
return value != null
45+
&& (value.StartsWith('-') || value.StartsWith('/'))
46+
&& !patternRegex.Match(value).Success;
47+
//Exclude msbuild & project parameters in form /blah:, which should be parsed as values, not switch names.
48+
}
4549

4650
public static bool IsSwitch(this string? value, string switchName)
4751
{

src/GitVersion.Configuration/BranchConfiguration.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ public virtual IBranchConfiguration Inherit(IBranchConfiguration configuration)
9090
Increment = Increment == IncrementStrategy.Inherit ? configuration.Increment : Increment,
9191
DeploymentMode = DeploymentMode ?? configuration.DeploymentMode,
9292
Label = Label ?? configuration.Label,
93-
PreventIncrement = new PreventIncrementConfiguration()
93+
PreventIncrement = new PreventIncrementConfiguration
9494
{
9595
OfMergedBranch = PreventIncrement.OfMergedBranch ?? configuration.PreventIncrement.OfMergedBranch,
9696
WhenBranchMerged = PreventIncrement.WhenBranchMerged ?? configuration.PreventIncrement.WhenBranchMerged,
@@ -117,7 +117,7 @@ public virtual IBranchConfiguration Inherit(EffectiveConfiguration configuration
117117
Increment = Increment == IncrementStrategy.Inherit ? configuration.Increment : Increment,
118118
DeploymentMode = DeploymentMode ?? configuration.DeploymentMode,
119119
Label = Label ?? configuration.Label,
120-
PreventIncrement = new PreventIncrementConfiguration()
120+
PreventIncrement = new PreventIncrementConfiguration
121121
{
122122
OfMergedBranch = PreventIncrement.OfMergedBranch ?? configuration.PreventIncrementOfMergedBranch,
123123
WhenBranchMerged = PreventIncrement.WhenBranchMerged ?? configuration.PreventIncrementWhenBranchMerged,

src/GitVersion.Configuration/Builders/BranchConfigurationBuilder.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ public virtual BranchConfigurationBuilder WithConfiguration(IBranchConfiguration
177177
IsMainBranch = isMainBranch,
178178
IsReleaseBranch = isReleaseBranch,
179179
LabelNumberPattern = labelNumberPattern,
180-
PreventIncrement = new PreventIncrementConfiguration()
180+
PreventIncrement = new PreventIncrementConfiguration
181181
{
182182
OfMergedBranch = preventIncrementOfMergedBranch,
183183
WhenBranchMerged = preventIncrementWhenBranchMerged,

src/GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -423,7 +423,7 @@ public virtual IGitVersionConfiguration Build()
423423
IsMainBranch = this.isMainBranch,
424424
IsReleaseBranch = this.isReleaseBranch,
425425
LabelNumberPattern = this.labelNumberPattern,
426-
PreventIncrement = new PreventIncrementConfiguration()
426+
PreventIncrement = new PreventIncrementConfiguration
427427
{
428428
OfMergedBranch = this.preventIncrementOfMergedBranch,
429429
WhenBranchMerged = this.preventIncrementWhenBranchMerged,

src/GitVersion.Configuration/Builders/GitFlowConfigurationBuilder.cs

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using GitVersion.Core;
12
using GitVersion.VersionCalculation;
23

34
namespace GitVersion.Configuration;
@@ -13,10 +14,10 @@ private GitFlowConfigurationBuilder()
1314
AssemblyFileVersioningScheme = ConfigurationConstants.DefaultAssemblyFileVersioningScheme,
1415
AssemblyVersioningScheme = ConfigurationConstants.DefaultAssemblyVersioningScheme,
1516
CommitDateFormat = ConfigurationConstants.DefaultCommitDateFormat,
16-
MajorVersionBumpMessage = IncrementStrategyFinder.DefaultMajorPattern,
17-
MinorVersionBumpMessage = IncrementStrategyFinder.DefaultMinorPattern,
18-
NoBumpMessage = IncrementStrategyFinder.DefaultNoBumpPattern,
19-
PatchVersionBumpMessage = IncrementStrategyFinder.DefaultPatchPattern,
17+
MajorVersionBumpMessage = RegexPatterns.VersionCalculation.DefaultMajorPattern,
18+
MinorVersionBumpMessage = RegexPatterns.VersionCalculation.DefaultMinorPattern,
19+
NoBumpMessage = RegexPatterns.VersionCalculation.DefaultNoBumpPattern,
20+
PatchVersionBumpMessage = RegexPatterns.VersionCalculation.DefaultPatchPattern,
2021
SemanticVersionFormat = ConfigurationConstants.DefaultSemanticVersionFormat,
2122
VersionStrategies = ConfigurationConstants.DefaultVersionStrategies,
2223
TagPrefix = ConfigurationConstants.DefaultTagPrefix,
@@ -28,7 +29,7 @@ private GitFlowConfigurationBuilder()
2829
Label = ConfigurationConstants.BranchNamePlaceholder,
2930
Increment = IncrementStrategy.Inherit,
3031
CommitMessageIncrementing = CommitMessageIncrementMode.Enabled,
31-
PreventIncrement = new PreventIncrementConfiguration()
32+
PreventIncrement = new PreventIncrementConfiguration
3233
{
3334
OfMergedBranch = false,
3435
WhenBranchMerged = false,
@@ -48,7 +49,7 @@ private GitFlowConfigurationBuilder()
4849
RegularExpression = DevelopBranch.RegexPattern,
4950
SourceBranches = [this.MainBranch.Name],
5051
Label = "alpha",
51-
PreventIncrement = new PreventIncrementConfiguration()
52+
PreventIncrement = new PreventIncrementConfiguration
5253
{
5354
WhenCurrentCommitTagged = false
5455
},
@@ -66,7 +67,7 @@ private GitFlowConfigurationBuilder()
6667
RegularExpression = MainBranch.RegexPattern,
6768
SourceBranches = [],
6869
Label = string.Empty,
69-
PreventIncrement = new PreventIncrementConfiguration()
70+
PreventIncrement = new PreventIncrementConfiguration
7071
{
7172
OfMergedBranch = true
7273
},
@@ -89,7 +90,7 @@ private GitFlowConfigurationBuilder()
8990
this.SupportBranch.Name,
9091
],
9192
Label = "beta",
92-
PreventIncrement = new PreventIncrementConfiguration()
93+
PreventIncrement = new PreventIncrementConfiguration
9394
{
9495
OfMergedBranch = true,
9596
WhenCurrentCommitTagged = false
@@ -115,7 +116,7 @@ private GitFlowConfigurationBuilder()
115116
this.HotfixBranch.Name
116117
],
117118
Label = ConfigurationConstants.BranchNamePlaceholder,
118-
PreventIncrement = new PreventIncrementConfiguration()
119+
PreventIncrement = new PreventIncrementConfiguration
119120
{
120121
WhenCurrentCommitTagged = false
121122
},
@@ -139,7 +140,7 @@ private GitFlowConfigurationBuilder()
139140
this.HotfixBranch.Name
140141
],
141142
Label = "PullRequest",
142-
PreventIncrement = new PreventIncrementConfiguration()
143+
PreventIncrement = new PreventIncrementConfiguration
143144
{
144145
OfMergedBranch = true,
145146
WhenCurrentCommitTagged = false
@@ -154,7 +155,7 @@ private GitFlowConfigurationBuilder()
154155
Increment = IncrementStrategy.Inherit,
155156
RegularExpression = HotfixBranch.RegexPattern,
156157
DeploymentMode = DeploymentMode.ManualDeployment,
157-
PreventIncrement = new PreventIncrementConfiguration()
158+
PreventIncrement = new PreventIncrementConfiguration
158159
{
159160
WhenCurrentCommitTagged = false
160161
},
@@ -175,7 +176,7 @@ private GitFlowConfigurationBuilder()
175176
RegularExpression = SupportBranch.RegexPattern,
176177
SourceBranches = [this.MainBranch.Name],
177178
Label = string.Empty,
178-
PreventIncrement = new PreventIncrementConfiguration()
179+
PreventIncrement = new PreventIncrementConfiguration
179180
{
180181
OfMergedBranch = true
181182
},
@@ -202,7 +203,7 @@ private GitFlowConfigurationBuilder()
202203
this.SupportBranch.Name
203204
],
204205
Label = ConfigurationConstants.BranchNamePlaceholder,
205-
PreventIncrement = new PreventIncrementConfiguration()
206+
PreventIncrement = new PreventIncrementConfiguration
206207
{
207208
WhenCurrentCommitTagged = true
208209
},

src/GitVersion.Configuration/Builders/GitHubFlowConfigurationBuilder.cs

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using GitVersion.Core;
12
using GitVersion.VersionCalculation;
23

34
namespace GitVersion.Configuration;
@@ -13,10 +14,10 @@ private GitHubFlowConfigurationBuilder()
1314
AssemblyFileVersioningScheme = ConfigurationConstants.DefaultAssemblyFileVersioningScheme,
1415
AssemblyVersioningScheme = ConfigurationConstants.DefaultAssemblyVersioningScheme,
1516
CommitDateFormat = ConfigurationConstants.DefaultCommitDateFormat,
16-
MajorVersionBumpMessage = IncrementStrategyFinder.DefaultMajorPattern,
17-
MinorVersionBumpMessage = IncrementStrategyFinder.DefaultMinorPattern,
18-
NoBumpMessage = IncrementStrategyFinder.DefaultNoBumpPattern,
19-
PatchVersionBumpMessage = IncrementStrategyFinder.DefaultPatchPattern,
17+
MajorVersionBumpMessage = RegexPatterns.VersionCalculation.DefaultMajorPattern,
18+
MinorVersionBumpMessage = RegexPatterns.VersionCalculation.DefaultMinorPattern,
19+
NoBumpMessage = RegexPatterns.VersionCalculation.DefaultNoBumpPattern,
20+
PatchVersionBumpMessage = RegexPatterns.VersionCalculation.DefaultPatchPattern,
2021
SemanticVersionFormat = ConfigurationConstants.DefaultSemanticVersionFormat,
2122
VersionStrategies = ConfigurationConstants.DefaultVersionStrategies,
2223
TagPrefix = ConfigurationConstants.DefaultTagPrefix,
@@ -26,7 +27,7 @@ private GitHubFlowConfigurationBuilder()
2627
DeploymentMode = DeploymentMode.ContinuousDelivery,
2728
Label = ConfigurationConstants.BranchNamePlaceholder,
2829
Increment = IncrementStrategy.Inherit,
29-
PreventIncrement = new PreventIncrementConfiguration()
30+
PreventIncrement = new PreventIncrementConfiguration
3031
{
3132
OfMergedBranch = false,
3233
WhenBranchMerged = false,
@@ -45,7 +46,7 @@ private GitHubFlowConfigurationBuilder()
4546
{
4647
Label = string.Empty,
4748
Increment = IncrementStrategy.Patch,
48-
PreventIncrement = new PreventIncrementConfiguration()
49+
PreventIncrement = new PreventIncrementConfiguration
4950
{
5051
OfMergedBranch = true
5152
},
@@ -64,7 +65,7 @@ private GitHubFlowConfigurationBuilder()
6465
DeploymentMode = DeploymentMode.ManualDeployment,
6566
Label = "beta",
6667
Increment = IncrementStrategy.Patch,
67-
PreventIncrement = new PreventIncrementConfiguration()
68+
PreventIncrement = new PreventIncrementConfiguration
6869
{
6970
OfMergedBranch = true,
7071
WhenBranchMerged = false,
@@ -88,7 +89,7 @@ private GitHubFlowConfigurationBuilder()
8889
DeploymentMode = DeploymentMode.ManualDeployment,
8990
Label = ConfigurationConstants.BranchNamePlaceholder,
9091
Increment = IncrementStrategy.Inherit,
91-
PreventIncrement = new PreventIncrementConfiguration()
92+
PreventIncrement = new PreventIncrementConfiguration
9293
{
9394
WhenCurrentCommitTagged = false
9495
},
@@ -108,7 +109,7 @@ private GitHubFlowConfigurationBuilder()
108109
DeploymentMode = DeploymentMode.ContinuousDelivery,
109110
Label = "PullRequest",
110111
Increment = IncrementStrategy.Inherit,
111-
PreventIncrement = new PreventIncrementConfiguration()
112+
PreventIncrement = new PreventIncrementConfiguration
112113
{
113114
OfMergedBranch = true,
114115
WhenCurrentCommitTagged = false
@@ -130,7 +131,7 @@ private GitHubFlowConfigurationBuilder()
130131
DeploymentMode = DeploymentMode.ManualDeployment,
131132
Label = ConfigurationConstants.BranchNamePlaceholder,
132133
Increment = IncrementStrategy.Inherit,
133-
PreventIncrement = new PreventIncrementConfiguration()
134+
PreventIncrement = new PreventIncrementConfiguration
134135
{
135136
WhenCurrentCommitTagged = false
136137
},

src/GitVersion.Configuration/Builders/TrunkBasedConfigurationBuilder.cs

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using GitVersion.Core;
12
using GitVersion.VersionCalculation;
23

34
namespace GitVersion.Configuration;
@@ -8,15 +9,15 @@ internal sealed class TrunkBasedConfigurationBuilder : ConfigurationBuilderBase<
89

910
private TrunkBasedConfigurationBuilder()
1011
{
11-
WithConfiguration(new GitVersionConfiguration()
12+
WithConfiguration(new GitVersionConfiguration
1213
{
1314
AssemblyFileVersioningScheme = ConfigurationConstants.DefaultAssemblyFileVersioningScheme,
1415
AssemblyVersioningScheme = ConfigurationConstants.DefaultAssemblyVersioningScheme,
1516
CommitDateFormat = ConfigurationConstants.DefaultCommitDateFormat,
16-
MajorVersionBumpMessage = IncrementStrategyFinder.DefaultMajorPattern,
17-
MinorVersionBumpMessage = IncrementStrategyFinder.DefaultMinorPattern,
18-
NoBumpMessage = IncrementStrategyFinder.DefaultNoBumpPattern,
19-
PatchVersionBumpMessage = IncrementStrategyFinder.DefaultPatchPattern,
17+
MajorVersionBumpMessage = RegexPatterns.VersionCalculation.DefaultMajorPattern,
18+
MinorVersionBumpMessage = RegexPatterns.VersionCalculation.DefaultMinorPattern,
19+
NoBumpMessage = RegexPatterns.VersionCalculation.DefaultNoBumpPattern,
20+
PatchVersionBumpMessage = RegexPatterns.VersionCalculation.DefaultPatchPattern,
2021
SemanticVersionFormat = ConfigurationConstants.DefaultSemanticVersionFormat,
2122
VersionStrategies = [
2223
VersionStrategies.ConfiguredNextVersion,
@@ -31,7 +32,7 @@ private TrunkBasedConfigurationBuilder()
3132
Label = ConfigurationConstants.BranchNamePlaceholder,
3233
Increment = IncrementStrategy.Inherit,
3334
CommitMessageIncrementing = CommitMessageIncrementMode.Enabled,
34-
PreventIncrement = new PreventIncrementConfiguration()
35+
PreventIncrement = new PreventIncrementConfiguration
3536
{
3637
OfMergedBranch = false,
3738
WhenBranchMerged = false,
@@ -44,12 +45,12 @@ private TrunkBasedConfigurationBuilder()
4445
IsMainBranch = false
4546
});
4647

47-
WithBranch(MainBranch.Name).WithConfiguration(new BranchConfiguration()
48+
WithBranch(MainBranch.Name).WithConfiguration(new BranchConfiguration
4849
{
4950
DeploymentMode = DeploymentMode.ContinuousDeployment,
5051
Label = string.Empty,
5152
Increment = IncrementStrategy.Patch,
52-
PreventIncrement = new PreventIncrementConfiguration()
53+
PreventIncrement = new PreventIncrementConfiguration
5354
{
5455
OfMergedBranch = true
5556
},
@@ -63,12 +64,12 @@ private TrunkBasedConfigurationBuilder()
6364
PreReleaseWeight = 55000
6465
});
6566

66-
WithBranch(FeatureBranch.Name).WithConfiguration(new BranchConfiguration()
67+
WithBranch(FeatureBranch.Name).WithConfiguration(new BranchConfiguration
6768
{
6869
DeploymentMode = DeploymentMode.ContinuousDelivery,
6970
Label = ConfigurationConstants.BranchNamePlaceholder,
7071
Increment = IncrementStrategy.Minor,
71-
PreventIncrement = new PreventIncrementConfiguration()
72+
PreventIncrement = new PreventIncrementConfiguration
7273
{
7374
WhenCurrentCommitTagged = false
7475
},
@@ -82,12 +83,12 @@ private TrunkBasedConfigurationBuilder()
8283
PreReleaseWeight = 30000
8384
});
8485

85-
WithBranch(HotfixBranch.Name).WithConfiguration(new BranchConfiguration()
86+
WithBranch(HotfixBranch.Name).WithConfiguration(new BranchConfiguration
8687
{
8788
DeploymentMode = DeploymentMode.ContinuousDelivery,
8889
Label = ConfigurationConstants.BranchNamePlaceholder,
8990
Increment = IncrementStrategy.Patch,
90-
PreventIncrement = new PreventIncrementConfiguration()
91+
PreventIncrement = new PreventIncrementConfiguration
9192
{
9293
WhenCurrentCommitTagged = false
9394
},
@@ -106,7 +107,7 @@ private TrunkBasedConfigurationBuilder()
106107
DeploymentMode = DeploymentMode.ContinuousDelivery,
107108
Label = "PullRequest",
108109
Increment = IncrementStrategy.Inherit,
109-
PreventIncrement = new PreventIncrementConfiguration()
110+
PreventIncrement = new PreventIncrementConfiguration
110111
{
111112
OfMergedBranch = true,
112113
WhenCurrentCommitTagged = false
@@ -126,7 +127,7 @@ private TrunkBasedConfigurationBuilder()
126127
WithBranch(UnknownBranch.Name).WithConfiguration(new BranchConfiguration
127128
{
128129
Increment = IncrementStrategy.Patch,
129-
PreventIncrement = new PreventIncrementConfiguration()
130+
PreventIncrement = new PreventIncrementConfiguration
130131
{
131132
WhenCurrentCommitTagged = false
132133
},

0 commit comments

Comments
 (0)