Graphite is a modern code review tool designed for fast-moving teams. It helps engineers write and review smaller pull requests (PRs), stay unblocked, and ship faster. In this documentation, we explain how to use Mergify with Graphite and highlight some important configurations.
PrerequisitesSection titled Prerequisites
A GitHub repository ready for Mergify usage.
Graphite installed and configured for your project. If you are not familiar with Graphite, we recommend following their quick start guide.
In the following step we will use a sample stack with our “trunk branch” named
main and three branches A, B and C with their corresponding pull requests
Step 1: Configuring Your RepositorySection titled Step 1: Configuring Your Repository
To ensure seamless integration between Mergify and Graphite, you need to activate the Automatically Delete Head Branches setting on your GitHub repository. Enabling this setting allows GitHub to automatically delete the head branch upon pull request merge and change the base branch of upstack pull requests to the branch in which the PR was merged.
For example, in our sample stack, when PR A is merged into
this setting will delete branch A and change the base branch of PR B from
To activate Automatically delete head branches, follow the steps outlined in the GitHub documentation: Managing the automatic deletion of branches.
Step 2: Configuring MergifySection titled Step 2: Configuring Mergify
To ensure that Mergify only merges pull requests that are at the bottom of their
stack. In the Mergify configuration file,
you have to set a condition on the
base attribute to be equal to the
name of your trunk branch (
main in our sample stack).
Here is a sample of what your Mergify configuration file could look like for our sample stack:
This makes sure that if a user queues by mistake the pull request B while A is not yet merged, the pull request B won’t be queued.
Step 3: Let the Magic HappenSection titled Step 3: Let the Magic Happen
Now that everything is set up, you can queue your pull
request. When Mergify is done merging pull request A
main, GitHub will delete branch A and set
main as the base branch for
pull request B. You can then queue the pull request B at its turn.