You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
2 weeks ago | |
---|---|---|
src | 2 weeks ago | |
.gitignore | 2 years ago | |
.npmrc | 6 months ago | |
LICENSE | 2 years ago | |
README.adoc | 2 years ago | |
package.json | 2 weeks ago | |
pnpm-lock.yaml | 6 months ago | |
tsconfig.json | 2 weeks ago |
README.adoc
Aspirationally, a set of helpers to simplify working with Git LFS through Isomorphic Git. == Installation Peer dependencies: - Isomorphic Git ^1.7.0 - @aws-crypto/sha256-universal ^2.0.0 == Usage As of 0.1.6, API offers the following functions: - `downloadBlobFromPointer({ http, headers, url, auth }, lfsPointer) => Buffer` + where `http` is an `HttpClient` as supported by Isomorphic Git, URL is repository URL and `lfsPointer` is an object returned by `readPointer()`. + Uses cache, if the object had been previously retrieved. - `uploadBlob({ http, headers, url, auth }, buffer) => LFSPointerInfo` + where first argument is the same as for the download function, and returned pointer info can be used to write a pointer file in place of actual object in Git repository (pass it through `formatPointerInfo()`). - `readPointer({ dir, gitdir, content }) => LFSPointer` + where `dir`, `gitdir` behavior mimics that of Isomorphic Git, and `content` is a `Buffer`. - `readPointerInfo(buffer) => LFSPointerInfo` + reads a properly formatted LFS pointer within a Git repository. - `formatPointerInfo(lfsPointerInfo) => Buffer` + converts pointer info to appropriately formatted blob suitable to be stored in Git repository in place of actual object data. - `populateCache(workDir, ref?)` + where `workDir` is a path to working directory, and `ref` should probably be left at the default `"HEAD"`. + NOTE: Very tentative API. == Known shortcomings - Works in Node runtime only - @aws-crypto/sha256-universal peer dependency is unnecessary. If we’re Node-only we can probably achieve the same using Node’s `crypto` module, and if not we should place it in actual `dependencies`. == Considered within scope - Implement batch uploads and downloads (parallelise requests? use native batch API?) - Find a way to generalize UA header handling - Make it work in browser runtime as well (if feasible?)