kairos-sdk/versioneer/registry_inspector.go
Dimitris Karakasilis a8707c113a
1999 list releases (#61)
* Add registry and org to the os-release file

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Extract the software version prefix to a field

and make sure everything still works.
Also implement NoPrereleases method to filter out Kairos pre-releases

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Store RegistryAndOrg on the TagList

to be used in the new PrintImages method that prints full image URLs

This method will be used in the "kairos-agent upgrade list-releases" command

Also fix some relic softarePrefix arguments (Artifact now has that info)

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Implement sorting in a semver manner

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Implement FullImages method that returns the tags as full images

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

---------

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>
2023-12-08 14:01:57 +02:00

29 lines
583 B
Go

package versioneer
import (
"fmt"
"github.com/google/go-containerregistry/pkg/crane"
)
type RegistryInspector interface {
TagList(registryAndOrg string, artifact *Artifact) (TagList, error)
}
type DefaultRegistryInspector struct{}
func (i *DefaultRegistryInspector) TagList(registryAndOrg string, artifact *Artifact) (TagList, error) {
var err error
tl := TagList{
Artifact: artifact,
RegistryAndOrg: registryAndOrg,
}
tl.Tags, err = crane.ListTags(fmt.Sprintf("%s/%s", registryAndOrg, artifact.Flavor))
if err != nil {
return tl, err
}
return tl, nil
}