bn-l / GithubExtractor

List and download repositories or individual files quickly

Home Page:https://bn-l.github.io/GithubExtractor/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

github-extractor

header logo: Github Extractor

List github repositories and download individual files or whole repos conveniently. Faster than clone depth=1 for an entire repo and much faster if you just need a single file. Also works on the cli.

Api Documentation

Quickstart

Install

npm install github-extractor

Usage

Initialize

import githubExtractor from "github-extractor";

const ghe = new githubExtractor({
    owner: "octocat",
    repo: "Spoon-Knife",
    // The default: Readme.md is a different file to README.md
    caseInsensitive: false, 
})

List

const fullList = await ghe.list();

// List a repo non recursively to only show the top-level items (recursive is true by default):
const topLevel = await ghe.list({ recursive: false }); 

// Show any conflicts that might arise if downloading to `dest`:
const conflicts = await ghe.list({ dest: "some/path", conflictsOnly: true });
   

Download

await ghe.downloadTo({ dest: "some/path" });

Using selectedPaths: Downloads only the paths in the repo specified. Do not prefix with repo name. It will stop downloading once it has the file. This can make getting a single file from a large repo very fast.

// Save just `boo.jpg`:
await ghe.downloadTo({ dest: "some/path", selectedPaths: ["someFolder/boo.jpg"] });

// just the `README.md` file: 
await ghe.downloadTo({ dest: "some/path", selectedPaths: ["README.md"] });
   

There are more options and they're all documented using jsdoc so will appear in intellisense. There is also the api Documentation.

About

List and download repositories or individual files quickly

https://bn-l.github.io/GithubExtractor/

License:MIT License


Languages

Language:HTML 48.7%Language:TypeScript 41.8%Language:JavaScript 5.9%Language:CSS 3.6%