diff --git a/appview/pages/templates/repo/index.html b/appview/pages/templates/repo/index.html --- a/appview/pages/templates/repo/index.html +++ b/appview/pages/templates/repo/index.html @@ -66,7 +66,9 @@ {{ end }} - {{ if and .ForkInfo .ForkInfo.IsFork }} + {{ $isOwner := and .LoggedInUser .RepoInfo.Roles.IsOwner }} + {{ $isCollaborator := and .LoggedInUser .RepoInfo.Roles.IsCollaborator }} + {{ if and (or $isOwner $isCollaborator) .ForkInfo .ForkInfo.IsFork }} {{ $disabled := "" }} {{ $title := "" }} {{ if eq .ForkInfo.Status 0 }} diff --git a/appview/state/repo.go b/appview/state/repo.go --- a/appview/state/repo.go +++ b/appview/state/repo.go @@ -124,10 +124,13 @@ user := s.oauth.GetUser(r) repoInfo := f.RepoInfo(s, user) - forkInfo, err := getForkInfo(repoInfo, s, f, w, user) - if err != nil { - log.Printf("Failed to fetch fork information: %v", err) - return + var forkInfo *types.ForkInfo + if user != nil && (repoInfo.Roles.IsOwner() || repoInfo.Roles.IsCollaborator()) { + forkInfo, err = getForkInfo(repoInfo, s, f, w, user) + if err != nil { + log.Printf("Failed to fetch fork information: %v", err) + return + } } s.pages.RepoIndexPage(w, pages.RepoIndexParams{