If you have any questions, feedback, or issues please let us know via GitHub Issues or by using Intercom on pullapprove.com.
This is new PullApprove v2 documentation! If you're still using v1, you can view the old docs here. For details about switching over, check out the differences and steps to do so.

Welcome to the PullApprove docs!

Using PullApprove is easy. Simply add your repo at pullapprove.com and place a .pullapprove.yml file in the root of your repo with your settings.

.pullapprove.yml is broken down into three main sections:

  • requirements
  • group_defaults
    • To quickly apply settings to all reviewer groups, you can specify defaults here. These can be overridden later by a group individually. Learn more here.
  • groups
    • The majority of your configuration will be here, where you specify different groups of reviewers, each with their own settings and rules.

 

Below is a general example of what most of the .pullapprove.yml settings look like. Use the navigation to the left to learn more about each one and what all the options are.

# You *must* specify "version: 2"
version: 2

requirements:
  signed_off_by:
    required: true

always_pending:
  title_regex: 'WIP'
  explanation: 'Work in progress...'

# Group settings to apply to all groups by default, optionally being overridden later
group_defaults:
  approve_by_comment:
    enabled: true
    approve_regex: '^:\+1:'
  reset_on_push:
    enabled: true

# Groups of reviewers and their respective settings
groups:
  example-reviewers:
    required: 2

    users:
      - username_one
      - username_two

    conditions:
      branches:
        - master  # this group only reviews when PR is merging into master
      files:
        include:
          - '*.md'
        exclude:
          - 'README.md'
      labels:
        - bug

    approve_by_comment:
      enabled: true
      approve_regex: '^LGTM'  # overrides the default '^:\+1:'

    author_approval:
      required: true

    reset_on_reopened:
      enabled: true

    reject_value: -3

  security:
    required: -1  # require approval from everyone
    teams:
      - security-reviewers
    reset_on_push:
      enabled: true
    reset_on_reopened:
      enabled: true
    author_approval:
      ignored: true
    reject_value: -100  # any rejection means a failure