aboutsummaryrefslogtreecommitdiff

reposync

Scripts for juggling git repos

gitwrapper.sh

An ssh gatekeeper and helper. It is set and configured via the command option in authorized_keys. This allows it to grant read and/or write privileges to specific folders based on SSH keys.

gitwrapper.sh automatically creates repositories if they are pushed for the first time. If a non-existent repo is pulled, an empty one is sent instead. This feature requires $HOME/empty.git to be an empty git repository.

This allows for easy creation of new repos by just cloning any name, creating a first commit, and then pushing.

Options

gitwrapper.sh OPTIONS
-r <DIR>    Allow pull from DIR
-w <DIR>    Allow push to DIR
-a <DIR>    Allow push/pull from/to DIR
-i      Allow inetractive Login

Example

# .ssh/authorized_keys

# Allow bob read/write on bob and read on public
command="gitwrapper.sh -a bob -r public" ssh-rsa AAAA... bob@bobpc

# Allow joe read on public
command="gitwrapper.sh -r public" ssh-rsa AAAA... joe@joepc

github_sync.sh

This script handles mirroring to GitHub via the GitHub API. Note that it only ever pushes, so changes on GitHub will result in failure. The first argument specifies the configuration file, setting the following variables:

USERNAME    GitHub Username
TOKEN   GitHub Authorization Token
REPO_DIR    local repository directory
PRIVATE Specifies, whether $REPO_DIR should be trated as public (false) or private (true)
        Repos will be created on GitHub accordingly
LIMIT   Limit syncing to repos specified in LIMIT_TO (true/false)
LIMIT_TO    Array of repos to limit syncing to

License

MIT