summaryrefslogtreecommitdiffstats
path: root/models/repo.go
diff options
context:
space:
mode:
Diffstat (limited to 'models/repo.go')
-rw-r--r--models/repo.go38
1 files changed, 25 insertions, 13 deletions
diff --git a/models/repo.go b/models/repo.go
index eecc36377b..1f544f1e8c 100644
--- a/models/repo.go
+++ b/models/repo.go
@@ -173,8 +173,8 @@ type Repository struct {
*Mirror `xorm:"-"`
Status RepositoryStatus `xorm:"NOT NULL DEFAULT 0"`
- ExternalMetas map[string]string `xorm:"-"`
- Units []*RepoUnit `xorm:"-"`
+ RenderingMetas map[string]string `xorm:"-"`
+ Units []*RepoUnit `xorm:"-"`
IsFork bool `xorm:"INDEX NOT NULL DEFAULT false"`
ForkID int64 `xorm:"INDEX"`
@@ -559,27 +559,39 @@ func (repo *Repository) mustOwnerName(e Engine) string {
// ComposeMetas composes a map of metas for properly rendering issue links and external issue trackers.
func (repo *Repository) ComposeMetas() map[string]string {
- if repo.ExternalMetas == nil {
- repo.ExternalMetas = map[string]string{
+ if repo.RenderingMetas == nil {
+ metas := map[string]string{
"user": repo.MustOwner().Name,
"repo": repo.Name,
"repoPath": repo.RepoPath(),
}
+
unit, err := repo.GetUnit(UnitTypeExternalTracker)
- if err != nil {
- return repo.ExternalMetas
+ if err == nil {
+ metas["format"] = unit.ExternalTrackerConfig().ExternalTrackerFormat
+ switch unit.ExternalTrackerConfig().ExternalTrackerStyle {
+ case markup.IssueNameStyleAlphanumeric:
+ metas["style"] = markup.IssueNameStyleAlphanumeric
+ default:
+ metas["style"] = markup.IssueNameStyleNumeric
+ }
}
- repo.ExternalMetas["format"] = unit.ExternalTrackerConfig().ExternalTrackerFormat
- switch unit.ExternalTrackerConfig().ExternalTrackerStyle {
- case markup.IssueNameStyleAlphanumeric:
- repo.ExternalMetas["style"] = markup.IssueNameStyleAlphanumeric
- default:
- repo.ExternalMetas["style"] = markup.IssueNameStyleNumeric
+ if repo.Owner.IsOrganization() {
+ teams := make([]string, 0, 5)
+ _ = x.Table("team_repo").
+ Join("INNER", "team", "team.id = team_repo.team_id").
+ Where("team_repo.repo_id = ?", repo.ID).
+ Select("team.lower_name").
+ OrderBy("team.lower_name").
+ Find(&teams)
+ metas["teams"] = "," + strings.Join(teams, ",") + ","
+ metas["org"] = repo.Owner.LowerName
}
+ repo.RenderingMetas = metas
}
- return repo.ExternalMetas
+ return repo.RenderingMetas
}
// DeleteWiki removes the actual and local copy of repository wiki.