These are the v2 docs. For the current version, look here.

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