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, ", "),
)
}