this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

add endpoint to verify a repo (#550)

authored by

Whyrusleeping and committed by
GitHub
77fb5304 3e29bf2c

+69
+22
bgs/admin.go
··· 559 559 }) 560 560 } 561 561 562 + func (bgs *BGS) handleAdminVerifyRepo(e echo.Context) error { 563 + ctx := e.Request().Context() 564 + 565 + did := e.QueryParam("did") 566 + if did == "" { 567 + return fmt.Errorf("must pass a did") 568 + } 569 + 570 + ai, err := bgs.Index.LookupUserByDid(ctx, did) 571 + if err != nil { 572 + return fmt.Errorf("no such user: %w", err) 573 + } 574 + 575 + if err := bgs.repoman.VerifyRepo(ctx, ai.Uid); err != nil { 576 + return err 577 + } 578 + 579 + return e.JSON(200, map[string]any{ 580 + "success": true, 581 + }) 582 + } 583 + 562 584 func (bgs *BGS) handleAdminAddTrustedDomain(e echo.Context) error { 563 585 domain := e.QueryParam("domain") 564 586 if domain == "" {
+1
bgs/bgs.go
··· 344 344 admin.POST("/repo/compact", bgs.handleAdminCompactRepo) 345 345 admin.POST("/repo/compactAll", bgs.handleAdminCompactAllRepos) 346 346 admin.POST("/repo/reset", bgs.handleAdminResetRepo) 347 + admin.POST("/repo/verify", bgs.handleAdminVerifyRepo) 347 348 348 349 // PDS-related Admin API 349 350 admin.GET("/pds/list", bgs.handleListPDSs)
+21
cmd/gosky/sync.go
··· 92 92 93 93 ctx := context.TODO() 94 94 95 + atid, err := syntax.ParseAtIdentifier(cctx.Args().First()) 96 + if err != nil { 97 + return err 98 + } 99 + 100 + dir := identity.DefaultDirectory() 101 + ident, err := dir.Lookup(ctx, *atid) 102 + if err != nil { 103 + return err 104 + } 105 + 106 + carPath := cctx.Args().Get(1) 107 + if carPath == "" { 108 + carPath = ident.DID.String() + ".car" 109 + } 110 + 111 + xrpcc.Host = ident.PDSEndpoint() 112 + if xrpcc.Host == "" { 113 + return fmt.Errorf("no PDS endpoint for identity") 114 + } 115 + 95 116 root, err := comatproto.SyncGetHead(ctx, xrpcc, cctx.Args().First()) 96 117 if err != nil { 97 118 return err
+25
repomgr/repomgr.go
··· 1056 1056 1057 1057 return rm.cs.WipeUserData(ctx, uid) 1058 1058 } 1059 + 1060 + func (rm *RepoManager) VerifyRepo(ctx context.Context, uid models.Uid) error { 1061 + ses, err := rm.cs.ReadOnlySession(uid) 1062 + if err != nil { 1063 + return err 1064 + } 1065 + 1066 + r, err := repo.OpenRepo(ctx, ses, ses.BaseCid()) 1067 + if err != nil { 1068 + return err 1069 + } 1070 + 1071 + if err := r.ForEach(ctx, "", func(k string, v cid.Cid) error { 1072 + _, err := ses.Get(ctx, v) 1073 + if err != nil { 1074 + return fmt.Errorf("failed to get record %s (%s): %w", k, v, err) 1075 + } 1076 + 1077 + return nil 1078 + }); err != nil { 1079 + return err 1080 + } 1081 + 1082 + return nil 1083 + }