···1195 }
1196}
1197000000000000000000000001198// this is used to rollback changes made to the PDS
1199//
1200// it is a no-op if the provided ATURI is empty
···1195 }
1196}
11971198+func (rp *Repo) Stars(w http.ResponseWriter, r *http.Request) {
1199+ l := rp.logger.With("handler", "Stars")
1200+1201+ user := rp.oauth.GetMultiAccountUser(r)
1202+ f, err := rp.repoResolver.Resolve(r)
1203+ if err != nil {
1204+ l.Error("failed to resolve source repo", "err", err)
1205+ return
1206+ }
1207+1208+ starrers, err := db.GetStars(rp.db, f.RepoAt())
1209+ if err != nil {
1210+ l.Error("failed to fetch starrers", "err", err, "repoAt", f.RepoAt())
1211+ return
1212+ }
1213+1214+ rp.pages.RepoStars(w, pages.RepoStarsParams{
1215+ LoggedInUser: user,
1216+ RepoInfo: rp.repoResolver.GetRepoInfo(r, user),
1217+ Starrers: starrers,
1218+ })
1219+}
1220+1221// this is used to rollback changes made to the PDS
1222//
1223// it is a no-op if the provided ATURI is empty