Skip to content

tgymnich/fork-sync

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

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/[email protected]
        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/[email protected]
        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