mirror of
https://github.com/fleetdm/fleet
synced 2026-04-21 13:37:30 +00:00
For #25902. --------- Co-authored-by: Sharon Katz <121527325+sharon-fdm@users.noreply.github.com>
58 lines
1.3 KiB
Go
58 lines
1.3 KiB
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"flag"
|
|
"fmt"
|
|
"log"
|
|
"sort"
|
|
"strings"
|
|
|
|
"github.com/fleetdm/fleet/v4/pkg/fleethttp"
|
|
"github.com/google/go-github/v37/github"
|
|
)
|
|
|
|
func main() {
|
|
n := flag.Int("last-minor-releases", 0, "Output number of Fleet minor releases (with highest patch number)")
|
|
flag.Parse()
|
|
|
|
if *n <= 0 {
|
|
log.Fatal("Set a valid --last-minor-releases value")
|
|
}
|
|
|
|
c := github.NewClient(fleethttp.NewGithubClient()).Repositories
|
|
githubReleases, _, err := c.ListReleases(context.Background(), "fleetdm", "fleet", &github.ListOptions{})
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
var releaseVersions []string
|
|
for _, gr := range githubReleases {
|
|
releaseVersions = append(releaseVersions, strings.TrimPrefix(*gr.Name, "fleet-"))
|
|
}
|
|
|
|
sort.Slice(releaseVersions, func(i, j int) bool {
|
|
return releaseVersions[i] > releaseVersions[j]
|
|
})
|
|
|
|
lastMinor := releaseVersions[0]
|
|
outputReleases := []string{lastMinor}
|
|
for _, version := range releaseVersions {
|
|
if len(outputReleases) >= *n {
|
|
break
|
|
}
|
|
lastMinorPart := strings.Split(lastMinor, ".")[1]
|
|
minor := strings.Split(version, ".")[1]
|
|
if minor < lastMinorPart {
|
|
outputReleases = append(outputReleases, version)
|
|
lastMinor = version
|
|
}
|
|
}
|
|
|
|
for i, version := range outputReleases {
|
|
if i != 0 {
|
|
fmt.Printf(" ")
|
|
}
|
|
fmt.Printf("%s", version)
|
|
}
|
|
}
|