Monorepo for Tangled tangled.org

appview: state: fix panics in repoindex

Language percentages was using user.Did instead of f.OwnerDid which
caused repo index to crash when unauthed.

anirudh.fi a789346a 58a98b87

verified
Changed files
+8 -5
appview
state
+8 -5
appview/state/repo.go
··· 127 127 secret, err := db.GetRegistrationKey(s.db, f.Knot) 128 128 if err != nil { 129 129 log.Printf("failed to get registration key for %s: %s", f.Knot, err) 130 - s.pages.Notice(w, "resubmit-error", "Failed to create pull request. Try again later.") 130 + s.pages.Error500(w) 131 + return 131 132 } 132 133 133 134 signedClient, err := knotclient.NewSignedClient(f.Knot, secret, s.config.Core.Dev) 134 135 if err != nil { 135 136 log.Printf("failed to create signed client for %s: %s", f.Knot, err) 137 + s.pages.Error500(w) 136 138 return 137 139 } 138 140 139 141 var forkInfo *types.ForkInfo 140 142 if user != nil && (repoInfo.Roles.IsOwner() || repoInfo.Roles.IsCollaborator()) { 141 - forkInfo, err = getForkInfo(repoInfo, s, f, w, user, signedClient) 143 + forkInfo, err = getForkInfo(repoInfo, s, f, w, user, signedClient) 142 144 if err != nil { 143 - log.Printf("Failed to fetch fork information: %v", err) 145 + log.Printf("failed to fetch fork information: %v", err) 146 + s.pages.Error500(w) 144 147 return 145 148 } 146 149 } 147 150 148 - repoLanguages, err := signedClient.RepoLanguages(user.Did, string(f.RepoAt), repoInfo.Name, f.Ref) 151 + repoLanguages, err := signedClient.RepoLanguages(f.OwnerDid(), f.RepoAt.String(), repoInfo.Name, f.Ref) 149 152 if err != nil { 153 + // non-fatal 150 154 log.Printf("failed to compute language percentages: %s", err) 151 - return 152 155 } 153 156 154 157 s.pages.RepoIndexPage(w, pages.RepoIndexParams{