Skip to content

Download any repository or subdirectory on GitHub with support for Node.js and the CLI.

License

Notifications You must be signed in to change notification settings

cezaraugusto/go-git-it

Repository files navigation

go-git-it npm downloads size workflow

Download any repository or subdirectory on GitHub with support for Node.js and the CLI

npx go-git-it <url> [outputDir]

Command line instructions

Use cases

# cwd is ~/mydevspace/

npx go-git-it https://github.com/username/repository
# copied remote content to ~/mydevspace/repository

npx go-git-it https://github.com/username/repository/tree/main/folder
# copied remote content to ~/mydevspace/folder

npx go-git-it https://github.com/username/repository/blob/main/folder/file.js
# copied remote content to ~/mydevspace/file.js

The second command argument is the output directory:

npx go-git-it https://github.com/username/repository path/to/outputDir
# copied remote content to path/to/outputDir/repository

Node interface

go-git-it can also run on a Node.js program.

Installation

npm install go-git-it

Usage

import goGitIt from 'go-git-it';

// Assume cwd is ~/mydevspace/

await goGitIt('https://github.com/username/repository');
// copied remote content to ~/mydevspace/repository

await goGitIt('https://github.com/username/repository/tree/main/folder');
// copied remote content to ~/mydevspace/folder

await goGitIt(
  'https://github.com/username/repository/blob/main/folder/file.js',
);
// copied remote content to ~/mydevspace/file.js

The second parameter is the output path:

import goGitIt from 'go-git-it';

// Assume cwd is ~/mydevspace/

await goGitIt('https://github.com/username/repository', 'path/to/outputDir');
// copied remote content to path/to/outputDir/repository

API

goGitIt(url, outputDir?, text?)

url

Type: string

The URL to the path you want to download. If a folder, will download its content as well.

outputDir

Type: string

Custom path to the outputDir (defaults to the working directory)

text

Type: string

Adds a custom text message instead of default config. This option overrides the success message as well.

Features

  • Progress bar showing download status
  • Support for downloading entire repositories
  • Support for downloading specific folders
  • Support for downloading individual files
  • Custom output directory support
  • Custom progress messages

License

MIT (c) Cezar Augusto.

About

Download any repository or subdirectory on GitHub with support for Node.js and the CLI.

Resources

License

Stars

Watchers

Forks

Sponsor this project