Responsibility

Initially, code reviews have no reviewers.

User and group default reviewers can be set for individual projects and project branches. Each time a new review is created in the project or project branch, the default reviewers will be added to the review. See default reviewers for details.

Users can show their interest in participating in a code review by clicking the Review actions Image of the Review actions button button and selecting Join review, by voting on a review, or by commenting on a review or one of its files. Once a user shows such interest, they are added to the review's list of reviewers and share in the responsibility of performing the code review. Later on, reviewers can change whether their vote is required or optional, or leave a review (perhaps to prevent further notifications).

Looking at a review list can help you determine which reviews have likely not been started, using the No reviewers filter. Once a review has reviewers, it is considered to be active and appears in the review list with the state Has Reviewers.

Review participation is advisory by default, and is used to inform your team that a code review is being conducted. The disposition of the review is reflected in the review's current state, the badges that may appear over each reviewer's avatar, and any comments reviewers might add.

Authors

The code review author is the user that created the review from a changelist.

As a code review author, you can:

  • Add users as reviewers by including an @mention for each optional reviewer and an @*mention for each required reviewer in the changelist description. See Links in descriptions and comments.

  • Add groups as reviewers by including @@mention for each optional group reviewer, @@*mention for each required reviewer group (all members required), and @@!mention for each required reviewer group (one vote required) in the changelist description. See Links in descriptions and comments.

  • Start a review by using P4V, Swarm, or from the command line of P4D. See Start a code review.

  • Edit users and groups as reviewers by using the Edit Reviewers button on the review page to add, remove, and edit existing reviewers. See Edit reviewers.

  • Add the work-in-progress tag (#wip by default) to a pending changelist so that you can update files in your changelist without updating the review or creating a new review until you are ready. See Work-in-progress tag

  • Add a changelist to your review, click the Add change button on the review and select the changelist you want to add to your review. See Add a changelist to a review.

  • Commit your review when it has been approved, click the Review state button on the review page and select Commit. See Change review state.

  • Delete your shelf when the review has been committed. See Deleting shelves.

Moderators

A project moderator is a user assigned to moderate reviews for a specific branch associated with a project.

When you add a moderator to a project branch, only the moderators can approve or reject reviews restriction is enabled for a project branch. See Project settings for details on adding moderators to project branches.

Changing the state of any review associated with a moderated branch is restricted as follows:

  • Only moderators can approve or reject the review. Moderators can also transition a review to any other state.
  • Important

    Moderators prevent the automatic approval of reviews, for more information about automatically approving reviews using workflow rules see Workflow rules.

    Note

    By default, when a review spans multiple branches that have different moderators, only one moderator from any one of the branches needs to approve the review.

    Swarm can be configured to require that one moderator from each branch must approve the review, this is a global setting. If a moderator belongs to more than one of the branches spanned by the review, their approval will count for each of the branches they belong to. For instructions on how to configure moderator behavior, see Moderator behavior when a review spans multiple branches.

  • The review's author, when not a moderator, can change the review's state to Needs review, Needs revision, Archived, and can attach committed changelists.

    Normally, the review's author cannot change the review's state to Approved or Rejected on moderated branches. However, authors that are also moderators have moderator privileges, and may approve or reject their own review.

    When disable_self_approve is enabled, authors who are moderators (or even users with admin privileges) cannot approve their own reviews.

  • Project members can change the review's state to Needs review or Needs revision, and can attach committed changelists. Project members cannot change the review's state to Approved, Rejected, or Archived.
  • Users that are not project members, moderators, or the review's author cannot transition the review's state.
  • For the review's author and project members, if a review is not in one of their permitted states, for example if the review's state is Rejected, they cannot transition the review to another state.

These restrictions have no effect on who can start a review.

Required reviewers

Reviews can optionally have required reviewers. When a review has required reviewers, the review cannot be approved until all required reviewers and required reviewer groups have up-voted the review. If the review is associated with a project that has assigned moderators, even the moderators cannot approve the review without up-votes from all required reviewers (but they can reject the review).

When a group is a required reviewer, it can be set to operate in one of two ways:

  • Require all: all members of the group must up-vote the review to allow the review to be approved.
  • Require one: at least one member of the group must up-vote the review to allow the review to be approved. If any member of the group down-votes the review, the review cannot be approved.

Required reviewers are expected to take greater care while performing a review than non-required reviewers, as their votes affect whether a review can be approved or not.

To edit the reviewers for a review and to change whether a reviewer is required or not, see Edit reviewers.

Note

If a review involves a branch with assigned moderators, only a moderator can approve the review, even if all required reviewers have up-voted the review.

See Project settings for details on adding moderators to project branches.

Add yourself as a reviewer

  1. Open the review you want to join.

  2. Click the Review actions Image of the Review actions button button.

  3. Select Join review from the dropdown menu. Alternatively, you can Vote Up or Vote Down the review.

  4. Your name is added to the Reviewers list in the Information panel, and you are now a reviewer.

Remove yourself as a reviewer

Tip

You cannot leave the review if you are a retained default reviewer on the review or you are a member of a group that is a reviewer on the review

  1. Log in, if you have not already done so.

  2. Open the review you want to leave.

  3. Click the Review actions Image of the Review actions button button.

  4. Select Leave review from the dropdown menu.

    Your name is removed from the Reviewers list in the Information panel, and you are no longer a reviewer.