Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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 days 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 (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-09-01T14:45:11.000Z (5 months ago)
- Last Synced: 2025-01-10T05:07:31.610Z (12 days ago)
- Topics: actions, automation, fork, github-action, octokit, sync
- Language: TypeScript
- Homepage:
- Size: 19.2 MB
- Stars: 396
- Watchers: 5
- Forks: 86
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Fork Sync
[![Build](https://github.com/tgymnich/fork-sync/workflows/PR%20Checks/badge.svg)](https://github.com/tgymnich/fork-sync/actions?workflow=PR%20Checks)
![Version](https://img.shields.io/github/v/release/tgymnich/fork-sync?style=flat-square)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/[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](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/[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