How to sync repository template changes? #23528
-
Hiyo! I maintain a repository template to help me set up new repositories. When I make changes to the template, I would like to sync those changes out to all the repositories I’ve created from that template. For example if I edit .github/workflows/main.yml in my template, I want to automatically create pull requests to bring those changes into each repository I’ve created from that template. If there’s nothing built-in for this, I think it could be easy to do with GitHub Actions. The ways I’ve found to trigger such a workflow, though, would require running on a schedule or manually keeping a list of repositories I’ve created from the template. How do you synchronize template changes out to repositories created from the template? |
Beta Was this translation helpful? Give feedback.
Replies: 7 comments 1 reply
-
Hey @solvaholic, there is no way to auto-update the repo’s you have created from the template. In my opinion, the “on push” trigger makes the most sense as long as you push large changes to the repo at once. |
Beta Was this translation helpful? Give feedback.
-
Did you manage to do what you asked for? |
Beta Was this translation helpful? Give feedback.
-
Hi @tetienne 👋 I did! The first solution I tried was to initiate updates from the template repository itself. This required maintaining a list of repositories to sync to, and storing credentials that would let an Actions workflow push to those repositories. That was a lot to keep up with! Now I include a sync-from-template scheduled workflow in my template repository. This way when I create a repository from the template it will automatically keep itself up-to-date. And I can delete or disable the workflow if don’t want it to run. github.comsolvaholic/template/blob/bde824d928e9fb971895862179e15fb70f9fda42/.github/workflows/sync-from-template.yml
This file has been truncated. show original |
Beta Was this translation helpful? Give feedback.
-
Isn’t this a clear use case for forking? |
Beta Was this translation helpful? Give feedback.
-
Hi @marcospgp, thank you for asking about this.
When changes are made to a fork’s parent or root repository, they’re not automatically pushed out to forks. So I think forking wouldn’t automatically sync template changes to repositories forked from the template. If you see a way for forking to help here, or if I’ve misunderstood what you’re suggesting, please say more 🙇 |
Beta Was this translation helpful? Give feedback.
-
Found github action for this purpose. Maybe will be helpful, for someone, who googled and reads this 🥹 |
Beta Was this translation helpful? Give feedback.
-
An alternative way is to add the template repository as a Git submodule; this allows tracking changes between the updated template and your own code. For templates that are mainly capturing workflows, Github settings, and other best practices, this may be too much manual effort. |
Beta Was this translation helpful? Give feedback.
Hey @solvaholic, there is no way to auto-update the repo’s you have created from the template. In my opinion, the “on push” trigger makes the most sense as long as you push large changes to the repo at once.