|
|
|
@ -15,6 +15,7 @@ import ( |
|
|
|
|
"code.gitea.io/gitea/models/db" |
|
|
|
|
user_model "code.gitea.io/gitea/models/user" |
|
|
|
|
"code.gitea.io/gitea/modules/container" |
|
|
|
|
"code.gitea.io/gitea/modules/optional" |
|
|
|
|
"code.gitea.io/gitea/modules/structs" |
|
|
|
|
"code.gitea.io/gitea/modules/timeutil" |
|
|
|
|
"code.gitea.io/gitea/modules/util" |
|
|
|
@ -228,10 +229,10 @@ type FindReleasesOptions struct { |
|
|
|
|
RepoID int64 |
|
|
|
|
IncludeDrafts bool |
|
|
|
|
IncludeTags bool |
|
|
|
|
IsPreRelease util.OptionalBool |
|
|
|
|
IsDraft util.OptionalBool |
|
|
|
|
IsPreRelease optional.Option[bool] |
|
|
|
|
IsDraft optional.Option[bool] |
|
|
|
|
TagNames []string |
|
|
|
|
HasSha1 util.OptionalBool // useful to find draft releases which are created with existing tags
|
|
|
|
|
HasSha1 optional.Option[bool] // useful to find draft releases which are created with existing tags
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func (opts FindReleasesOptions) ToConds() builder.Cond { |
|
|
|
@ -246,14 +247,14 @@ func (opts FindReleasesOptions) ToConds() builder.Cond { |
|
|
|
|
if len(opts.TagNames) > 0 { |
|
|
|
|
cond = cond.And(builder.In("tag_name", opts.TagNames)) |
|
|
|
|
} |
|
|
|
|
if !opts.IsPreRelease.IsNone() { |
|
|
|
|
cond = cond.And(builder.Eq{"is_prerelease": opts.IsPreRelease.IsTrue()}) |
|
|
|
|
if opts.IsPreRelease.Has() { |
|
|
|
|
cond = cond.And(builder.Eq{"is_prerelease": opts.IsPreRelease.Value()}) |
|
|
|
|
} |
|
|
|
|
if !opts.IsDraft.IsNone() { |
|
|
|
|
cond = cond.And(builder.Eq{"is_draft": opts.IsDraft.IsTrue()}) |
|
|
|
|
if opts.IsDraft.Has() { |
|
|
|
|
cond = cond.And(builder.Eq{"is_draft": opts.IsDraft.Value()}) |
|
|
|
|
} |
|
|
|
|
if !opts.HasSha1.IsNone() { |
|
|
|
|
if opts.HasSha1.IsTrue() { |
|
|
|
|
if opts.HasSha1.Has() { |
|
|
|
|
if opts.HasSha1.Value() { |
|
|
|
|
cond = cond.And(builder.Neq{"sha1": ""}) |
|
|
|
|
} else { |
|
|
|
|
cond = cond.And(builder.Eq{"sha1": ""}) |
|
|
|
@ -275,7 +276,7 @@ func GetTagNamesByRepoID(ctx context.Context, repoID int64) ([]string, error) { |
|
|
|
|
ListOptions: listOptions, |
|
|
|
|
IncludeDrafts: true, |
|
|
|
|
IncludeTags: true, |
|
|
|
|
HasSha1: util.OptionalBoolTrue, |
|
|
|
|
HasSha1: optional.Some(true), |
|
|
|
|
RepoID: repoID, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|