Skip to content

Instantly share code, notes, and snippets.

@satnami
Created February 1, 2021 09:55
Show Gist options
  • Save satnami/91f4d4a39675d534a677406b41c6b4a0 to your computer and use it in GitHub Desktop.
Save satnami/91f4d4a39675d534a677406b41c6b4a0 to your computer and use it in GitHub Desktop.
Github Actions to Merge upstream branches
# https://stackoverflow.com/a/61574295/2118504
# .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@v2
- name: Merge upstream
run: |
git config --global user.name 'your-name'
git config --global user.email 'your-username@users.noreply.github.com'
# "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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment