Skip to content

For the psychopaths who love archiving everything, the GitHub Ripper CLI tool

Notifications You must be signed in to change notification settings

kaganisildak/gitripper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

GitHub Repository Ripper Logo

GitHub Repository Ripper

For the psychopaths who love archiving everything, the GitHub Ripper CLI tool

GitHub Repository Ripper is a powerful Python script that allows you to efficiently clone multiple GitHub repositories, including support for forked repositories, Git LFS. It's designed for users who need to backup everythings.

Features

  • Clone all or starred repositories of a specified GitHub user
  • Support for authenticating with a GitHub token to bypass rate limits and access private repositories
  • Option to clone original repositories of forks (sync mode)
  • Git LFS support
  • Multithreaded cloning for improved performance
  • Detailed analytics of cloned repositories
  • Progress bar for real-time feedback during cloning

Installation

  1. Clone this repository:

    git clone https://github.com/kaganisildak/gitripper
    cd gitripper
    
  2. Install the required dependencies:

    pip install requests tqdm
    
  3. Ensure you have Git and Git LFS installed on your system if you plan to use LFS support.

Usage

Basic usage:

python rip.py <username> <all|starred> [options]

Command-line Options

  • username: The GitHub username whose repositories you want to clone
  • all|starred: Whether to clone all repositories or only starred ones
  • -d, --directory: Directory to clone repositories into (default: current directory)
  • --depth: Depth of git clone (optional)
  • --sync: Enable sync mode to clone original repositories for forks
  • --token: GitHub personal access token for authentication
  • --lfs: Enable Git LFS support

Examples

  1. Clone all repositories of a user:

    python rip.py username all
    
  2. Clone starred repositories with a specific clone depth:

    python rip.py username starred --depth 1
    
  3. Clone all repositories with sync mode and LFS support:

    python rip.py username all --sync --lfs
    

TODO

Here are some potential enhancements for future development:

  1. Add support for upload rips to bucket storage/ftp/webdav etc.
  2. Add support for GitLab and Bitbucket repositories
  3. Implement incremental updates for previously cloned repositories
  4. Add options for filtering repositories based on criteria like language, stars, or last update date
  5. Improve error handling and retry mechanisms for network issues
  6. Implement automatic scheduling for periodic cloning and backups

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

About

For the psychopaths who love archiving everything, the GitHub Ripper CLI tool

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages