The Request Review Action automatically assigns reviewers to pull requests, helping ensure that PRs get appropriate review from relevant team members or teams.

Configuration

reviewers
string | string[]

Usernames of individual reviewers to request

teams
string | string[]

Team slugs to request reviews from

Basic Usage

on_success:
  - requestReview:
      reviewers: ["username1", "username2"]
      teams: ["frontend-team"]

Examples

Individual Reviewers

Request reviews from specific individuals:

on_success:
  - requestReview:
      reviewers: ["tech-lead", "senior-developer"]

Team Reviews

Request reviews from entire teams:

on_success:
  - requestReview:
      teams: ["frontend-team", "design-team"]

Special Annotations

Use special annotations for dynamic reviewers:

on_success:
  - requestReview:
      reviewers: ["@author"] # Assigns the PR author (useful for FYI reviews)

How It Works

1

Get Current Reviewers

The action retrieves the list of users and teams already requested as reviewers

2

Process Special Annotations

It processes any special annotations like @author

3

Filter Reviewers

It removes any reviewers who have already been requested or can’t review (e.g., the PR author can’t review their own PR)

4

Request Reviews

If there are new reviewers to request, it sends review requests to them

Practical Use Cases

Component-Based Reviewers

Assign reviewers based on which components are modified:

ruleset:
  - name: "Frontend Review"
    when:
      - "pull_request.opened"
    if:
      - type: "files"
        modified:
          match: "src/frontend/.*"
    on_success:
      - requestReview:
          teams: ["frontend-team"]
          reviewers: ["ui-lead"]

  - name: "Backend Review"
    when:
      - "pull_request.opened"
    if:
      - type: "files"
        modified:
          match: "src/backend/.*"
    on_success:
      - requestReview:
          teams: ["backend-team"]
          reviewers: ["api-lead"]

  - name: "Database Changes Review"
    when:
      - "pull_request.opened"
    if:
      - type: "files"
        modified:
          match: "src/database/.*"
    on_success:
      - requestReview:
          reviewers: ["database-admin", "schema-owner"]

Security Review for Sensitive Changes

Request security team review for security-related changes:

ruleset:
  - name: "Security Review"
    when:
      - "pull_request.opened"
    if:
      - type: "files"
        modified:
          match: "(src/(auth|security)/.*|.*password.*\\.js)"
    on_success:
      - requestReview:
          teams: ["security-team"]
      - label:
          add: ["security-review"]
      - comment:
          body: |
            This PR contains changes to security-sensitive code.
            A security team review has been automatically requested.

Documentation Review

Request documentation team review for docs changes:

ruleset:
  - name: "Documentation Review"
    when:
      - "pull_request.opened"
    if:
      - type: "files"
        modified:
          match: "(docs/.*|README\\.md)"
    on_success:
      - requestReview:
          teams: ["docs-team"]
      - label:
          add: ["documentation"]

Random Reviewer Selection

Create a round-robin review system (requires additional setup):

ruleset:
  - name: "Random Reviewer"
    when:
      - "pull_request.opened"
    on_success:
      - requestReview:
          reviewers: ["{{ random_reviewer }}"] # Would require custom implementation

Best Practices

Assign reviewers based on code ownership or expertise
Don’t overwhelm individuals with too many review requests
Balance team and individual reviewer assignments
Consider workload and timezone differences

Be mindful of reviewer fatigue; rotating reviewers can help distribute the workload

Team Assignment Tips

When assigning team reviews:

  1. Team Structure: Team names are in the format organization/team-slug
  2. Public Teams: Make sure the teams are visible to the GitHub App
  3. Manage Expectations: Set clear expectations about which team members should respond
  4. Review Policies: Consider creating team review assignment policies

Individual Reviewer Tips

When assigning individual reviewers:

  1. Required vs Optional: Distinguish between required and optional reviewers
  2. Specialist Reviews: Assign specialists for specific types of changes
  3. Cross-Training: Occasionally assign reviewers from different teams for knowledge sharing
  4. Backup Reviewers: Consider assigning backup reviewers for critical changes