diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2024-03-02 22:03:39 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-02 14:03:39 +0000 |
commit | cc27b50bdf9d1e2b02c91d7c4d338e01408e8522 (patch) | |
tree | 5cc97201cdd4ec0f267fc5035fb020c41bdaeb40 /routers/web | |
parent | 423372d84ab3d885e47d4a00cd69d6040b61cc4c (diff) | |
download | gitea-cc27b50bdf9d1e2b02c91d7c4d338e01408e8522.tar.gz gitea-cc27b50bdf9d1e2b02c91d7c4d338e01408e8522.zip |
Fix a bug returning 404 when display a single tag with no release (#29466)
Partially caused by #29149
When use
```go
releases, err := getReleaseInfos(ctx, &repo_model.FindReleasesOptions{
ListOptions: db.ListOptions{Page: 1, PageSize: 1},
RepoID: ctx.Repo.Repository.ID,
TagNames: []string{ctx.Params("*")},
// only show draft releases for users who can write, read-only users shouldn't see draft releases.
IncludeDrafts: writeAccess,
})
```
replace
```go
release, err := repo_model.GetRelease(ctx, ctx.Repo.Repository.ID, ctx.Params("*"))
```
It missed `IncludeTags: true,`. That means this bug will be occupied only when the release is a tag.
This PR will fix
- Get the right tag record when it's not a release
- Display correct tag tab but not release tag when it's a tag.
- The button will bring the tag name to the new page when it's a single tag page
- the new page will automatically hide the release target inputbox when the tag name is pre filled. This should be backport to v1.21.
Diffstat (limited to 'routers/web')
-rw-r--r-- | routers/web/repo/release.go | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/routers/web/repo/release.go b/routers/web/repo/release.go index c6d8c45af1..dbc190928f 100644 --- a/routers/web/repo/release.go +++ b/routers/web/repo/release.go @@ -185,6 +185,11 @@ func Releases(ctx *context.Context) { ctx.ServerError("getReleaseInfos", err) return } + for _, rel := range releases { + if rel.Release.IsTag && rel.Release.Title == "" { + rel.Release.Title = rel.Release.TagName + } + } ctx.Data["Releases"] = releases @@ -283,6 +288,7 @@ func SingleRelease(ctx *context.Context) { TagNames: []string{ctx.Params("*")}, // only show draft releases for users who can write, read-only users shouldn't see draft releases. IncludeDrafts: writeAccess, + IncludeTags: true, }) if err != nil { ctx.ServerError("getReleaseInfos", err) @@ -294,6 +300,9 @@ func SingleRelease(ctx *context.Context) { } release := releases[0].Release + if release.IsTag && release.Title == "" { + release.Title = release.TagName + } ctx.Data["PageIsSingleTag"] = release.IsTag if release.IsTag { |