https://github.com/paebbels/synchronizeforks
Synchronize forks on GitHub.
https://github.com/paebbels/synchronizeforks
action automated forked-repo github-cli scheduled-jobs synchronization
Last synced: 2 months ago
JSON representation
Synchronize forks on GitHub.
- Host: GitHub
- URL: https://github.com/paebbels/synchronizeforks
- Owner: Paebbels
- License: mit
- Created: 2022-12-10T09:57:09.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2025-11-29T16:25:31.000Z (4 months ago)
- Last Synced: 2025-12-01T19:29:12.988Z (4 months ago)
- Topics: action, automated, forked-repo, github-cli, scheduled-jobs, synchronization
- Homepage:
- Size: 162 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Auto Synchronize forked repositories
This repository automates the synchronization of forked repositories for the GitHub namespace `Paebbels`. The
[GitHub Action pipeline](https://github.com/Paebbels/SynchronizeForks/blob/main/.github/workflows/Synchronize.yml) can
be copied to another repository and configuration files (`*.repos`) can be adjusted to achieve the same functionality
for other namespaces.
This code is licensed under [MIT License](LICENSE.md).
## Example Pipeline Log

## Steps to Setup
1. Create a repository like `SynchronizeForks` in your namespace.
2. Copy these files:
* [README.md](https://github.com/Paebbels/SynchronizeForks/blob/main/README.md)
* [LICENSE.md](https://github.com/Paebbels/SynchronizeForks/blob/main/LICENSE.md)
* [.github/workflows/Synchronize.yml](https://github.com/Paebbels/SynchronizeForks/blob/main/.github/workflows/Synchronize.yml)
* [.ALL.repos](https://github.com/Paebbels/SynchronizeForks/blob/main/.ALL.repos)
3. Configure `*.repos` files.
4. Push the commit and check the Action for success.
## Configuration File Formats
The `.ALL.repos` file is the entry point for the script listing all GitHub organisations that should be synchronized.
It lists one organisation per line or alternatively a comment starting with `#`. In case many single repositories from
various organisations or private accounts should be synchronized, it's recommended to add an `_Others` or `_Misc` entry.
**Example:**
```
ghdl
OSVVM
_Others
```
Each organisation has a matching `*.repos` file contains one repository per line. Alternatively, a comment starting
with `#`. A repository line has the following format:
`=:`
* `` is formatted like `/` or `/`.
* `` is formatted like ``.
An account or organisation is not required, because it's inferred from the repository this script runs in.
* `` is a comma separated list of branch names like `,,`.
**Example:**
```
OSVVM/OSVVM=OSVVM:main,dev
OSVVM/AXI4=OSVVM-AXI4:main,dev
#OSVVM/AvalonST=OSVVM-AvalonST:main
```
## Synchronize repositories
* ghdl
* GHDL
* OSVVM
* OSVVM
* OSVVM-Libraries
* OSVVM-Scripts
* OSVVM-Common
* OSVVM-AXI4
* OSVVM-UART
* OSVVM-DPRAM
* OSVVM-CoSim
* OSVVM-Ethernet
* OSVVM-Documentation
* *others*
* progit2
* msys2/MINGW-packages
* antonblanchard/microwatt
* BR1py/itertree
## GitHub CLI Documentation
See https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork
# License
This GitHub Action Example (source code) is licensed under [MIT License](LICENSE.md).
-------------------------
SPDX-License-Identifier: MIT