The IPFire Git Server is able to sync repositories with other sources. This is very helpful when developers what to publish code on platforms like GitHub as well as the IPFire Git servers or what to push to somewhere else and mirror on the IPFire Git servers.
Syncing from a remote repository
To regularly pull from a remote repository, create a clone of your Git repository in your usual home directory and create a "remote" called "pull":
git remote add pull https://my-git-server.example.com/repository.git
Syncing to a remote repository
Add a remote to your repository called "push":
git remote add push https://my-git-server.example.com/repository.git
The synchronisation runs in mirror mode and will wipe all branches, tags and other remote content that does not exist on the local Git server.
SSH Authentication
If you need to authenticate to push or pull your repository, you can create an SSH key and put it into your home at ~/.ssh/git-sync
and it will be used for all your repositories.
You can create the key for example with the following command:
ssh-keygen -t ed25519 -f ~/.ssh/git-sync