From dab398d8c953b258c00c446a0294e05dc0a305f0 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Wed, 28 Feb 2024 11:44:18 +0800 Subject: [PATCH 1/7] Fix a bug returning 404 when display a single tag with no release --- routers/web/repo/release.go | 1 + 1 file changed, 1 insertion(+) diff --git a/routers/web/repo/release.go b/routers/web/repo/release.go index f9ab956d4cff3..7a7167b27b227 100644 --- a/routers/web/repo/release.go +++ b/routers/web/repo/release.go @@ -282,6 +282,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) From 97f50bb85c7d07c9ce5c35be795141bf254fa188 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Wed, 28 Feb 2024 12:34:06 +0800 Subject: [PATCH 2/7] Add missing tag name when clicking create release and also fix the old bug when there is a prefix tag name on creating release --- templates/repo/release/list.tmpl | 2 +- templates/repo/release_tag_header.tmpl | 6 +++--- tests/integration/links_test.go | 1 + web_src/js/features/repo-release.js | 11 +++++++++-- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/templates/repo/release/list.tmpl b/templates/repo/release/list.tmpl index 5b747c2bf9a54..33f1cdbbc04c3 100644 --- a/templates/repo/release/list.tmpl +++ b/templates/repo/release/list.tmpl @@ -29,7 +29,7 @@ {{end}}
- {{if $.CanCreateRelease}} + {{if and $.CanCreateRelease (not $.PageIsSingleTag)}} {{svg "octicon-pencil"}} diff --git a/templates/repo/release_tag_header.tmpl b/templates/repo/release_tag_header.tmpl index f474fb89ead81..30c553958a31d 100644 --- a/templates/repo/release_tag_header.tmpl +++ b/templates/repo/release_tag_header.tmpl @@ -5,9 +5,9 @@
@@ -17,7 +17,7 @@ {{end}} {{if and (not .PageIsTagList) .CanCreateRelease}} - + {{ctx.Locale.Tr "repo.release.new_release"}} {{end}} diff --git a/tests/integration/links_test.go b/tests/integration/links_test.go index a3937dd697eeb..69f9c2857eb98 100644 --- a/tests/integration/links_test.go +++ b/tests/integration/links_test.go @@ -36,6 +36,7 @@ func TestLinksNoLogin(t *testing.T) { "/user2/repo1/", "/user2/repo1/projects", "/user2/repo1/projects/1", + "/user2/repo1/releases/tag/delete-tag", "/assets/img/404.png", "/assets/img/500.png", "/.well-known/security.txt", diff --git a/web_src/js/features/repo-release.js b/web_src/js/features/repo-release.js index 2db80790094f3..bb9500a7e08bd 100644 --- a/web_src/js/features/repo-release.js +++ b/web_src/js/features/repo-release.js @@ -19,6 +19,8 @@ export function initRepoReleaseNew() { initRepoReleaseEditor(); } + + function initTagNameEditor() { const el = document.getElementById('tag-name-editor'); if (!el) return; @@ -30,8 +32,9 @@ function initTagNameEditor() { const newTagHelperText = el.getAttribute('data-tag-helper-new'); const existingTagHelperText = el.getAttribute('data-tag-helper-existing'); - document.getElementById('tag-name').addEventListener('keyup', (e) => { - const value = e.target.value; + const tagNameInput = document.getElementById('tag-name'); + const hideTargetInput = function(tagNameInput) { + const value = tagNameInput.value; const tagHelper = document.getElementById('tag-helper'); if (existingTags.includes(value)) { // If the tag already exists, hide the target branch selector. @@ -41,6 +44,10 @@ function initTagNameEditor() { showElem('#tag-target-selector'); tagHelper.textContent = value ? newTagHelperText : defaultTagHelperText; } + }; + hideTargetInput(tagNameInput); // update on page load because the input may have a value + tagNameInput.addEventListener('change', (e) => { + hideTargetInput(e.target); }); } From 5420a32c5faa191cc36e8767663dc213c4bc6842 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Wed, 28 Feb 2024 12:38:37 +0800 Subject: [PATCH 3/7] fix blank lines --- web_src/js/features/repo-release.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/web_src/js/features/repo-release.js b/web_src/js/features/repo-release.js index bb9500a7e08bd..650782367f525 100644 --- a/web_src/js/features/repo-release.js +++ b/web_src/js/features/repo-release.js @@ -19,8 +19,6 @@ export function initRepoReleaseNew() { initRepoReleaseEditor(); } - - function initTagNameEditor() { const el = document.getElementById('tag-name-editor'); if (!el) return; From b7dc0944b3d5dc5296bd1fb3cdaf8468a18a7dfb Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Sat, 2 Mar 2024 20:07:23 +0800 Subject: [PATCH 4/7] Display tag name as title for a tag with no release --- routers/web/repo/release.go | 8 ++++++++ templates/repo/release/list.tmpl | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/routers/web/repo/release.go b/routers/web/repo/release.go index 7037dd632fea7..dbc190928f946 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 @@ -295,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 { diff --git a/templates/repo/release/list.tmpl b/templates/repo/release/list.tmpl index 8c52a515ba252..873cccab79f55 100644 --- a/templates/repo/release/list.tmpl +++ b/templates/repo/release/list.tmpl @@ -18,13 +18,13 @@

- {{$release.Title}} + {{if $.PageIsSingleTag}}{{$release.Title}}{{else}}{{$release.Title}}{{end}} {{template "repo/commit_statuses" dict "Status" $info.CommitStatus "Statuses" $info.CommitStatuses "AdditionalClasses" "gt-df"}} {{if $release.IsDraft}} {{ctx.Locale.Tr "repo.release.draft"}} {{else if $release.IsPrerelease}} {{ctx.Locale.Tr "repo.release.prerelease"}} - {{else}} + {{else if (not $release.IsTag)}} {{ctx.Locale.Tr "repo.release.stable"}} {{end}}

From 04c9f07e734fbea2498b84ae1a5dce1ae4e0fe63 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Sat, 2 Mar 2024 20:21:10 +0800 Subject: [PATCH 5/7] Use tagname but not release title as prefill content when create release from tag --- templates/repo/release_tag_header.tmpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/repo/release_tag_header.tmpl b/templates/repo/release_tag_header.tmpl index 9bb7a4f26dfe5..8e6088790d080 100644 --- a/templates/repo/release_tag_header.tmpl +++ b/templates/repo/release_tag_header.tmpl @@ -17,7 +17,7 @@ {{end}} {{if and (not .PageIsTagList) .CanCreateRelease}} - + {{ctx.Locale.Tr "repo.release.new_release"}} {{end}} From e6ac5ed9a01322758376f0433f81335023c704d3 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Sat, 2 Mar 2024 20:38:48 +0800 Subject: [PATCH 6/7] Revert unnecessary change --- web_src/js/features/repo-release.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_src/js/features/repo-release.js b/web_src/js/features/repo-release.js index 650782367f525..f3cfa7441815b 100644 --- a/web_src/js/features/repo-release.js +++ b/web_src/js/features/repo-release.js @@ -44,7 +44,7 @@ function initTagNameEditor() { } }; hideTargetInput(tagNameInput); // update on page load because the input may have a value - tagNameInput.addEventListener('change', (e) => { + tagNameInput.addEventListener('input', (e) => { hideTargetInput(e.target); }); } From 03a3e9881ce18b2d5d398abe4186bb15c020afd5 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Sat, 2 Mar 2024 21:19:40 +0800 Subject: [PATCH 7/7] Add comment for the link test --- tests/integration/links_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration/links_test.go b/tests/integration/links_test.go index 69f9c2857eb98..d103e2b0a90bc 100644 --- a/tests/integration/links_test.go +++ b/tests/integration/links_test.go @@ -36,7 +36,7 @@ func TestLinksNoLogin(t *testing.T) { "/user2/repo1/", "/user2/repo1/projects", "/user2/repo1/projects/1", - "/user2/repo1/releases/tag/delete-tag", + "/user2/repo1/releases/tag/delete-tag", // It's the only one existing record on release.yml which has is_tag: true "/assets/img/404.png", "/assets/img/500.png", "/.well-known/security.txt",