The raw tag_name from a GitHub release.
The normalized version, or undefined if the tag isn't valid semver.
normalizeTag("v1.3.0"); // "1.3.0"
normalizeTag("1.3.0"); // "1.3.0"
normalizeTag("2024-05"); // undefined
export function normalizeTag(tag: string): string | undefined {
return semver.valid(tag.replace(/^[vV]/, '')) ?? undefined;
}
Converts a GitHub release tag into a plain semver string, stripping a leading
v/V. Returnsundefinedfor anything semver can't parse, so callers never hand an invalid version tosemver.gt(which throws).