func NewImageTagList() *ImageTagList {
	itl := ImageTagList{}
	itl.items = make(map[string]*ImageTag)
	itl.lock = &sync.RWMutex{}
	return &itl
}
NewImageTagList initializes an ImageTagList object and returns it
package tag
import (
	"sort"
	"sync"
	"time"
	"github.com/argoproj-labs/argocd-image-updater/pkg/log"
	"github.com/Masterminds/semver"
)
type ImageTag struct {
	TagName   string
	TagDate   *time.Time
	TagDigest string
}
type ImageTagList struct {
	items map[string]*ImageTag
	lock  *sync.RWMutex
}
type TagInfo struct {
	CreatedAt time.Time
	Digest    [32]byte
}
type SortableImageTagList []*ImageTag
func (il SortableImageTagList) Len() int {
	return len(il)
}
func (il SortableImageTagList) Swap(i, j int) {
	il[i], il[j] = il[j], il[i]
}
func NewImageTag(tagName string, tagDate time.Time, tagDigest string) *ImageTag {
	tag := &ImageTag{}
	tag.TagName = tagName
	tag.TagDate = &tagDate
	tag.TagDigest = tagDigest
	return tag
}