A tool to synchronise common files between Git repositories
Project description
Git Common Sync
A tool to synchronise common files between Git repositories.
Features
Programmatically synchronises git repositories according to a specification.
Supports synchronisation of:
Files and directories.
Directories managed by git-subrepo.
Content generated using templates and project specific values.
Ansible support.
How to use
Prerequisites
git >= 2.10.0
git-subrepo >= 0.3.1
python >= 3.6
rsync >= 3.1.1
Installation
Ansible Module
- gitcommonsync:
repository: http://www.example.com/repository.git
committer_name: Ansible Synchroniser
committer_email: team@example.com
key_file: /custom/id_rsa
files:
- src: /example/README.md
dest: README.md
overwrite: false
- src: /example/directory/
dest: config
templates:
- src: /example/ansible-groups.sh.j2
dest: ci/before_scripts.d/start.sh
variables:
message: "Hello world"
overwrite: true
subrepos:
- src: http://www.example.com/other-repository.git
dest: subrepos/other-repository
branch: master
overwrite: true
Development
Setup
Install both library dependencies and the dependencies needed for testing:
$ pip install -q -r requirements.txt
$ pip install -q -r test_requirements.txt
Testing
To run the tests and generate a coverage report with unittest:
./test-runner.sh
If you wish to run the tests inside a Docker container (recommended), build Docker.test.
Alternatives
Powerful but complex Ruby based alternative from the Puppet community: https://github.com/voxpupuli/modulesync.
License
Copyright (c) 2017 Genome Research Limited
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.