Project

sink

0.0
No commit activity in last 3 years
No release in over 3 years
Auto-sink folders via GitHub.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

~> 0.11
~> 1.2
~> 3.0
 Project Readme

Sink

Auto-sync your GitHub repos to local folders.

Here’s sink syncing two folders both linked to the same git remote.

gh-sync

In the above illustration, sink is watching both folders via the command line:

gh-sync

It’s up to you to imagine they’re on two different computers.

Install

gem install sink

Setup

  1. Generate a new personal access token.
  2. Copy it to your clipboard.
  3. Create a file at ~/.sinkconfig with the contents GITHUB_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 sink command checks a config file for a list of folders to watch, so you can run it once from wherever instead of having to run a sink instance 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.