diff options
author | Sijmen Schoon <me@sijmenschoon.nl> | 2020-05-15 00:55:43 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-14 18:55:43 -0400 |
commit | 66a9ef90362db1280808ff74e40c2e670f992fcb (patch) | |
tree | 72b9142052f9923e48796e0d01823e78f3529484 /modules/git/utils.go | |
parent | 591ca030f0393addee619c17e61d8b9513e2bb05 (diff) | |
download | gitea-66a9ef90362db1280808ff74e40c2e670f992fcb.tar.gz gitea-66a9ef90362db1280808ff74e40c2e670f992fcb.zip |
Fix ref links in issue overviews for tags (#8742)
* Properly generate ref URLs
Tags used to not generate correct URLs (src/branch/tags/1.0.0 instead of
src/tags/1.0.0).
Also cleans up some code around it with the created helper functions.
* Fix formatting and create migration
* Add copyright head to utils_test
* Use a raw query for the ref migration
* Remove semicolon
* Quote column and table names in migration SQL
* Change || to CONCAT, since MSSQL does not support ||
* Make migration engine aware
* Add missing import
* Move ref EndName and URL to the issue service
* Fix tests
* Add test for commit refs
* Update issue.go
* Use the right command for building JavaScript bundles
* Prepare for merge
* Check for refs/* before prepending in migration
* Update services/issue/issue_test.go
* Update modules/git/utils_test.go
Co-authored-by: techknowlogick <techknowlogick@gitea.io>
Co-authored-by: techknowlogick <matti@mdranta.net>
Diffstat (limited to 'modules/git/utils.go')
-rw-r--r-- | modules/git/utils.go | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/modules/git/utils.go b/modules/git/utils.go index 2b823366b6..83209924c8 100644 --- a/modules/git/utils.go +++ b/modules/git/utils.go @@ -88,6 +88,19 @@ func RefEndName(refStr string) string { return refStr } +// RefURL returns the absolute URL for a ref in a repository +func RefURL(repoURL, ref string) string { + refName := RefEndName(ref) + switch { + case strings.HasPrefix(ref, BranchPrefix): + return repoURL + "/src/branch/" + refName + case strings.HasPrefix(ref, TagPrefix): + return repoURL + "/src/tag/" + refName + default: + return repoURL + "/src/commit/" + refName + } +} + // SplitRefName splits a full refname to reftype and simple refname func SplitRefName(refStr string) (string, string) { if strings.HasPrefix(refStr, BranchPrefix) { |