in code/go/internal/validator/semantic/validate_minimum_kibana_version.go [151:178]
func kibanaVersionConditionIsGreaterThanOrEqualTo(kibanaVersionCondition, minimumVersion string) bool {
if kibanaVersionCondition == "" {
return false
}
if kibanaVersionCondition == fmt.Sprintf("^%s", minimumVersion) {
return true
}
// get all versions e.g 8.8.0, 8.8.1 from "^8.8.0 || ^8.8.1" and check if any of them is less than 8.8.0
pattern := `(\d+\.\d+\.\d+)`
minSemver := semver.MustParse(minimumVersion)
regex := regexp.MustCompile(pattern)
matches := regex.FindAllString(kibanaVersionCondition, -1)
for _, match := range matches {
matchVersion, err := semver.NewVersion(match)
if err != nil {
return false
}
if matchVersion.LessThan(minSemver) {
return false
}
}
return true
}