gitnab
v1.1.1
Published
Nab just what you need from any GitHub repo - extract subfolders with ease
Maintainers
Readme
gitnab
Nab just what you need from any Git repo
A CLI tool to extract a subfolder from GitHub or GitLab repositories into your current directory (or any destination).
Installation
# Use directly with npx (no installation required)
npx gitnab <url> [destination]
# Or install globally
npm install -g gitnabUsage
# Extract a folder to current directory
npx gitnab https://github.com/owner/repo/tree/main/examples .
# Extract to a specific directory
npx gitnab https://github.com/owner/repo/tree/main/src/components ./my-components
# Keep the folder name in output
npx gitnab -k https://github.com/owner/repo/tree/main/examples
# Creates ./examples/ directorySupported Platforms
GitHub
npx gitnab https://github.com/owner/repo/tree/branch/path/to/folderGitLab
npx gitnab https://gitlab.com/namespace/project/-/tree/branch/path/to/folderOptions
| Option | Short | Description |
|--------|-------|-------------|
| --keep-folder-name | -k | Keep the folder name in output |
| --output <dir> | -o | Output directory (alternative to positional arg) |
| --help | -h | Show help message |
| --version | -v | Show version number |
Examples
Extract Next.js examples from GitHub
npx gitnab https://github.com/vercel/next.js/tree/canary/examples/hello-world .Extract GitLab documentation
npx gitnab https://gitlab.com/gitlab-org/gitlab/-/tree/master/doc/api ./gitlab-docsKeep folder structure
npx gitnab -k https://github.com/facebook/react/tree/main/packages/react
# Creates ./react/ directory with contentsUse with different branches/tags
# From a specific branch
npx gitnab https://github.com/owner/repo/tree/develop/src/utils .
# From a tag
npx gitnab https://github.com/owner/repo/tree/v1.0.0/examples .Requirements
- Node.js 18 or higher (uses native fetch)
How It Works
- Parses the URL to detect the platform (GitHub or GitLab)
- Extracts owner, repo, branch, and path from the URL
- Downloads the repository tarball from the platform's API
- Streams and extracts only the files within the requested subfolder
- Writes files to the destination directory
License
MIT
