func validatePrereleaseTag()

in code/go/internal/validator/semantic/validate_prerelease.go [70:97]


func validatePrereleaseTag(tag string) error {
	if tag == "" {
		return nil
	}

	for _, literal := range literalPrereleases {
		if tag == literal {
			return nil
		}
	}

	for _, numbered := range numberedPrereleases {
		if tag == numbered {
			return nil
		}

		pattern := regexp.MustCompile(fmt.Sprintf("^%s%s$", numbered, prereleaseNumberPattern))
		if pattern.MatchString(tag) {
			return nil
		}
	}

	return fmt.Errorf("prerelease tag (%s) should be one of [%s], or one of [%s] followed by numbers",
		tag,
		strings.Join(literalPrereleases, ", "),
		strings.Join(numberedPrereleases, ", "),
	)
}