| package repo | 
 |  | 
 | import ( | 
 | 	"github.com/Masterminds/semver" | 
 | 	"github.com/Masterminds/vcs" | 
 | ) | 
 |  | 
 | // Filter a list of versions to only included semantic versions. The response | 
 | // is a mapping of the original version to the semantic version. | 
 | func getSemVers(refs []string) []*semver.Version { | 
 | 	sv := []*semver.Version{} | 
 | 	for _, r := range refs { | 
 | 		v, err := semver.NewVersion(r) | 
 | 		if err == nil { | 
 | 			sv = append(sv, v) | 
 | 		} | 
 | 	} | 
 |  | 
 | 	return sv | 
 | } | 
 |  | 
 | // Get all the references for a repo. This includes the tags and branches. | 
 | func getAllVcsRefs(repo vcs.Repo) ([]string, error) { | 
 | 	tags, err := repo.Tags() | 
 | 	if err != nil { | 
 | 		return []string{}, err | 
 | 	} | 
 |  | 
 | 	branches, err := repo.Branches() | 
 | 	if err != nil { | 
 | 		return []string{}, err | 
 | 	} | 
 |  | 
 | 	return append(branches, tags...), nil | 
 | } |