···118118 }119119 }120120121121- newRepo := f.Repo121121+ newRepo := *f122122 newRepo.Spindle = newSpindle123123 record := newRepo.AsRecord()124124···257257 l.Info("wrote label record to PDS")258258259259 // update the repo to subscribe to this label260260- newRepo := f.Repo260260+ newRepo := *f261261 newRepo.Labels = append(newRepo.Labels, aturi)262262 repoRecord := newRepo.AsRecord()263263···369369 }370370371371 // update repo record to remove the label reference372372- newRepo := f.Repo372372+ newRepo := *f373373 var updated []string374374 removedAt := label.AtUri().String()375375 for _, l := range newRepo.Labels {···462462 return463463 }464464465465- newRepo := f.Repo465465+ newRepo := *f466466 newRepo.Labels = append(newRepo.Labels, labelAts...)467467468468 // dedup···477477 return478478 }479479480480- ex, err := comatproto.RepoGetRecord(r.Context(), client, "", tangled.RepoNSID, f.Repo.Did, f.Repo.Rkey)480480+ ex, err := comatproto.RepoGetRecord(r.Context(), client, "", tangled.RepoNSID, f.Did, f.Rkey)481481 if err != nil {482482 fail("Failed to update labels, no record found on PDS.", err)483483 return···549549 }550550551551 // update repo record to remove the label reference552552- newRepo := f.Repo552552+ newRepo := *f553553 var updated []string554554 for _, l := range newRepo.Labels {555555 if !slices.Contains(labelAts, l) {···565565 return566566 }567567568568- ex, err := comatproto.RepoGetRecord(r.Context(), client, "", tangled.RepoNSID, f.Repo.Did, f.Repo.Rkey)568568+ ex, err := comatproto.RepoGetRecord(r.Context(), client, "", tangled.RepoNSID, f.Did, f.Rkey)569569 if err != nil {570570 fail("Failed to update labels, no record found on PDS.", err)571571 return···612612613613 labelDefs, err := db.GetLabelDefinitions(614614 rp.db,615615- db.FilterIn("at_uri", f.Repo.Labels),615615+ db.FilterIn("at_uri", f.Labels),616616 db.FilterContains("scope", subject.Collection().String()),617617 )618618 if err != nil {···660660661661 labelDefs, err := db.GetLabelDefinitions(662662 rp.db,663663- db.FilterIn("at_uri", f.Repo.Labels),663663+ db.FilterIn("at_uri", f.Labels),664664 db.FilterContains("scope", subject.Collection().String()),665665 )666666 if err != nil {···10571057 uri = "http"10581058 }1059105910601060- forkSourceUrl := fmt.Sprintf("%s://%s/%s/%s", uri, f.Knot, f.Did, f.Repo.Name)10601060+ forkSourceUrl := fmt.Sprintf("%s://%s/%s/%s", uri, f.Knot, f.Did, f.Name)10611061 l = l.With("cloneUrl", forkSourceUrl)1062106210631063 sourceAt := f.RepoAt().String()···10701070 Knot: targetKnot,10711071 Rkey: rkey,10721072 Source: sourceAt,10731073- Description: f.Repo.Description,10731073+ Description: f.Description,10741074 Created: time.Now(),10751075 Labels: rp.config.Label.DefaultLabelDefs,10761076 }
+4-4
appview/repo/settings.go
···217217 return218218 }219219220220- labels, err := db.GetLabelDefinitions(rp.db, db.FilterIn("at_uri", f.Repo.Labels))220220+ labels, err := db.GetLabelDefinitions(rp.db, db.FilterIn("at_uri", f.Labels))221221 if err != nil {222222 l.Error("failed to fetch labels", "err", err)223223 rp.pages.Error503(w)···238238 labels = labels[:n]239239240240 subscribedLabels := make(map[string]struct{})241241- for _, l := range f.Repo.Labels {241241+ for _, l := range f.Labels {242242 subscribedLabels[l] = struct{}{}243243 }244244···299299 collaborators = append(collaborators, c)300300 }301301 return collaborators, nil302302- }(&f.Repo)302302+ }(f)303303 if err != nil {304304 l.Error("failed to get collaborators", "err", err)305305 }···416416 }417417 l.Debug("got", "topicsStr", topicStr, "topics", topics)418418419419- newRepo := f.Repo419419+ newRepo := *f420420 newRepo.Description = description421421 newRepo.Website = website422422 newRepo.Topics = topics
+1-1
appview/repo/tree.go
···8080 result.ReadmeFileName = xrpcResp.Readme.Filename8181 result.Readme = xrpcResp.Readme.Contents8282 }8383- ownerSlashRepo := reporesolver.GetBaseRepoPath(r, &f.Repo)8383+ ownerSlashRepo := reporesolver.GetBaseRepoPath(r, f)8484 // redirects tree paths trying to access a blob; in this case the result.Files is unpopulated,8585 // so we can safely redirect to the "parent" (which is the same file).8686 if len(result.Files) == 0 && result.Parent == treePath {
+3-9
appview/reporesolver/resolver.go
···1818 "tangled.org/core/rbac"1919)20202121-type ResolvedRepo struct {2222- models.Repo2323-}2424-2521type RepoResolver struct {2622 config *config.Config2723 enforcer *rbac.Enforcer···4145}42464347// TODO: move this out of `RepoResolver` struct4444-func (rr *RepoResolver) Resolve(r *http.Request) (*ResolvedRepo, error) {4848+func (rr *RepoResolver) Resolve(r *http.Request) (*models.Repo, error) {4549 repo, ok := r.Context().Value("repo").(*models.Repo)4650 if !ok {4751 log.Println("malformed middleware: `repo` not exist in context")4852 return nil, fmt.Errorf("malformed middleware")4953 }50545151- return &ResolvedRepo{5252- Repo: *repo,5353- }, nil5555+ return repo, nil5456}55575658// 1. [x] replace `RepoInfo` to `reporesolver.GetRepoInfo(r *http.Request, repo, user)`5759// 2. [x] remove `rr`, `CurrentDir`, `Ref` fields from `ResolvedRepo`5858-// 3. [ ] remove `ResolvedRepo`6060+// 3. [x] remove `ResolvedRepo`5961// 4. [ ] replace reporesolver to reposervice6062func (rr *RepoResolver) GetRepoInfo(r *http.Request, user *oauth.User) repoinfo.RepoInfo {6163 ownerId, ook := r.Context().Value("resolvedId").(identity.Identity)