1.2.1 • Published 4 months ago

git-ripper v1.2.1

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

Git-ripper

NPM version License Downloads GitHub issues GitHub stars

Download specific folders from GitHub repositories without cloning the entire codebase

InstallationUsageFeaturesExamplesConfigurationTroubleshootingContributingLicense

Why Git-ripper?

Have you ever needed just a single component from a massive repository? Or wanted to reference a specific configuration directory without downloading gigabytes of code? Git-ripper solves this problem by letting you extract and download only the folders you need, saving bandwidth, time, and disk space.

Features

  • Selective Downloads: Fetch specific folders instead of entire repositories
  • Directory Structure: Preserves complete folder structure
  • Custom Output: Specify your preferred output directory
  • Branch Support: Works with any branch, not just the default one
  • Simple Interface: Clean, intuitive command-line experience
  • Lightweight: Minimal dependencies and fast execution
  • No Authentication: Works with public repositories without requiring credentials

Installation

Global Installation (Recommended)

npm install -g git-ripper

This installs Git-ripper as a global command-line tool accessible from anywhere in your terminal.

On-demand Usage

npx git-ripper <github-folder-url>

Run Git-ripper directly without installation using npx.

Usage

Basic Command

git-ripper https://github.com/username/repository/tree/branch/folder

With Custom Output Directory

git-ripper https://github.com/username/repository/tree/branch/folder -o ./my-output-folder

Command Line Options

OptionDescriptionDefault
-o, --output <directory>Specify output directoryCurrent directory
-V, --versionShow version number-
-h, --helpShow help-

Examples

Extract a Component Library

# Download React DOM package
git-ripper https://github.com/facebook/react/tree/main/packages/react-dom

Get Configuration Files

# Extract VS Code build configuration
git-ripper https://github.com/microsoft/vscode/tree/main/build -o ./vscode-build-config

Download Documentation

# Get Node.js documentation
git-ripper https://github.com/nodejs/node/tree/main/doc -o ./node-docs

Copy UI Templates

# Extract Tailwind components
git-ripper https://github.com/tailwindlabs/tailwindcss/tree/master/src/components -o ./tailwind-components

How It Works

Git-ripper operates in four stages:

  1. URL Parsing: Extracts repository owner, name, branch, and target folder path
  2. API Request: Uses GitHub's API to fetch the folder structure
  3. Content Download: Retrieves each file individually while maintaining directory structure
  4. Local Storage: Saves files to your specified output directory

Configuration

Git-ripper works out of the box without configuration. For rate-limited GitHub API usage, authentication support is under development.

Troubleshooting

Common Issues

Rate Limit Exceeded

Error: Request failed with status code 403

Solution: GitHub limits unauthenticated API requests. Wait a few minutes and try again.

Invalid URL Format

Error: Invalid GitHub URL format

Solution: Ensure your URL follows the pattern: https://github.com/owner/repo/tree/branch/folder

Folder Not Found

Error: Path not found in repository

Solution: Verify the folder path exists in the specified branch and repository.

Contributing

Contributions make the open-source community an amazing place to learn, inspire, and create. Any contributions to Git-ripper are greatly appreciated.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

See the open issues for a list of proposed features and known issues.

Roadmap

  • Add GitHub token authentication
  • Support for GitLab and Bitbucket repositories
  • Download from specific commits or tags
  • Dry run mode
  • File filtering options
  • CLI interactive mode

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • GitHub API for making this tool possible
  • Everyone who has provided feedback and suggestions

1.2.1

4 months ago

1.2.0

5 months ago

1.1.2

5 months ago

1.1.1

5 months ago

1.1.0

5 months ago

1.0.12

5 months ago

1.0.11

5 months ago

1.0.10

5 months ago

1.0.9

5 months ago

1.0.8

5 months ago

1.0.7

5 months ago

1.0.6

5 months ago

1.0.5

5 months ago

1.0.4

5 months ago

1.0.3

5 months ago

1.0.2

5 months ago

1.0.1

5 months ago

1.0.0

5 months ago