git-ready
git-ready is a tool for quickly joining an organization on GitHub.
Description
git-ready does three things.
- Forks all repositories of the organization to your account.
- Clones the forked repositories locally.
- Configures an
upstream
remote for each repository, for convenient fetching.
It can be run again without concern. It will only fork and clone missing repositories.
Why would you want this?
For a team that uses a Fork + Pull Request workflow, and has a large number of repositories, git-ready
is a simple way to onboard new team members.
Example Workflow
- Fork repository.
- Make changes.
- Test changes.
- Push changes to
origin
- Submit Pull Request to
upstream
- Code Review
- Merge
Installation
gem install git-ready
Usage
git-ready <organization>
Configuration
git-ready will search for configuration files in the following places:
- /etc/git-ready.yaml
- /usr/local/etc/git-ready.yaml
- ~/.config/git-ready.yaml
- ./git-ready.yaml
These will be loaded in order, and any conflicting keys will be overwritten.
If no configuration is found, git-ready will enter Interactive Setup Mode, and attempt to guide you through setup. It will prompt for your GitHub username and password, so it can issue itself an auth token (with repo
scope only) for future use. This will be written to the configuration file.
If your GitHub account uses 2-Factor Authentication, git-ready will prompt you for a 2FA token.
If you would prefer to set up an auth token manually, that is supported too.
OSX Installation Issues?
One of the gems used by git-ready (Rugged), requires cmake
and libgit2
to build. On OSX, this isn't installed by default, but can easily be resolved with brew install cmake
, brew install libgit2 --with-libssh2
.
Also, private key has to be registered in keychain in order to repo cloning works.