Implement updating for semver_major

This commit is contained in:
2020-11-07 21:12:51 +01:00
parent 019f0a0bf5
commit f44caa8ad8
6 changed files with 416 additions and 140 deletions

50
registry.go Normal file
View File

@ -0,0 +1,50 @@
package main
import (
"fmt"
"github.com/heroku/docker-registry-client/registry"
d "github.com/opencontainers/go-digest"
//"github.com/docker/distribution/digest"
//"github.com/docker/distribution/manifest"
//"github.com/docker/libtrust"
)
type Tag struct {
Name string
SemVer *SemVerTag
Digest d.Digest
}
func anonymousClient() (*registry.Registry, error) {
url := "https://registry-1.docker.io/"
username := "" // anonymous
password := "" // anonymous
return registry.New(url, username, password)
}
func getDockerRepoTags(hub *registry.Registry, maybe_owner *string, repository string) ([]Tag, error) {
if maybe_owner != nil {
repository = fmt.Sprintf("%s/%s", *maybe_owner, repository)
}
tags, err := hub.Tags(repository)
if err != nil {
return nil, err
}
out := []Tag{}
for _, tag := range tags {
digest, err := hub.ManifestDigest(repository, tag)
if err != nil {
return nil, err
}
svt := parseTagAsSemVer(tag)
out = append(out, Tag { tag, svt, digest })
}
return out, nil
}