Skip to content
git-branch

GitHub Action

Fork Sync

v1.9.0 Latest version

Fork Sync

git-branch

Fork Sync

Keep your fork up to date

Installation

Copy and paste the following snippet into your .yml file.

              

- name: Fork Sync

uses: tgymnich/fork-sync@v1.9.0

Learn more about this action in tgymnich/fork-sync

Choose a version

Fork Sync

Build Version

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.

Example Workflow

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

Auto approve

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

Parameters

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

⚠️ $current_repo_owner is your own username! ⚠️ $current_repo_name is the name of the current repository!

⚠️ Only provide the branch name for head and base. user:branch will not work!

⚠️ * if auto_approve is set to true you must provide a personal access token in token the default github token won't work!

Alternatives

Pull Github App - https://github.com/wei/pull