Github action to sync your Forks.
This action uses octokit and the GitHub API to automatically create and merge a pull request with the head defined by head
into the base defined by base
. The head branch owner is defined by owner
. If you create a PR in the same repository you can omit the owner
parameter.
name: Sync Fork
on:
schedule:
- cron: '*/30 * * * *' # every 30 minutes
workflow_dispatch: # on button click
jobs:
sync:
runs-on: ubuntu-latest
steps:
- uses: tgymnich/fork-sync@v1.8
with:
owner: llvm
base: master
head: master
If you use a workflow which does not allow to merge pull requests without a review
("Require pull request reviews before merging" in your repo settings)
you can set auto_approve
to true
. In that case you'll have to provide a personal access token
for a user which is allowed to review the pull requests changes. Make sure the token has at least
public_repo
permissions and store the token inside of the repository secrets.
An example workflow would then look like this:
name: Sync Fork
on:
schedule:
- cron: '*/30 * * * *' # every 30 minutes
workflow_dispatch: # on button click
jobs:
sync:
runs-on: ubuntu-latest
steps:
- uses: tgymnich/fork-sync@v1.8
with:
token: ${{ secrets.PERSONAL_TOKEN }}
owner: llvm
base: master
head: master
name | Optional | Default | description |
---|---|---|---|
owner | ✅ | $current_repo_owner | Owner of the forked repository |
repo | ✅ | $current_repo_name | Name of the forked repository |
token | ✅ | ${{ github.token }} | Token to access the Github API |
head | ✅ | master | Head branch |
base | ✅ | master | Base branch |
merge_method | ✅ | merge | merge, rebase or squash |
pr_title | ✅ | Fork Sync | Title of the created pull request |
pr_message | ✅ | Message of the created pull request | |
ignore_fail | ✅ | Ignore Exceptions |
head
and base
. user:branch
will not work!
auto_approve
is set to true
you must provide a personal access token in token
the default github token won't work!