github.com/keybase/client/go@v0.0.0-20241007131713-f10651d043c8/protocol/keybase1/kbfs_git.go (about) 1 // Auto-generated to Go types and interfaces using avdl-compiler v1.4.10 (https://github.com/keybase/node-avdl-compiler) 2 // Input file: avdl/keybase1/kbfs_git.avdl 3 4 package keybase1 5 6 import ( 7 "github.com/keybase/go-framed-msgpack-rpc/rpc" 8 context "golang.org/x/net/context" 9 "time" 10 ) 11 12 type GcOptions struct { 13 MaxLooseRefs int `codec:"maxLooseRefs" json:"maxLooseRefs"` 14 PruneMinLooseObjects int `codec:"pruneMinLooseObjects" json:"pruneMinLooseObjects"` 15 PruneExpireTime Time `codec:"pruneExpireTime" json:"pruneExpireTime"` 16 MaxObjectPacks int `codec:"maxObjectPacks" json:"maxObjectPacks"` 17 } 18 19 func (o GcOptions) DeepCopy() GcOptions { 20 return GcOptions{ 21 MaxLooseRefs: o.MaxLooseRefs, 22 PruneMinLooseObjects: o.PruneMinLooseObjects, 23 PruneExpireTime: o.PruneExpireTime.DeepCopy(), 24 MaxObjectPacks: o.MaxObjectPacks, 25 } 26 } 27 28 type CreateRepoArg struct { 29 Folder FolderHandle `codec:"folder" json:"folder"` 30 Name GitRepoName `codec:"name" json:"name"` 31 } 32 33 type DeleteRepoArg struct { 34 Folder FolderHandle `codec:"folder" json:"folder"` 35 Name GitRepoName `codec:"name" json:"name"` 36 } 37 38 type GcArg struct { 39 Folder FolderHandle `codec:"folder" json:"folder"` 40 Name GitRepoName `codec:"name" json:"name"` 41 Options GcOptions `codec:"options" json:"options"` 42 } 43 44 type KBFSGitInterface interface { 45 // * createRepo creates a bare empty repo on KBFS under the given name in the given TLF. 46 // * It returns the ID of the repo created. 47 CreateRepo(context.Context, CreateRepoArg) (RepoID, error) 48 // * deleteRepo deletes repo on KBFS under the given name in the given TLF. 49 DeleteRepo(context.Context, DeleteRepoArg) error 50 // * gc runs garbage collection on the given repo, using the given options to 51 // * see whether anything needs to be done. 52 Gc(context.Context, GcArg) error 53 } 54 55 func KBFSGitProtocol(i KBFSGitInterface) rpc.Protocol { 56 return rpc.Protocol{ 57 Name: "keybase.1.KBFSGit", 58 Methods: map[string]rpc.ServeHandlerDescription{ 59 "createRepo": { 60 MakeArg: func() interface{} { 61 var ret [1]CreateRepoArg 62 return &ret 63 }, 64 Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) { 65 typedArgs, ok := args.(*[1]CreateRepoArg) 66 if !ok { 67 err = rpc.NewTypeError((*[1]CreateRepoArg)(nil), args) 68 return 69 } 70 ret, err = i.CreateRepo(ctx, typedArgs[0]) 71 return 72 }, 73 }, 74 "deleteRepo": { 75 MakeArg: func() interface{} { 76 var ret [1]DeleteRepoArg 77 return &ret 78 }, 79 Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) { 80 typedArgs, ok := args.(*[1]DeleteRepoArg) 81 if !ok { 82 err = rpc.NewTypeError((*[1]DeleteRepoArg)(nil), args) 83 return 84 } 85 err = i.DeleteRepo(ctx, typedArgs[0]) 86 return 87 }, 88 }, 89 "gc": { 90 MakeArg: func() interface{} { 91 var ret [1]GcArg 92 return &ret 93 }, 94 Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) { 95 typedArgs, ok := args.(*[1]GcArg) 96 if !ok { 97 err = rpc.NewTypeError((*[1]GcArg)(nil), args) 98 return 99 } 100 err = i.Gc(ctx, typedArgs[0]) 101 return 102 }, 103 }, 104 }, 105 } 106 } 107 108 type KBFSGitClient struct { 109 Cli rpc.GenericClient 110 } 111 112 // * createRepo creates a bare empty repo on KBFS under the given name in the given TLF. 113 // * It returns the ID of the repo created. 114 func (c KBFSGitClient) CreateRepo(ctx context.Context, __arg CreateRepoArg) (res RepoID, err error) { 115 err = c.Cli.Call(ctx, "keybase.1.KBFSGit.createRepo", []interface{}{__arg}, &res, 0*time.Millisecond) 116 return 117 } 118 119 // * deleteRepo deletes repo on KBFS under the given name in the given TLF. 120 func (c KBFSGitClient) DeleteRepo(ctx context.Context, __arg DeleteRepoArg) (err error) { 121 err = c.Cli.Call(ctx, "keybase.1.KBFSGit.deleteRepo", []interface{}{__arg}, nil, 0*time.Millisecond) 122 return 123 } 124 125 // * gc runs garbage collection on the given repo, using the given options to 126 // * see whether anything needs to be done. 127 func (c KBFSGitClient) Gc(ctx context.Context, __arg GcArg) (err error) { 128 err = c.Cli.Call(ctx, "keybase.1.KBFSGit.gc", []interface{}{__arg}, nil, 0*time.Millisecond) 129 return 130 }