gitmyhub

pull

TypeScript ★ 7.2k updated 2mo ago

🤖 Keep your forks up-to-date via automated PRs

Pull is a GitHub App that automatically keeps your forked repositories in sync with the original project by opening pull requests to merge upstream changes on a recurring schedule, with no manual effort needed.

TypeScriptDenoGitHub APIsetup: easycomplexity 2/5

Pull is a GitHub App that keeps your forked repositories in sync with the original project they were copied from. When you fork a repository on GitHub, your copy starts out identical to the source but quickly falls behind as the original receives updates. Pull solves this by watching for new commits in the original repository and automatically opening a pull request in your fork to bring those changes in, on a recurring schedule.

The simplest way to use it is to install the Pull app from the GitHub marketplace and point it at your fork. With no configuration file, it will sync your default branch using a hard reset, meaning your fork's branch is overwritten to match the upstream version. If you have made local changes you want to keep, the README recommends making a backup first, as a hard reset will discard them.

For more control, you can add a configuration file at .github/pull.yml in your repository. That file lets you specify which branch in your fork maps to which branch in the original project, choose how changes are merged (merge commit, squash, rebase, or hard reset), and optionally assign reviewers or labels to the pull requests that Pull creates. You can configure multiple branches at once, so a fork that tracks both a main branch and a documentation branch can be kept in sync for both.

The app also supports GitHub Enterprise Server for organizations running their own GitHub infrastructure. Upstream repository owners can add a pull.yml file to their own project pointing to themselves, which makes it easy for anyone who forks that project to stay current just by installing Pull.

The project is open source under the MIT license and maintained by Wei He. It is built with TypeScript and runs on Deno.

Where it fits