@namespace("keybase.1") // A protocol that KBFS listens on, for services Git requests that electron or the CLI // initiate. protocol KBFSGit { import idl "common.avdl"; import idl "favorite.avdl"; record GcOptions { // The most loose refs we will tolerate; if there are more loose // refs, we should pack them. int maxLooseRefs; // The minimum number of potentially-expired loose objects we need // to start the pruning process. int pruneMinLooseObjects; // Any unreachable objects older than this time are subject to // pruning. Time pruneExpireTime; // The most individual packfiles we will tolerate; if there are // more packfiles, we should re-pack them into one. int maxObjectPacks; } /** * createRepo creates a bare empty repo on KBFS under the given name in the given TLF. * It returns the ID of the repo created. */ RepoID createRepo(FolderHandle folder, GitRepoName name); /** * deleteRepo deletes repo on KBFS under the given name in the given TLF. */ void deleteRepo(FolderHandle folder, GitRepoName name); /** * gc runs garbage collection on the given repo, using the given options to * see whether anything needs to be done. */ void gc(FolderHandle folder, GitRepoName name, GcOptions options); }