🤖 a GitHub App that keeps your forks up-to-date with upstream via automated pull requests.
Can you help keep this open source service alive? 💖 Please sponsor : )
- 🔄 Automated Synchronization: Ensures forks are updated by automatically creating pull requests to integrate new changes from upstream
- ⚙️ Flexible Configuration: Customize sync behavior through
.github/pull.yml
configuration to accommodate different merge strategies, including merge, squash, rebase, and hard reset - 🕒 Scheduled Updates: Regularly checks for upstream changes periodically to ensure forks are always up-to-date
- 👥 Team Integration: Facilitates collaboration by automatically adding assignees and reviewers to pull requests, honoring branch protection rules and working seamlessly with pull request checks and reviews
- 🚀 Enterprise Ready: Supports GitHub Enterprise Server, ensuring a smooth integration process for enterprise-level projects
- Upstream must be in the same fork network.
⚠️ Make a backup if you've made changes.
⭐ Star this project (Highly recommended, starred users may receive priority over other users)
- Just install Pull app.
Pull app will automatically watch and pull in upstream's default (master) branch to yours using hard reset periodically. You can also manually trigger it anytime.
-
Create a new branch.
-
Setup the new branch as default branch under repository Settings > Branches.
-
Add
.github/pull.yml
to your default branch.(behaves the same as Basic Setup)
version: "1" rules: - base: master upstream: wei:master # change `wei` to the owner of upstream repo mergeMethod: hardreset
version: "1" rules: # Array of rules - base: master # Required. Target branch upstream: wei:master # Required. Must be in the same fork network. mergeMethod: hardreset # Optional, one of [none, merge, squash, rebase, hardreset], Default: none. mergeUnstable: false # Optional, merge pull request even when the mergeable_state is not clean. Default: false - base: dev upstream: master # Required. Can be a branch in the same forked repo. assignees: # Optional - wei reviewers: # Optional - wei conflictReviewers: # Optional, on merge conflict assign a reviewer - wei label: ":arrow_heading_down: pull" # Optional conflictLabel: "merge-conflict" # Optional, on merge conflict assign a custom label, Default: merge-conflict
-
Go to
https://pull.git.ci/check/${owner}/${repo}
to validate your.github/pull.yml
. -
Install Pull app.
You can manually trigger Pull by going to
https://pull.git.ci/process/${owner}/${repo}
.
For the most common use case (a single master
branch), you can just direct
users to install Pull with no configurations. If you need a more advanced setup
(such as a docs
branch in addition to master
), consider adding
.github/pull.yml
to your repository pointing to yourself (see example). This
will allow forks to install Pull and stay updated automatically.
Example (assuming owner
is your user or organization name):
version: "1"
rules:
- base: master
upstream: owner:master
mergeMethod: hardreset
- base: docs
upstream: owner:docs
mergeMethod: hardreset
See CONTRIBUTING.md
Can you help keep this open source service alive? 💖 Please sponsor : )
Made with ❤️ by @wei