diff options
Diffstat (limited to 'models')
-rw-r--r-- | models/repo/release.go | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/models/repo/release.go b/models/repo/release.go index abf91bc4bb..f7b24044b9 100644 --- a/models/repo/release.go +++ b/models/repo/release.go @@ -253,6 +253,28 @@ func GetReleasesByRepoID(ctx context.Context, repoID int64, opts FindReleasesOpt return rels, sess.Find(&rels) } +// GetTagNamesByRepoID returns a list of release tag names of repository. +func GetTagNamesByRepoID(ctx context.Context, repoID int64) ([]string, error) { + listOptions := db.ListOptions{ + ListAll: true, + } + opts := FindReleasesOptions{ + ListOptions: listOptions, + IncludeDrafts: true, + IncludeTags: true, + HasSha1: util.OptionalBoolTrue, + } + + tags := make([]string, 0) + sess := db.GetEngine(ctx). + Table("release"). + Desc("created_unix", "id"). + Where(opts.toConds(repoID)). + Cols("tag_name") + + return tags, sess.Find(&tags) +} + // CountReleasesByRepoID returns a number of releases matching FindReleaseOptions and RepoID. func CountReleasesByRepoID(repoID int64, opts FindReleasesOptions) (int64, error) { return db.GetEngine(db.DefaultContext).Where(opts.toConds(repoID)).Count(new(Release)) |