GitVersion.VersionCalculation.NextVersionCalculator.UpdatePreReleaseTag C# (CSharp) Method

UpdatePreReleaseTag() private method

private UpdatePreReleaseTag ( GitVersionContext context, SemanticVersion semanticVersion, string branchNameOverride ) : void
context GitVersionContext
semanticVersion SemanticVersion
branchNameOverride string
return void
        void UpdatePreReleaseTag(GitVersionContext context, SemanticVersion semanticVersion, string branchNameOverride)
        {
            var tagToUse = GetBranchSpecificTag(context.Configuration, context.CurrentBranch.FriendlyName, branchNameOverride);

            int? number = null;

            var lastTag = context.RepositoryMetadataProvider
                .GetVersionTagsOnBranch(context.CurrentBranch, context.Configuration.GitTagPrefix)
                .FirstOrDefault(v => v.PreReleaseTag.Name == tagToUse);

            if (lastTag != null &&
                MajorMinorPatchEqual(lastTag, semanticVersion) &&
                lastTag.PreReleaseTag.HasTag())
            {
                number = lastTag.PreReleaseTag.Number + 1;
            }

            if (number == null)
            {
                number = 1;
            }

            semanticVersion.PreReleaseTag = new SemanticVersionPreReleaseTag(tagToUse, number);
        }