Syngit
Synchronize repositories across Git clients
Table of Contents
-
About The Project
-
Getting Started
- Usage
- License
- Acknowledgements
Syngit is a CLI and daemon that lets you synchronize repositories across different clients (Github, Codeberg, Gitlab, etc) with a very simple configuration file.
Syngit is a tool with no external dependencies (not even git). It contains everything you need, just compile it and run it.
Built With
Getting Started
To use Syngit, make sure you got the tokens/passwords needed to authenticate for your target Git clients (ie Github, GitLab, Codeberg, etc).
After you've gotten your tokens/passwords you need a syngit.toml
in your system's default config directory. The config file has the following structure:
# your main git client
main_client = "github"
# ignores all files that match the glob pattern, unimplemented!
glob_ignore = ["*cpp"]
# where the cache for syngit should be stored, defaults to https://pkg.go.dev/os#UserCacheDir
cache_dir = "~/Documents/Test"
[client.codeberg]
username = "RaphGL"
token = "my_token"
[client.github]
username = "RaphGL"
token = "my_token"
# temporarily disable synchronization to this client
disable = true
[client.gitlab]
username = "RaphGL"
token = "my_token"
# repositories to be ignored on this client
ignore = ["repo1", "repo2"]
Installation
$ git clone https://github.com/RaphGL/Syngit
$ cd Syngit
$ go build
Usage
- Create a
$HOME/.config/syngit.toml
file
- Fill out the configuration file
- Enable the syngit service (WIP):
$ systemctl enable syngit --now
License
Distributed under GPLv3 License. See LICENSE
for more information.