aboutsummaryrefslogtreecommitdiff
path: root/internal/db
diff options
context:
space:
mode:
Diffstat (limited to 'internal/db')
-rw-r--r--internal/db/repo.go25
-rw-r--r--internal/db/repo_test.go13
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