This is the new PullApprove v3! Completely redesigned and rebuilt. You can read more about it here or log in to v2 here.

Phased reviews

With advanced use of the conditions setting, you can set up reviews to be done in "phases", or happen in separate steps.

This is particularly useful if there are certain people that you don't want to bug until other parts of the review have been completed — either because their time is more valuable or because their area of review isn't necessary until other aspects have already been approved.

You can set this up by making groups depend on other groups. The groups variable comes with a set of convenient properties for checking the state of other groups.

Important: Groups are evaluated in order, and the groups variable only contains the preceding groups when you write conditions.

Examples

Code review first

version: 3

groups:
  code:
    ...

  database:
    ...
    conditions:
    # only asked to review once the other 2 groups are finished (or are not applicable)
    - "'code' in groups.approved"

Fallback review group

You can implement a "fallback" set of reviewers by placing the group last, and checking whether any of the previous groups have been activated (i.e. conditions met).

version: 3

groups:
  code:
    ...

  database:
    ...

  fallback:
    ...
    conditions:
    # this group is asked to review if no previous groups match this PR
    - "len(groups.active) == 0"  # or "not groups.active"