diff options
author | Jeff <laojianzi1994@gmail.com> | 2020-09-29 23:07:16 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-29 23:07:16 +0800 |
commit | 23823e9698299a8046417152a385edfe4e48cd27 (patch) | |
tree | 0828cfbd5c6acf4698aed7cba546593f5b0a29fc /internal/db | |
parent | 7bc3ee49aa317e48331cf6e39e1911ac89b2e325 (diff) |
markup: render SHA links without branch prefix (#6350)
Co-authored-by: Zhukov Roman <zhukov.roman@gmail.com>
Co-authored-by: ᴜɴᴋɴᴡᴏɴ <u@gogs.io>
Diffstat (limited to 'internal/db')
-rw-r--r-- | internal/db/repo.go | 25 | ||||
-rw-r--r-- | internal/db/repo_test.go | 13 |
2 files changed, 24 insertions, 14 deletions
diff --git a/internal/db/repo.go b/internal/db/repo.go index 2a887c7f..31ea9ac6 100644 --- a/internal/db/repo.go +++ b/internal/db/repo.go @@ -429,24 +429,29 @@ func (repo *Repository) UpdateSize() error { return nil } -// ComposeMetas composes a map of metas for rendering external issue tracker URL. +// ComposeMetas composes a map of metas for rendering SHA1 URL and external issue tracker URL. func (repo *Repository) ComposeMetas() map[string]string { - if !repo.EnableExternalTracker { - return nil - } else if repo.ExternalMetas == nil { - repo.ExternalMetas = map[string]string{ - "format": repo.ExternalTrackerFormat, - "user": repo.MustOwner().Name, - "repo": repo.Name, - } + if repo.ExternalMetas != nil { + return repo.ExternalMetas + } + + repo.ExternalMetas = map[string]string{ + "repoLink": repo.Link(), + } + + if repo.EnableExternalTracker { + repo.ExternalMetas["user"] = repo.MustOwner().Name + repo.ExternalMetas["repo"] = repo.Name + repo.ExternalMetas["format"] = repo.ExternalTrackerFormat + switch repo.ExternalTrackerStyle { case markup.ISSUE_NAME_STYLE_ALPHANUMERIC: repo.ExternalMetas["style"] = markup.ISSUE_NAME_STYLE_ALPHANUMERIC default: repo.ExternalMetas["style"] = markup.ISSUE_NAME_STYLE_NUMERIC } - } + return repo.ExternalMetas } diff --git a/internal/db/repo_test.go b/internal/db/repo_test.go index f689f05d..ad920be7 100644 --- a/internal/db/repo_test.go +++ b/internal/db/repo_test.go @@ -19,14 +19,19 @@ func TestRepository_ComposeMetas(t *testing.T) { t.Run("no external tracker is configured", func(t *testing.T) { repo.EnableExternalTracker = false - assert.Equal(t, map[string]string(nil), repo.ComposeMetas()) - // Should be nil even if other settings are present - repo.ExternalTrackerStyle = markup.ISSUE_NAME_STYLE_NUMERIC - assert.Equal(t, map[string]string(nil), repo.ComposeMetas()) + metas := repo.ComposeMetas() + assert.Equal(t, metas["repoLink"], repo.Link()) + + // Should no format and style if no external tracker is configured + _, ok := metas["format"] + assert.False(t, ok) + _, ok = metas["style"] + assert.False(t, ok) }) t.Run("an external issue tracker is configured", func(t *testing.T) { + repo.ExternalMetas = nil repo.EnableExternalTracker = true // Default to numeric issue style |