Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/GitVersion.App/ArgumentParserExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ public bool IsValidPath()

public bool IsSwitchArgument()
{
var patternRegex = RegexPatterns.Common.SwitchArgumentRegex();
var patternRegex = RegexPatterns.SwitchArgumentRegex;
return value != null
&& (value.StartsWith('-') || value.StartsWith('/'))
&& !patternRegex.Match(value).Success;
Expand Down
70 changes: 35 additions & 35 deletions src/GitVersion.Core.Tests/Core/RegexPatternTests.cs

Large diffs are not rendered by default.

661 changes: 495 additions & 166 deletions src/GitVersion.Core/Core/RegexPatterns.cs

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion src/GitVersion.Core/Extensions/ConfigurationExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ private static bool ShouldBeIgnored(ICommit commit, IIgnoreConfiguration ignore)
foreach (var groupName in regex.GetGroupNames())
{
var groupValue = match.Groups[groupName].Value;
Lazy<string> escapedGroupValueLazy = new(() => groupValue.RegexReplace(RegexPatterns.Common.SanitizeNameRegexPattern, "-"));
Lazy<string> escapedGroupValueLazy = new(() => groupValue.RegexReplace(RegexPatterns.SanitizeNameRegexPattern, "-"));
var placeholder = $"{{{groupName}}}";
int index, startIndex = 0;
while ((index = label.IndexOf(placeholder, startIndex, StringComparison.InvariantCulture)) >= 0)
Expand Down
4 changes: 2 additions & 2 deletions src/GitVersion.Core/Formatting/InputSanitizer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public string SanitizeEnvVarName(string name)
if (name.Length > 200)
throw new ArgumentException($"Environment variable name too long: '{name[..20]}...'");

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

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

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

return memberName;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ public string FormatWith<T>(T? source, IEnvironment environment)
var result = new StringBuilder();
var lastIndex = 0;

foreach (var match in RegexPatterns.Common.ExpandTokensRegex().Matches(template).Cast<Match>())
foreach (var match in RegexPatterns.ExpandTokensRegex.Matches(template).Cast<Match>())
{
var replacement = EvaluateMatch(match, source, environment);
result.Append(template, lastIndex, match.Index - lastIndex);
Expand Down
2 changes: 1 addition & 1 deletion src/GitVersion.Core/Logging/Log.cs
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ public IDisposable IndentLog(string operationDescription)

private string FormatMessage(string message, string level)
{
var obscuredMessage = RegexPatterns.Common.ObscurePasswordRegex().Replace(message, "$1$2:*******@");
var obscuredMessage = RegexPatterns.ObscurePasswordRegex.Replace(message, "$1$2:*******@");
var timestamp = $"{DateTime.Now:yy-MM-dd H:mm:ss:ff}";
return string.Format(CultureInfo.InvariantCulture, "{0}{1} [{2}] {3}", this.currentIndentation, level, timestamp, obscuredMessage);
}
Expand Down
16 changes: 8 additions & 8 deletions src/GitVersion.Core/MergeMessage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,14 @@ public class MergeMessage
{
private static readonly IList<(string Name, Regex Pattern)> DefaultFormats =
[
new("Default", RegexPatterns.MergeMessage.DefaultMergeMessageRegex()),
new("SmartGit", RegexPatterns.MergeMessage.SmartGitMergeMessageRegex()),
new("BitBucketPull", RegexPatterns.MergeMessage.BitBucketPullMergeMessageRegex()),
new("BitBucketPullv7", RegexPatterns.MergeMessage.BitBucketPullv7MergeMessageRegex()),
new("BitBucketCloudPull", RegexPatterns.MergeMessage.BitBucketCloudPullMergeMessageRegex()),
new("GitHubPull", RegexPatterns.MergeMessage.GitHubPullMergeMessageRegex()),
new("RemoteTracking", RegexPatterns.MergeMessage.RemoteTrackingMergeMessageRegex()),
new("AzureDevOpsPull", RegexPatterns.MergeMessage.AzureDevOpsPullMergeMessageRegex())
new("Default", RegexPatterns.MergeMessage.DefaultMergeMessageRegex),
new("SmartGit", RegexPatterns.MergeMessage.SmartGitMergeMessageRegex),
new("BitBucketPull", RegexPatterns.MergeMessage.BitBucketPullMergeMessageRegex),
new("BitBucketPullv7", RegexPatterns.MergeMessage.BitBucketPullv7MergeMessageRegex),
new("BitBucketCloudPull", RegexPatterns.MergeMessage.BitBucketCloudPullMergeMessageRegex),
new("GitHubPull", RegexPatterns.MergeMessage.GitHubPullMergeMessageRegex),
new("RemoteTracking", RegexPatterns.MergeMessage.RemoteTrackingMergeMessageRegex),
new("AzureDevOpsPull", RegexPatterns.MergeMessage.AzureDevOpsPullMergeMessageRegex)
];

public MergeMessage(string mergeMessage, IGitVersionConfiguration configuration)
Expand Down
4 changes: 2 additions & 2 deletions src/GitVersion.Core/SemVer/SemanticVersion.cs
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ public static bool TryParse(string version, string? tagPrefixRegex,

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

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

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

if (!parsed.Success)
{
Expand Down
4 changes: 2 additions & 2 deletions src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ public static SemanticVersionBuildMetaData Parse(string? buildMetaData)
if (buildMetaData.IsNullOrEmpty())
return Empty;

var parsed = RegexPatterns.SemanticVersion.ParseBuildMetaDataRegex().Match(buildMetaData);
var parsed = RegexPatterns.SemanticVersion.ParseBuildMetaDataRegex.Match(buildMetaData);

long? buildMetaDataCommitsSinceTag = null;
long? buildMetaDataCommitsSinceVersionSource = null;
Expand Down Expand Up @@ -147,7 +147,7 @@ public static SemanticVersionBuildMetaData Parse(string? buildMetaData)
private static string FormatMetaDataPart(string value)
{
if (!value.IsNullOrEmpty())
value = RegexPatterns.SemanticVersion.FormatBuildMetaDataRegex().Replace(value, "-");
value = RegexPatterns.SemanticVersion.FormatBuildMetaDataRegex.Replace(value, "-");
return value;
}
}
2 changes: 1 addition & 1 deletion src/GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ public static SemanticVersionPreReleaseTag Parse(string? preReleaseTag)
{
if (preReleaseTag.IsNullOrEmpty()) return Empty;

var match = RegexPatterns.SemanticVersion.ParsePreReleaseTagRegex().Match(preReleaseTag);
var match = RegexPatterns.SemanticVersion.ParsePreReleaseTagRegex.Match(preReleaseTag);
if (!match.Success)
{
// TODO check how to log this
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,10 +49,10 @@ public VersionField DetermineIncrementedField(
{
commits.NotNull();

var majorRegex = TryGetRegexOrDefault(configuration.MajorVersionBumpMessage, RegexPatterns.VersionCalculation.DefaultMajorRegex());
var minorRegex = TryGetRegexOrDefault(configuration.MinorVersionBumpMessage, RegexPatterns.VersionCalculation.DefaultMinorRegex());
var patchRegex = TryGetRegexOrDefault(configuration.PatchVersionBumpMessage, RegexPatterns.VersionCalculation.DefaultPatchRegex());
var noBumpRegex = TryGetRegexOrDefault(configuration.NoBumpMessage, RegexPatterns.VersionCalculation.DefaultNoBumpRegex());
var majorRegex = TryGetRegexOrDefault(configuration.MajorVersionBumpMessage, RegexPatterns.VersionCalculation.DefaultMajorRegex);
var minorRegex = TryGetRegexOrDefault(configuration.MinorVersionBumpMessage, RegexPatterns.VersionCalculation.DefaultMinorRegex);
var patchRegex = TryGetRegexOrDefault(configuration.PatchVersionBumpMessage, RegexPatterns.VersionCalculation.DefaultPatchRegex);
var noBumpRegex = TryGetRegexOrDefault(configuration.NoBumpMessage, RegexPatterns.VersionCalculation.DefaultNoBumpRegex);

var increments = commits
.Select(c => GetIncrementFromCommit(c, majorRegex, minorRegex, patchRegex, noBumpRegex))
Expand Down Expand Up @@ -209,10 +209,10 @@ public VersionField GetIncrementForcedByCommit(ICommit commit, IGitVersionConfig
commit.NotNull();
configuration.NotNull();

var majorRegex = TryGetRegexOrDefault(configuration.MajorVersionBumpMessage, RegexPatterns.VersionCalculation.DefaultMajorRegex());
var minorRegex = TryGetRegexOrDefault(configuration.MinorVersionBumpMessage, RegexPatterns.VersionCalculation.DefaultMinorRegex());
var patchRegex = TryGetRegexOrDefault(configuration.PatchVersionBumpMessage, RegexPatterns.VersionCalculation.DefaultPatchRegex());
var none = TryGetRegexOrDefault(configuration.NoBumpMessage, RegexPatterns.VersionCalculation.DefaultNoBumpRegex());
var majorRegex = TryGetRegexOrDefault(configuration.MajorVersionBumpMessage, RegexPatterns.VersionCalculation.DefaultMajorRegex);
var minorRegex = TryGetRegexOrDefault(configuration.MinorVersionBumpMessage, RegexPatterns.VersionCalculation.DefaultMinorRegex);
var patchRegex = TryGetRegexOrDefault(configuration.PatchVersionBumpMessage, RegexPatterns.VersionCalculation.DefaultPatchRegex);
var none = TryGetRegexOrDefault(configuration.NoBumpMessage, RegexPatterns.VersionCalculation.DefaultNoBumpRegex);

return GetIncrementFromCommit(commit, majorRegex, minorRegex, patchRegex, none) ?? VersionField.None;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ public class SemanticVersionFormatValues(SemanticVersion semver, IGitVersionConf

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

public string? EscapedBranchName => semver.BuildMetaData.Branch?.RegexReplace(RegexPatterns.Common.SanitizeNameRegexPattern, "-");
public string? EscapedBranchName => semver.BuildMetaData.Branch?.RegexReplace(RegexPatterns.SanitizeNameRegexPattern, "-");

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

Expand Down
6 changes: 3 additions & 3 deletions src/GitVersion.MsBuild/Helpers/AssemblyInfoFileHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,9 @@ private static bool FileContainsVersionAttribute(IFileSystem fileSystem, string

var (attributeRegex, triviaRegex) = compileFileExtension switch
{
".cs" => (CSharp.AttributeRegex(), CSharp.TriviaRegex()),
".fs" => (FSharp.AttributeRegex(), FSharp.TriviaRegex()),
".vb" => (VisualBasic.AttributeRegex(), VisualBasic.TriviaRegex()),
".cs" => (CSharp.AttributeRegex, CSharp.TriviaRegex),
".fs" => (FSharp.AttributeRegex, FSharp.TriviaRegex),
".vb" => (VisualBasic.AttributeRegex, VisualBasic.TriviaRegex),
_ => throw new WarningException("File with name containing AssemblyInfo could not be checked for assembly version attributes which conflict with the attributes generated by GitVersion " + compileFile)
};

Expand Down
12 changes: 6 additions & 6 deletions src/GitVersion.Output/AssemblyInfo/AssemblyInfoFileUpdater.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ internal sealed class AssemblyInfoFileUpdater(ILog log, IFileSystem fileSystem)

private readonly Dictionary<string, Regex> assemblyAttributeRegexes = new()
{
[".cs"] = RegexPatterns.Output.CsharpAssemblyAttributeRegex(),
[".fs"] = RegexPatterns.Output.FsharpAssemblyAttributeRegex(),
[".vb"] = RegexPatterns.Output.VisualBasicAssemblyAttributeRegex()
[".cs"] = RegexPatterns.Output.CsharpAssemblyAttributeRegex,
[".fs"] = RegexPatterns.Output.FsharpAssemblyAttributeRegex,
[".vb"] = RegexPatterns.Output.VisualBasicAssemblyAttributeRegex
};

private const string NewLine = "\r\n";
Expand Down Expand Up @@ -65,17 +65,17 @@ public void Execute(GitVersionVariables variables, AssemblyInfoContext context)

if (!assemblyVersion.IsNullOrWhiteSpace())
{
fileContents = ReplaceOrInsertAfterLastAssemblyAttributeOrAppend(RegexPatterns.Output.AssemblyVersionRegex(), fileContents, assemblyVersionString, assemblyInfoFile.Extension, ref appendedAttributes);
fileContents = ReplaceOrInsertAfterLastAssemblyAttributeOrAppend(RegexPatterns.Output.AssemblyVersionRegex, fileContents, assemblyVersionString, assemblyInfoFile.Extension, ref appendedAttributes);
}

if (!assemblyFileVersion.IsNullOrWhiteSpace())
{
fileContents = ReplaceOrInsertAfterLastAssemblyAttributeOrAppend(RegexPatterns.Output.AssemblyFileVersionRegex(), fileContents, assemblyFileVersionString, assemblyInfoFile.Extension, ref appendedAttributes);
fileContents = ReplaceOrInsertAfterLastAssemblyAttributeOrAppend(RegexPatterns.Output.AssemblyFileVersionRegex, fileContents, assemblyFileVersionString, assemblyInfoFile.Extension, ref appendedAttributes);
}

if (!assemblyInfoVersion.IsNullOrWhiteSpace())
{
fileContents = ReplaceOrInsertAfterLastAssemblyAttributeOrAppend(RegexPatterns.Output.AssemblyInfoVersionRegex(), fileContents, assemblyInfoVersionString, assemblyInfoFile.Extension, ref appendedAttributes);
fileContents = ReplaceOrInsertAfterLastAssemblyAttributeOrAppend(RegexPatterns.Output.AssemblyInfoVersionRegex, fileContents, assemblyInfoVersionString, assemblyInfoFile.Extension, ref appendedAttributes);
}

if (appendedAttributes)
Expand Down
2 changes: 1 addition & 1 deletion src/GitVersion.Testing/Helpers/ParticipantSanitizer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ public static string SanitizeParticipant(string participant)
{
GuardAgainstInvalidParticipants(participant);

return RegexPatterns.Output.SanitizeParticipantRegex().Replace(participant, "_");
return RegexPatterns.Output.SanitizeParticipantRegex.Replace(participant, "_");
}

private static void GuardAgainstInvalidParticipants(string participant)
Expand Down
Loading