Skip to content

A tool for automatically tracking and archiving GitHub repositories. It periodically checks for updates, compresses older versions, and ensures that even deleted or archived repositories are preserved locally.

Notifications You must be signed in to change notification settings

Technical-1/Git-Archiver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub Repo Saver

GitHub Repo Saver is a tool to automatically clone or update repositories from a list of URLs (the "git tools" list). It checks daily for updates, archives each version, and applies heavy compression to save space. If a repository becomes archived or deleted, existing local copies remain intact.

Project Structure

  • src/ Contains the main Python source code for checking, cloning, compressing, and saving repositories.

  • scripts/ You can place any helper or utility scripts here (e.g., for daily scheduling).

  • docs/ Documentation files, usage instructions, architecture notes, etc.

Usage

  1. Install dependencies:

    pip install -r requirements.txt
    
  2. Prepare a text file containing valid GitHub repo URLs, one per line (e.g. repos.txt).

  3. Run the main script:

    python src/github_repo_saver.py --repo-list repos.txt
    
  4. Configure a daily schedule (e.g., via cron or a scheduler library) to run the script automatically.

Features

  • Reads a list of GitHub repository URLs and clones them if not present locally.
  • Checks daily for updates.
  • Creates versioned archives with heavy compression for each updated repository.
  • Detects if a repository is deleted or archived, preserving the last known version.
  • Logs and notifies about updates or issues.

Roadmap / Tasks

  • Validate repo URLs and store them in an internal data structure.
  • Clone or download each repository to a designated folder.
  • Implement daily checks for updates (via cron/scheduler).
  • Archive new versions with compression.
  • Detect and handle deleted/archived repositories.
  • Add logging and notifications.
  • Write tests for each component.
  • Keep documentation updated.

Feel free to contribute additional features!

About

A tool for automatically tracking and archiving GitHub repositories. It periodically checks for updates, compresses older versions, and ensures that even deleted or archived repositories are preserved locally.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages