Skip to content

RaphGL/Syngit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Syngit

Synchronize repositories across Git clients


Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. License
  5. 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

  1. Create a $HOME/.config/syngit.toml file
  2. Fill out the configuration file
  3. Enable the syngit service (WIP):
$ systemctl enable syngit --now

License

Distributed under GPLv3 License. See LICENSE for more information.

About

Cross-client repository synchronization tool

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages