fix(stupgrades): return latest stable & pre for each major
This commit is contained in:
@@ -201,17 +201,21 @@ func (p *proxy) ServeHTTP(w http.ResponseWriter, req *http.Request) {
|
|||||||
// looking for a prerelease at all.
|
// looking for a prerelease at all.
|
||||||
func filterForLatest(rels []upgrade.Release) []upgrade.Release {
|
func filterForLatest(rels []upgrade.Release) []upgrade.Release {
|
||||||
var filtered []upgrade.Release
|
var filtered []upgrade.Release
|
||||||
var havePre bool
|
havePre := make(map[string]bool)
|
||||||
|
haveStable := make(map[string]bool)
|
||||||
for _, rel := range rels {
|
for _, rel := range rels {
|
||||||
if !rel.Prerelease {
|
major, _, _ := strings.Cut(rel.Tag, ".")
|
||||||
// We found a stable version, we're good now.
|
if !rel.Prerelease && !haveStable[major] {
|
||||||
|
// Remember the first non-pre for each major
|
||||||
filtered = append(filtered, rel)
|
filtered = append(filtered, rel)
|
||||||
break
|
haveStable[major] = true
|
||||||
|
continue
|
||||||
}
|
}
|
||||||
if rel.Prerelease && !havePre {
|
if rel.Prerelease && !havePre[major] && !haveStable[major] {
|
||||||
// We remember the first prerelease we find.
|
// We remember the first prerelease we find, unless we've
|
||||||
|
// already found a non-pre of the same major.
|
||||||
filtered = append(filtered, rel)
|
filtered = append(filtered, rel)
|
||||||
havePre = true
|
havePre[major] = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return filtered
|
return filtered
|
||||||
|
|||||||
Reference in New Issue
Block a user