summaryrefslogtreecommitdiffstats
path: root/models
diff options
context:
space:
mode:
Diffstat (limited to 'models')
-rw-r--r--models/repo/release.go22
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))