Squash

Squash commits in the pull request.


The squash action instructs Mergify to squash all commits from a pull request into one.

When you add this action to a rule, Mergify will squash all the commits from the pull request into one commit, making the history of your project cleaner and easier to read.

Key nameValue typeDefault
bot_accounttemplate or null
null

Mergify can impersonate a GitHub user to squash a pull request. If no bot_account is set, Mergify will squash the pull request itself

commit_messageall-commits, first-commit or title+body
all-commits

Defines what commit message to use for the squashed commit if no commit message is defined in the pull request body. Possible values are:

  • all-commits to use the same format as GitHub squashed merge commit.
  • first-commit to use the message of the first commit of the pull request.
  • title+body means to use the title and body from the pull request itself as the commit message. The pull request number will be added to end of the title.

In this example, whenever there’s a label to-squash added, any new commits pushed to the branch will be squashed into a single commit:

pull_request_rules:
  - name: automatic squash of pull requests
    conditions:
      - label = to-squash
    actions:
      squash: