Gstore: Synchronize GitHub repositories made easy

Release v0.5.0 (What's new?).

Gstore is a simple tool to synchronize GitHub repositories of your organizations.

Its main goal is to help you make backups and sync your projects automatically and easily.

Overview

Gstore uses the GitHub API to get a list of all forked, mirrored, public, and private repos owned by your organizations. If the repo already exists locally, it will update it via git-pull. Otherwise, it will properly clone the repo.

Gstore will organize your repos into the following directory structure:

+ sync-dir
├── organization_1
│   ├── repo_1
│   ├── repo_2
│   ├── ...
│   └── repo_n
├── organization_2
│   ├── repo_1
│   ├── repo_2
│   ├── ...
│   └── repo_n
└── organization_n
    ├── repo_1
    ├── repo_2
    ├── ...
    └── repo_n

Quick Start

  1. Generate a GitHub Personal Access Token with the following permissions:

    • repo: Full control of private repositories

    • user:read: Read all user profile data

  2. Save the token in a safe place; you’ll need it when use Gstore

  3. Sync your repos:

$ gstore --token "$TOKEN" ~/backup

Support

Should you have any question, any remark, or if you find a bug, or if there is something you can’t do with the Gstore, please open an issue.

Similar projects

There are some projects similar to Gstore you may be interested in:


Project Information

Gstore is released under the GNU General Public Licence version 3, its documentation lives at Read the Docs, the code on GitHub, and the latest release on PyPI. It’s rigorously tested on Python 3.7+.

If you’d like to contribute to Gstore you’re most welcome!

Indices and tables