public string GetSuggestedVersionAfterBump(VersionBumpType bump) { return(bump switch { VersionBumpType.Downgrade => null, VersionBumpType.None => ToString(), VersionBumpType.Patch => $"{Major}.{Minor}.{Patch + 1}", VersionBumpType.Minor => $"{Major}.{Minor + 1}.0", VersionBumpType.Major => $"{Major + 1}.0.0", _ => throw new ArgumentOutOfRangeException(nameof(bump), bump, null) });
static VersionBumpType Max(VersionBumpType a, IEnumerable <VersionBumpType> others) { var othersList = others.ToList(); if (othersList.Count == 0) { return(a); } return((VersionBumpType)Math.Max((int)a, othersList.Max(b => (int)b))); }
public static VersionBumpType ToBumpType(this RuleOverrideType overrideType, VersionBumpType bump) { return(overrideType switch { RuleOverrideType.NoOverride => bump, RuleOverrideType.Ignore => VersionBumpType.None, RuleOverrideType.Major => VersionBumpType.Major, RuleOverrideType.Minor => VersionBumpType.Minor, RuleOverrideType.Patch => VersionBumpType.Patch, _ => throw new ArgumentOutOfRangeException(nameof(overrideType), overrideType, null) });
public static string GetSuggestedVersion(this string version, VersionBumpType bump) => version.ToSemver().GetSuggestedVersionAfterBump(bump);