Skip to content

Commit d282992

Browse files
authored
Merge pull request #4607 from 9swampy/MoreRegexesForCache
More Regexes for cache
2 parents ab2d303 + eed9c50 commit d282992

File tree

4 files changed

+20
-3
lines changed

4 files changed

+20
-3
lines changed

src/GitVersion.Core/Core/RegexPatterns.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ public static Regex GetOrAdd([StringSyntax(StringSyntaxAttribute.Regex)] string
2929
[Common.SwitchArgumentRegexPattern] = Common.SwitchArgumentRegex,
3030
[Common.ObscurePasswordRegexPattern] = Common.ObscurePasswordRegex,
3131
[Common.ExpandTokensRegexPattern] = Common.ExpandTokensRegex,
32+
[Common.SanitizeNameRegexPattern] = Common.SanitizeNameRegex,
3233
[Configuration.DefaultTagPrefixRegexPattern] = Configuration.DefaultTagPrefixRegex,
3334
[Configuration.DefaultVersionInBranchRegexPattern] = Configuration.DefaultVersionInBranchRegex,
3435
[Configuration.MainBranchRegexPattern] = Configuration.MainBranchRegex,
@@ -50,6 +51,7 @@ public static Regex GetOrAdd([StringSyntax(StringSyntaxAttribute.Regex)] string
5051
[Output.AssemblyVersionRegexPattern] = Output.AssemblyVersionRegex,
5152
[Output.AssemblyInfoVersionRegexPattern] = Output.AssemblyInfoVersionRegex,
5253
[Output.AssemblyFileVersionRegexPattern] = Output.AssemblyFileVersionRegex,
54+
[Output.SanitizeAssemblyInfoRegexPattern] = Output.SanitizeAssemblyInfoRegex,
5355
[Output.CsharpAssemblyAttributeRegexPattern] = Output.CsharpAssemblyAttributeRegex,
5456
[Output.FsharpAssemblyAttributeRegexPattern] = Output.FsharpAssemblyAttributeRegex,
5557
[Output.VisualBasicAssemblyAttributeRegexPattern] = Output.VisualBasicAssemblyAttributeRegex,
@@ -84,6 +86,9 @@ internal static partial class Common
8486
[StringSyntax(StringSyntaxAttribute.Regex)]
8587
internal const string ExpandTokensRegexPattern = """{((env:(?<envvar>\w+))|(?<member>\w+))(\s+(\?\?)??\s+((?<fallback>\w+)|"(?<fallback>.*)"))??}""";
8688

89+
[StringSyntax(StringSyntaxAttribute.Regex, Options)]
90+
internal const string SanitizeNameRegexPattern = "[^a-zA-Z0-9-]";
91+
8792
[GeneratedRegex(SwitchArgumentRegexPattern, Options)]
8893
public static partial Regex SwitchArgumentRegex();
8994

@@ -92,6 +97,9 @@ internal static partial class Common
9297

9398
[GeneratedRegex(ExpandTokensRegexPattern, Options)]
9499
public static partial Regex ExpandTokensRegex();
100+
101+
[GeneratedRegex(SanitizeNameRegexPattern, Options)]
102+
public static partial Regex SanitizeNameRegex();
95103
}
96104

97105
internal static partial class Configuration
@@ -231,6 +239,9 @@ internal static partial class Output
231239
[StringSyntax(StringSyntaxAttribute.Regex)]
232240
internal const string SanitizeParticipantRegexPattern = "[^a-zA-Z0-9]";
233241

242+
[StringSyntax(StringSyntaxAttribute.Regex)]
243+
internal const string SanitizeAssemblyInfoRegexPattern = "[^0-9A-Za-z-.+]";
244+
234245
[GeneratedRegex(AssemblyVersionRegexPattern, Options)]
235246
public static partial Regex AssemblyVersionRegex();
236247

@@ -251,6 +262,9 @@ internal static partial class Output
251262

252263
[GeneratedRegex(SanitizeParticipantRegexPattern, Options)]
253264
public static partial Regex SanitizeParticipantRegex();
265+
266+
[GeneratedRegex(SanitizeAssemblyInfoRegexPattern, RegexOptions.IgnorePatternWhitespace | Options)]
267+
public static partial Regex SanitizeAssemblyInfoRegex();
254268
}
255269

256270
internal static partial class VersionCalculation

src/GitVersion.Core/Extensions/ConfigurationExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ public static bool IsReleaseBranch(this IGitVersionConfiguration configuration,
110110
return label;
111111
}
112112

113-
private static string EscapeInvalidCharacters(string groupValue) => groupValue.RegexReplace("[^a-zA-Z0-9-]", "-");
113+
private static string EscapeInvalidCharacters(string groupValue) => groupValue.RegexReplace(RegexPatterns.Common.SanitizeNameRegexPattern, "-");
114114

115115
public static (string GitDirectory, string WorkingTreeDirectory)? FindGitDir(this IFileSystem fileSystem, string? path)
116116
{

src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionFormatValues.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System.Globalization;
22
using GitVersion.Configuration;
3+
using GitVersion.Core;
34
using GitVersion.Extensions;
45

56
namespace GitVersion;
@@ -41,7 +42,7 @@ public class SemanticVersionFormatValues(SemanticVersion semver, IGitVersionConf
4142

4243
public string? BranchName => semver.BuildMetaData.Branch;
4344

44-
public string? EscapedBranchName => semver.BuildMetaData.Branch?.RegexReplace("[^a-zA-Z0-9-]", "-");
45+
public string? EscapedBranchName => semver.BuildMetaData.Branch?.RegexReplace(RegexPatterns.Common.SanitizeNameRegexPattern, "-");
4546

4647
public string? Sha => semver.BuildMetaData.Sha;
4748

src/GitVersion.Core/VersionCalculation/VariableProvider.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using GitVersion.Configuration;
2+
using GitVersion.Core;
23
using GitVersion.Extensions;
34
using GitVersion.Helpers;
45
using GitVersion.OutputVariables;
@@ -79,7 +80,8 @@ public GitVersionVariables GetVariablesFor(
7980
{
8081
try
8182
{
82-
formattedString = formatString.FormatWith(source, this.environment).RegexReplace("[^0-9A-Za-z-.+]", "-");
83+
formattedString = formatString.FormatWith(source, this.environment)
84+
.RegexReplace(RegexPatterns.Output.SanitizeAssemblyInfoRegexPattern, "-");
8385
}
8486
catch (ArgumentException exception)
8587
{

0 commit comments

Comments
 (0)