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