Merge upstream branches #19850
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# .github/workflows/example.yml | |
name: Merge upstream branches | |
on: | |
schedule: | |
# actually, ~5 minutes is the highest | |
# effective frequency you will get | |
- cron: '* * * * *' | |
jobs: | |
merge: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 | |
- name: Merge upstream | |
run: | | |
git config --global user.name 'your-name' | |
git config --global user.email '[email protected]' | |
# "git checkout master" is unnecessary, already here by default | |
git pull --unshallow # this option is very important, you would get | |
# complains about unrelated histories without it. | |
# (but actions/checkout@v2 can also be instructed | |
# to fetch all git depth right from the start) | |
git remote add upstream https://github.com/example/test.git | |
git fetch upstream | |
# Neither forget the -b opt, | |
# the feature/x ref is ambiguous at this stage | |
git checkout -b feature/x origin/feature/x | |
git merge --no-edit upstream/feature/x | |
git push origin feature/x | |
git checkout master | |
git merge --no-edit upstream/master | |
git push origin master | |
# etc |