https://github.com/tgymnich/fork-sync
🔄 Github action to sync your forks
https://github.com/tgymnich/fork-sync
actions automation fork github-action octokit sync
Last synced: 5 months ago
JSON representation
🔄 Github action to sync your forks
- Host: GitHub
- URL: https://github.com/tgymnich/fork-sync
- Owner: tgymnich
- License: mit
- Created: 2019-09-04T22:05:30.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2024-09-01T14:45:11.000Z (about 1 year ago)
- Last Synced: 2025-05-06T18:06:11.761Z (5 months ago)
- Topics: actions, automation, fork, github-action, octokit, sync
- Language: TypeScript
- Homepage:
- Size: 19.2 MB
- Stars: 415
- Watchers: 5
- Forks: 88
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- starred - tgymnich/fork-sync - 🔄 Github action to sync your forks (TypeScript)
README
# Fork Sync
[](https://github.com/tgymnich/fork-sync/actions?workflow=PR%20Checks)
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
```yml
name: Sync Forkon:
schedule:
- cron: '*/30 * * * *' # every 30 minutes
workflow_dispatch: # on button clickjobs:
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](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-auto-merge-for-pull-requests-in-your-repository))
you can set `auto_approve` to `true`. In that case you'll have to provide a [personal access token](https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/creating-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](https://docs.github.com/en/free-pro-team@latest/actions/reference/encrypted-secrets#creating-encrypted-secrets-for-a-repository).An example workflow would then look like this:
```yml
name: Sync Forkon:
schedule:
- cron: '*/30 * * * *' # every 30 minutes
workflow_dispatch: # on button clickjobs:
sync:runs-on: ubuntu-latest
steps:
- uses: tgymnich/fork-sync@v2.0
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