A GitHub Action for syncing the current repository using force push.
Create a personal access token and add to repository's secret as PAT
# File: .github/workflows/repo-sync.yml
on:
schedule:
- cron: "*/15 * * * *"
workflow_dispatch:
jobs:
repo-sync:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: repo-sync
uses: repo-sync/github-sync@v2
with:
source_repo: ""
source_branch: ""
destination_branch: ""
github_token: ${{ secrets.PAT }}
If source_repo
is private or with another provider, either (1) use an authenticated HTTPS repo clone url like https://${access_token}@github.com/owner/repository.git
or (2) set a SSH_PRIVATE_KEY
secret environment variable and use the SSH clone url
If destination_branch
and the branch where you will create this workflow will be the same, The workflow (and all files) will be overwritten by source_branch
files. A potential solution is: Create a new branch with the actions file and make it the default branch.
*
for both source_branch
and destination_branch
with:
sync_tags: "true"
This will force sync ALL branches to match source repo. Branches that are created only in the destination repo will not be affected but all the other branches will be hard reset to match source repo. ⚠️ This does mean if upstream ever creates a branch that shares the name, your changes will be gone.
Thanks goes to these wonderful people (emoji key):
Wei He 💻 📖 🎨 🤔 |
Zeke Sikelianos 📖 🤔 |
Alex Page 🐛 |
xtqqczze 💻 📖 |
Kay Harrison-Sims 🐛 |
Gibby 💻 |
This project follows the all-contributors specification. Contributions of any kind welcome!