diff --git a/.semver.txt b/.semver.txt index 5257575..f9ef507 100644 --- a/.semver.txt +++ b/.semver.txt @@ -1 +1 @@ -1.0.77 +1.0.78 diff --git a/src/JiraTimeBot/Mercurial/GitLog.cs b/src/JiraTimeBot/Mercurial/GitLog.cs index 08a10e0..3bf5bdc 100644 --- a/src/JiraTimeBot/Mercurial/GitLog.cs +++ b/src/JiraTimeBot/Mercurial/GitLog.cs @@ -108,10 +108,13 @@ namespace JiraTimeBot.Mercurial } var commitMessage = commit.MessageShort; + commitMessage = _technicalInfoSkipper.StripBranchPrefix(branch, commitMessage); + if (_commitSkipper.IsNeedToSkip(branch, commitMessage)) { continue; } + commitMessage = _technicalInfoSkipper.StripTechnicalInfo(commitMessage); var files = FilesToMerge(commit, repo); diff --git a/src/JiraTimeBot/Mercurial/Modifiers/ITechnicalInfoSkipper.cs b/src/JiraTimeBot/Mercurial/Modifiers/ITechnicalInfoSkipper.cs index 39b76b2..f38a577 100644 --- a/src/JiraTimeBot/Mercurial/Modifiers/ITechnicalInfoSkipper.cs +++ b/src/JiraTimeBot/Mercurial/Modifiers/ITechnicalInfoSkipper.cs @@ -2,6 +2,7 @@ { public interface ITechnicalInfoSkipper { + string StripBranchPrefix(string branch, string commitMessage); string StripTechnicalInfo(string commitMessage); } } diff --git a/src/JiraTimeBot/Mercurial/Modifiers/TechnicalInfoSkipper.cs b/src/JiraTimeBot/Mercurial/Modifiers/TechnicalInfoSkipper.cs index d5e0d37..a379f7a 100644 --- a/src/JiraTimeBot/Mercurial/Modifiers/TechnicalInfoSkipper.cs +++ b/src/JiraTimeBot/Mercurial/Modifiers/TechnicalInfoSkipper.cs @@ -1,9 +1,26 @@ -using System.Text; +using System; +using System.Text; namespace JiraTimeBot.Mercurial.Modifiers { public class TechnicalInfoSkipper : ITechnicalInfoSkipper { + public string StripBranchPrefix(string branch, string commitMessage) + { + if (commitMessage.StartsWith(branch, StringComparison.InvariantCultureIgnoreCase)) + { + return commitMessage.TrimStart(branch.ToCharArray()).Trim(); + } + + var quotedBranch = $"[{branch}]"; + if (commitMessage.StartsWith(quotedBranch, StringComparison.InvariantCultureIgnoreCase)) + { + return commitMessage.TrimStart(quotedBranch.ToCharArray()).Trim(); + } + + return commitMessage; + } + public string StripTechnicalInfo(string commitMessage) { if (!commitMessage.Contains("Signed-by:")) diff --git a/src/JiraTimeBot/Properties/AssemblyInfo.cs b/src/JiraTimeBot/Properties/AssemblyInfo.cs index 271f55e..6730c07 100644 --- a/src/JiraTimeBot/Properties/AssemblyInfo.cs +++ b/src/JiraTimeBot/Properties/AssemblyInfo.cs @@ -1,31 +1,31 @@ -using System.Reflection; -using System.Runtime.InteropServices; -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("JiraTimeBot")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("JiraTimeBot")] -[assembly: AssemblyCopyright("Copyright © 2019")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("f3b89316-c38c-4ce6-9d88-0b1373cfba1a")] -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -[assembly: AssemblyVersion("1.0.77")] -[assembly: AssemblyFileVersion("1.0.77")] -[assembly: AssemblyInformationalVersion("1.0.77")] +using System.Reflection; +using System.Runtime.InteropServices; +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("JiraTimeBot")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("JiraTimeBot")] +[assembly: AssemblyCopyright("Copyright © 2019")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("f3b89316-c38c-4ce6-9d88-0b1373cfba1a")] +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.78")] +[assembly: AssemblyFileVersion("1.0.78")] +[assembly: AssemblyInformationalVersion("1.0.78")]