github-sync icon indicating copy to clipboard operation
github-sync copied to clipboard

Synchronize labels and milestones accross GitHub repositories

GitHub synchronizer

This script lets you synchronize labels and milestones between different GitHub repositories.

Installation

Clone the repository and install composer dependencies:

git clone https://github.com/matomo-org/github-sync
cd github-sync
composer install

If you do not have composer installed, it is explained here. If you installed composer locally (in the directory) you can alternatively run php composer.phar install.

Usage

Simply run the github-sync.php script to see how to use the command:

./github-sync.php help sync

Here is an example of the full command line:

./github-sync.php sync matomo-org/matomo matomo-org/plugin-CustomAlerts --token=12345abcd

The script will ask you before doing any modification so don't be afraid to run it to see if it works.

You can provide a GitHub Personal Access Token using the --token option. This is necessary if you want to create/delete/update labels and milestones. If you just want to try out the script without doing any modification, you don't need to provide a token.

Bulk synchronizing

You can synchronize multiple repositories:

./github-sync.php sync matomo-org/matomo matomo-org/plugin-CustomAlerts matomo-org/plugin-SecurityInfo

Here the plugin-SiteMigration and plugin-TasksTimetable repositories will both be synchronized to matomo-org/matomo.

Additionally, you can use the * wildcard to synchronize with all you repositories matching the pattern:

./github-sync.php sync matomo-org/matomo "matomo-org/*"

Note: * can be interpreted by your shell, in that case use quotes as shown in the example above.

License

This tool is released under the LGPL v3.0.