From a370a7eef2e369251d7dc77d3ad02e0c0e62493b Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Mon, 10 Jun 2019 14:13:20 +0800 Subject: [PATCH 1/2] fix database lock when use random repository fallback image --- models/repo.go | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/models/repo.go b/models/repo.go index d5eca3d22502e..3f987223a7463 100644 --- a/models/repo.go +++ b/models/repo.go @@ -331,7 +331,7 @@ func (repo *Repository) innerAPIFormat(e Engine, mode AccessMode, isParent bool) AllowRebase: allowRebase, AllowRebaseMerge: allowRebaseMerge, AllowSquash: allowSquash, - AvatarURL: repo.AvatarLink(), + AvatarURL: repo.avatarLink(e), } } @@ -2585,7 +2585,10 @@ func RemoveRandomAvatars() error { // RelAvatarLink returns a relative link to the repository's avatar. func (repo *Repository) RelAvatarLink() string { + return repo.relAvatarLink(x) +} +func (repo *Repository) relAvatarLink(e Engine) string { // If no avatar - path is empty avatarPath := repo.CustomAvatarPath() if len(avatarPath) <= 0 || !com.IsFile(avatarPath) { @@ -2593,7 +2596,7 @@ func (repo *Repository) RelAvatarLink() string { case "image": return setting.RepositoryAvatarFallbackImage case "random": - if err := repo.GenerateRandomAvatar(); err != nil { + if err := repo.generateRandomAvatar(e); err != nil { log.Error("GenerateRandomAvatar: %v", err) } default: @@ -2604,9 +2607,9 @@ func (repo *Repository) RelAvatarLink() string { return setting.AppSubURL + "/repo-avatars/" + repo.Avatar } -// AvatarLink returns user avatar absolute link. -func (repo *Repository) AvatarLink() string { - link := repo.RelAvatarLink() +// avatarLink returns user avatar absolute link. +func (repo *Repository) avatarLink(e Engine) string { + link := repo.relAvatarLink(e) // link may be empty! if len(link) > 0 { if link[0] == '/' && link[1] != '/' { From 7b8e71a74a55e04d5cfda07c41ba5e9f66be5a67 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Mon, 10 Jun 2019 14:16:17 +0800 Subject: [PATCH 2/2] remove unused function --- models/repo.go | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/models/repo.go b/models/repo.go index 3f987223a7463..a855c84939cc4 100644 --- a/models/repo.go +++ b/models/repo.go @@ -2528,11 +2528,7 @@ func (repo *Repository) CustomAvatarPath() string { return filepath.Join(setting.RepositoryAvatarUploadPath, repo.Avatar) } -// GenerateRandomAvatar generates a random avatar for repository. -func (repo *Repository) GenerateRandomAvatar() error { - return repo.generateRandomAvatar(x) -} - +// generateRandomAvatar generates a random avatar for repository. func (repo *Repository) generateRandomAvatar(e Engine) error { idToString := fmt.Sprintf("%d", repo.ID) @@ -2597,7 +2593,7 @@ func (repo *Repository) relAvatarLink(e Engine) string { return setting.RepositoryAvatarFallbackImage case "random": if err := repo.generateRandomAvatar(e); err != nil { - log.Error("GenerateRandomAvatar: %v", err) + log.Error("generateRandomAvatar: %v", err) } default: // default behaviour: do not display avatar