do not assume tag text is always semantic versioning

regex \d+\.\d+\.\d+ is tested for repository tags. But it's not
sufficient. For example, '0.1.2.3.4' is not adopting a semantic
versioning, but can pass the regex.
This commit is contained in:
rhysd 2018-02-12 00:05:51 +09:00
parent 9b705a72eb
commit d5c53b8d05
1 changed files with 9 additions and 1 deletions

View File

@ -33,11 +33,19 @@ func findAssetFromReleasse(rel *github.RepositoryRelease, suffixes []string) (*g
verText = verText[indices[0]:]
}
// If semver cannot parse the version text, it means that the text is not adopting
// the semantic versioning. So it should be skipped.
ver, err := semver.Make(verText)
if err != nil {
log.Println("Failed to parse a semantic version", verText)
return nil, semver.Version{}, false
}
for _, asset := range rel.Assets {
name := asset.GetName()
for _, s := range suffixes {
if strings.HasSuffix(name, s) {
return &asset, semver.MustParse(verText), true
return &asset, ver, true
}
}
}