Sink
Auto-sync your GitHub repos to local folders.
Here’s sink syncing two folders both linked to the same git remote.
In the above illustration, sink is watching both folders via the command line:
It’s up to you to imagine they’re on two different computers.
Install
gem install sink
Setup
- Generate a new personal access token.
- Copy it to your clipboard.
- Create a file at
~/.sinkconfigwith the contentsGITHUB_TOKEN=…(put your token after the equals).
Usage
cd path/to/repo
sink
Any changes you make locally while sink is running will be committed and pushed,
and any changes made on the remote repository will be pulled down too.
Todo
- tests 😆
- make it way more performant, rather than just sitting there polling (use guard?), also consider multi-threading stuff.
- rework so the
sinkcommand checks a config file for a list of folders to watch, so you can run it once from wherever instead of having to run asinkinstance in each folder. - add support for pausing and resuming syncing on a per folder basis.
- give this a UI somehow (or just use SparkleShare instead?).
- add support for branching and PRs.
Contributing
I’d ❤️ to receive contributions to this project. It doesn’t matter if it’s just a typo, or if you’re proposing an overhaul of the entire project—I’ll gladly take a look at your changes. Fork at will! 😀
License
MIT. Go nuts.

