Skip to content

Commit 39dd3dc

Browse files
authored
Merge pull request #4748 from arturcic/main
Refactor RegexPatterns to use properties instead of methods for Regex
2 parents c2485c0 + 822fd5e commit 39dd3dc

File tree

16 files changed

+568
-239
lines changed

16 files changed

+568
-239
lines changed

src/GitVersion.App/ArgumentParserExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public bool IsValidPath()
4141

4242
public bool IsSwitchArgument()
4343
{
44-
var patternRegex = RegexPatterns.Common.SwitchArgumentRegex();
44+
var patternRegex = RegexPatterns.SwitchArgumentRegex;
4545
return value != null
4646
&& (value.StartsWith('-') || value.StartsWith('/'))
4747
&& !patternRegex.Match(value).Success;

src/GitVersion.Core.Tests/Core/RegexPatternTests.cs

Lines changed: 35 additions & 35 deletions
Large diffs are not rendered by default.

src/GitVersion.Core/Core/RegexPatterns.cs

Lines changed: 495 additions & 166 deletions
Large diffs are not rendered by default.

src/GitVersion.Core/Extensions/ConfigurationExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ private static bool ShouldBeIgnored(ICommit commit, IIgnoreConfiguration ignore)
118118
foreach (var groupName in regex.GetGroupNames())
119119
{
120120
var groupValue = match.Groups[groupName].Value;
121-
Lazy<string> escapedGroupValueLazy = new(() => groupValue.RegexReplace(RegexPatterns.Common.SanitizeNameRegexPattern, "-"));
121+
Lazy<string> escapedGroupValueLazy = new(() => groupValue.RegexReplace(RegexPatterns.SanitizeNameRegexPattern, "-"));
122122
var placeholder = $"{{{groupName}}}";
123123
int index, startIndex = 0;
124124
while ((index = label.IndexOf(placeholder, startIndex, StringComparison.InvariantCulture)) >= 0)

src/GitVersion.Core/Formatting/InputSanitizer.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public string SanitizeEnvVarName(string name)
2626
if (name.Length > 200)
2727
throw new ArgumentException($"Environment variable name too long: '{name[..20]}...'");
2828

29-
if (!RegexPatterns.Cache.GetOrAdd(RegexPatterns.Common.SanitizeEnvVarNameRegexPattern).IsMatch(name))
29+
if (!RegexPatterns.Cache.GetOrAdd(RegexPatterns.SanitizeEnvVarNameRegexPattern).IsMatch(name))
3030
throw new ArgumentException($"Environment variable name contains disallowed characters: '{name}'");
3131

3232
return name;
@@ -40,7 +40,7 @@ public string SanitizeMemberName(string memberName)
4040
if (memberName.Length > 100)
4141
throw new ArgumentException($"Member name too long: '{memberName[..20]}...'");
4242

43-
if (!RegexPatterns.Cache.GetOrAdd(RegexPatterns.Common.SanitizeMemberNameRegexPattern).IsMatch(memberName))
43+
if (!RegexPatterns.Cache.GetOrAdd(RegexPatterns.SanitizeMemberNameRegexPattern).IsMatch(memberName))
4444
throw new ArgumentException($"Member name contains disallowed characters: '{memberName}'");
4545

4646
return memberName;

src/GitVersion.Core/Formatting/StringFormatWithExtension.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public string FormatWith<T>(T? source, IEnvironment environment)
4545
var result = new StringBuilder();
4646
var lastIndex = 0;
4747

48-
foreach (var match in RegexPatterns.Common.ExpandTokensRegex().Matches(template).Cast<Match>())
48+
foreach (var match in RegexPatterns.ExpandTokensRegex.Matches(template).Cast<Match>())
4949
{
5050
var replacement = EvaluateMatch(match, source, environment);
5151
result.Append(template, lastIndex, match.Index - lastIndex);

src/GitVersion.Core/Logging/Log.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public IDisposable IndentLog(string operationDescription)
5858

5959
private string FormatMessage(string message, string level)
6060
{
61-
var obscuredMessage = RegexPatterns.Common.ObscurePasswordRegex().Replace(message, "$1$2:*******@");
61+
var obscuredMessage = RegexPatterns.ObscurePasswordRegex.Replace(message, "$1$2:*******@");
6262
var timestamp = $"{DateTime.Now:yy-MM-dd H:mm:ss:ff}";
6363
return string.Format(CultureInfo.InvariantCulture, "{0}{1} [{2}] {3}", this.currentIndentation, level, timestamp, obscuredMessage);
6464
}

src/GitVersion.Core/MergeMessage.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@ public class MergeMessage
1111
{
1212
private static readonly IList<(string Name, Regex Pattern)> DefaultFormats =
1313
[
14-
new("Default", RegexPatterns.MergeMessage.DefaultMergeMessageRegex()),
15-
new("SmartGit", RegexPatterns.MergeMessage.SmartGitMergeMessageRegex()),
16-
new("BitBucketPull", RegexPatterns.MergeMessage.BitBucketPullMergeMessageRegex()),
17-
new("BitBucketPullv7", RegexPatterns.MergeMessage.BitBucketPullv7MergeMessageRegex()),
18-
new("BitBucketCloudPull", RegexPatterns.MergeMessage.BitBucketCloudPullMergeMessageRegex()),
19-
new("GitHubPull", RegexPatterns.MergeMessage.GitHubPullMergeMessageRegex()),
20-
new("RemoteTracking", RegexPatterns.MergeMessage.RemoteTrackingMergeMessageRegex()),
21-
new("AzureDevOpsPull", RegexPatterns.MergeMessage.AzureDevOpsPullMergeMessageRegex())
14+
new("Default", RegexPatterns.MergeMessage.DefaultMergeMessageRegex),
15+
new("SmartGit", RegexPatterns.MergeMessage.SmartGitMergeMessageRegex),
16+
new("BitBucketPull", RegexPatterns.MergeMessage.BitBucketPullMergeMessageRegex),
17+
new("BitBucketPullv7", RegexPatterns.MergeMessage.BitBucketPullv7MergeMessageRegex),
18+
new("BitBucketCloudPull", RegexPatterns.MergeMessage.BitBucketCloudPullMergeMessageRegex),
19+
new("GitHubPull", RegexPatterns.MergeMessage.GitHubPullMergeMessageRegex),
20+
new("RemoteTracking", RegexPatterns.MergeMessage.RemoteTrackingMergeMessageRegex),
21+
new("AzureDevOpsPull", RegexPatterns.MergeMessage.AzureDevOpsPullMergeMessageRegex)
2222
];
2323

2424
public MergeMessage(string mergeMessage, IGitVersionConfiguration configuration)

src/GitVersion.Core/SemVer/SemanticVersion.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ public static bool TryParse(string version, string? tagPrefixRegex,
149149

150150
private static bool TryParseStrict(string version, [NotNullWhen(true)] out SemanticVersion? semanticVersion)
151151
{
152-
var parsed = RegexPatterns.SemanticVersion.ParseStrictRegex().Match(version);
152+
var parsed = RegexPatterns.SemanticVersion.ParseStrictRegex.Match(version);
153153

154154
if (!parsed.Success)
155155
{
@@ -171,7 +171,7 @@ private static bool TryParseStrict(string version, [NotNullWhen(true)] out Seman
171171

172172
private static bool TryParseLoose(string version, [NotNullWhen(true)] out SemanticVersion? semanticVersion)
173173
{
174-
var parsed = RegexPatterns.SemanticVersion.ParseLooseRegex().Match(version);
174+
var parsed = RegexPatterns.SemanticVersion.ParseLooseRegex.Match(version);
175175

176176
if (!parsed.Success)
177177
{

src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ public static SemanticVersionBuildMetaData Parse(string? buildMetaData)
111111
if (buildMetaData.IsNullOrEmpty())
112112
return Empty;
113113

114-
var parsed = RegexPatterns.SemanticVersion.ParseBuildMetaDataRegex().Match(buildMetaData);
114+
var parsed = RegexPatterns.SemanticVersion.ParseBuildMetaDataRegex.Match(buildMetaData);
115115

116116
long? buildMetaDataCommitsSinceTag = null;
117117
long? buildMetaDataCommitsSinceVersionSource = null;
@@ -147,7 +147,7 @@ public static SemanticVersionBuildMetaData Parse(string? buildMetaData)
147147
private static string FormatMetaDataPart(string value)
148148
{
149149
if (!value.IsNullOrEmpty())
150-
value = RegexPatterns.SemanticVersion.FormatBuildMetaDataRegex().Replace(value, "-");
150+
value = RegexPatterns.SemanticVersion.FormatBuildMetaDataRegex.Replace(value, "-");
151151
return value;
152152
}
153153
}

0 commit comments

Comments
 (0)