fleet/tools/github-releases/github-releases.go
Lucas Manuel Rodriguez 895194d63b
Add scanning to released images and process to track vulnerabilities (#28087)
For #25902.

---------

Co-authored-by: Sharon Katz <121527325+sharon-fdm@users.noreply.github.com>
2025-04-16 11:50:10 -03:00

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