/pull

⬇️ Keep your forks up-to-date via automated PRs

Primary LanguageJavaScriptMIT LicenseMIT

Pull App

Pull

Keep your forks up-to-date.

Managing Installations Triggered #

Table of Contents

Introduction

TravisCI Codecov Dependabot Status Probot JavaScript Style Guide jest MIT License

🤖 a GitHub App built with probot that keeps your forks up-to-date with upstream via automated pull requests.

Incorporate new changes as they happen, not in 6 months.

Trusted by Repository Count repositories, triggered Triggered #.

Want to support this open source service? Please star it : )

Features

  • Ensure forks are updated.
  • Automatically integrate new changes from upstream.
  • Pull requests are created when upstreams are updated.
  • Automatically merge or hard reset pull requests to match upstream.
  • Add assignees and reviewers to pull requests.
  • Customize pull request label.
  • Honor branch protection rules.
  • Work well with pull request checks and reviews.

Prerequisites

  • Upstream must be in the same fork network.
  • ⚠️ Make a backup if you've made changes.

Getting Started

Basic Setup

Pull app will automatically watch and pull in upstream's default (master) branch to yours using hard reset every couple of hours. You can also manually trigger it anytime.

Advanced Setup (with config)

  1. Create a new branch.
  2. Setup the new branch as default branch under repository Settings > Branches.
  3. Add .github/pull.yml to your default branch.

Most Common

(behaves the same as Basic Setup)

version: "1"
rules:
  - base: master
    upstream: wei:master    # change `wei` to the owner of upstream repo
    mergeMethod: hardreset

Advanced usage

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
  1. Go to https://pull.git.ci/check/${owner}/${repo} to validate your .github/pull.yml (Public repos only).
  2. Install <img src="https://prod.download/pull-18h-svg" valign="bottom"/> Pull Pull app.

Trigger manually

Go to https://pull.git.ci/process/${owner}/${repo} to manually trigger pull. Note: Nothing will happen if your branch is already even with upstream.

For Repository Owners

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

Author

Wei He github@weispot.com

License

MIT