Google's Copybara is a great tool for transforming and moving code between repositories.
This action comes with sensible defaults to make it very easy for you to use Copybara with Github but is also 100% customizable so you can use it with your own config, your own Docker image.
Source of Truth Destination
+---------------+ Copybara +---------------+
| Branch +------------> | Branch |
+-------+-------+ +---------------+
^
|
|
+-------+-------+ Copybara +---------------+
| Pull Requests | <------------+ Pull Requests |
+---------------+ +---------------+
- One repo acts as the Source of Truth (SoT)
- One other repo acts as the destination
- SoT branch is always pushed by Copybara to destination branch
- Pull Requests can be created on both SoT and destination
- Pull Requests created on destination are always copied by Copybara to SoT
This is the flow used for this action's basic usage, you can make it whatever you want it to be in advanced usage.