An open API service indexing awesome lists of open source software.

https://github.com/hartwork/backup-my-hub

:octopus: Simple command line tool to make local backups of GitHub repositories and gists (Python)
https://github.com/hartwork/backup-my-hub

Last synced: 10 months ago
JSON representation

:octopus: Simple command line tool to make local backups of GitHub repositories and gists (Python)

Awesome Lists containing this project

README

          

About
-----
_backup-my-hub_ is my take at a simple command line tool to backup

* both Git repositories and https://gist.github.com/[gists]

* for a given list of GitHub users, organizations or repositories

to a given local directory.

I started _backup-my-hub_ because I moved most of my Git repositories
to GitHub and wanted to be sure that if my account or some repository
of mine ever gets deleted or blocked, I would have a backup.

Configuration
-------------
Configuration is rather simple, though a bit unusual.
I picked this format for extensibility:

-------------------------------------------------------------------
# cat ~/.config/backup-my-hub/main.cfg
[user hartwork]
[user gentoo-ev]
[repository gentoo/blender-gentoo-logo]
[repository gentoo/blender-gentoo-logo-overlay]
[repository gentoo/eassign]
[repository gentoo/elogv]
[repository gentoo/fetchcommandwrapper]
[repository gentoo/grub2-themes-overlay]
[repository gentoo/porticron]
-------------------------------------------------------------------

Usage (`--help` output)
-----------------------
-------------------------------------------------------------------
# backup-my-hub --help
usage: backup-my-hub [-h] [--config FILE] [--user USER] [--verbose]
[--api-token TOKEN] [--version]
DIRECTORY

positional arguments:
DIRECTORY Local directory to sync repositories and gists to

optional arguments:
-h, --help show this help message and exit
--config FILE Configuration file to use (default: ~/.config/backup-my-
hub/main.cfg, if existing)
--user USER GitHub user name; if given, configured users and
repositories are ignored
--verbose Increase verbosity
--api-token TOKEN Authenticate to the API server (e.g. to push rate limits)
--version show program's version number and exit
-------------------------------------------------------------------

Alternatives
------------
If you are looking for software doing _similar_ things but in _different_ ways, there are:

* https://github.com/kennethreitz/ghsync[ghsync]

* https://github.com/swdyh/gisty[gisty]

* https://github.com/knu/github-sync[github-sync] (of knu)

* https://github.com/adw0rd/github-sync[github-sync] (of adw0rd), fork of https://github.com/kennethreitz/ghsync[ghsync]

* https://github.com/jmhobbs/github-watcher[github-watcher]