Request Reviews
Enhance your review workflow with customized, efficient, and dynamic review assignments tailored to your needs.
Mergify’s request_reviews
action
provides an enhanced mechanism to automate and personalize your review process,
taking it several notches above GitHub’s conventional review assignment. By
harnessing the versatility of pull request rules and conditions, you can define
intricate workflows tailored to your team’s needs. Let’s explore how to utilize
the action for various scenarios.
Below is a list of examples of what you could achieve with pull request rules
and the request_reviews
action.
Basic Assignment
Section titled Basic AssignmentAutomatically request specific users or teams to review a pull request when
it’s labeled with review
. The rule checks for a pull request labeled review
and then requests reviews from user1
, user2
, and team1
.
pull_request_rules:
- name: request review from users and team when pull request is labeled with `review`
conditions:
- label = review
actions:
request_reviews:
users:
- user1
- user2
teams:
- team1
Flexible Reviewers Assignment
Section titled Flexible Reviewers AssignmentDynamic reviewer assignments based on the content and context of pull requests.
File Type Based Review
Section titled File Type Based ReviewAssign a Python expert to review changes in Python files.
pull_request_rules:
- name: ask jd to review changes on python files
conditions:
- files ~= \.py$
actions:
request_reviews:
users:
- jd
Label Based Review
Section titled Label Based ReviewFor security-focused pull requests, you might want specialized teams to review.
pull_request_rules:
- name: ask the security teams to review security labeled PR
conditions:
- label = security
actions:
request_reviews:
teams:
- "@myorg/security-dev"
- "@myorg/security-ops"
Random Review Assignment
Section titled Random Review AssignmentEvenly distribute the review workload among team members.
This rule assigns two random users from a list of four to review pull requests
labeled as review
.
pull_request_rules:
- name: randomly ask two members for review
conditions:
- label = review
actions:
request_reviews:
users:
- jd
- sileht
- CamClrt
- GuillaumeOj
random_count: 2
Hierarchical Review System
Section titled Hierarchical Review SystemDefine a hierarchy in the review process, with junior team members reviewing first. If changes affect critical components, senior members step in.
pull_request_rules:
- name: junior review for all PRs
conditions:
- base = main
actions:
request_reviews:
users:
- junior1
- junior2
- name: senior review for critical components
conditions:
- base = main
- files ~= ^critical/
actions:
request_reviews:
users:
- seniorDev
Expertise-based Review Assignment
Section titled Expertise-based Review AssignmentEnsure domain experts review relevant changes. If a PR modifies database-related files, request a review from the database expert.
pull_request_rules:
- name: database expert review for database-related changes
conditions:
- files ~= ^database/
actions:
request_reviews:
users:
- dbExpert
Load Balancing Review Assignments
Section titled Load Balancing Review AssignmentsDistribute reviews more fairly, ensuring certain team members aren’t overwhelmed.
pull_request_rules:
- name: balanced review assignment
conditions:
- label = review
actions:
request_reviews:
users:
jd: 2
sileht: 3
CamClrt: 1
GuillaumeOj: 1
random_count: 2
Cross-Team Review
Section titled Cross-Team ReviewFacilitate cross-team collaboration and knowledge sharing. When core components are changed, it’s beneficial to get insights from another team.
pull_request_rules:
- name: cross-team review for core changes
conditions:
- files ~= ^core/
actions:
request_reviews:
teams:
- "@anotherTeam"
On-Demand Review Request
Section titled On-Demand Review RequestAllow authors to trigger specific domain reviews by adding labels.
pull_request_rules:
- name: on-demand database expert review
conditions:
- label = request-db-review
actions:
request_reviews:
teams:
- dbExperts
Mentorship Review Process
Section titled Mentorship Review ProcessPull requests from new developers are first reviewed by mentors to ensure guidance.
pull_request_rules:
- name: mentor review for new dev
conditions:
- author = newdev
actions:
request_reviews:
users:
- mentorUser
Collaborative Review Process
Section titled Collaborative Review ProcessWhen critical files are modified, request multiple teams to collaboratively review the changes.
pull_request_rules:
- name: multi-team review for critical changes
conditions:
- files ~= ^critical/
actions:
request_reviews:
teams:
- "@teamA"
- "@teamB"
Time-Sensitive Review
Section titled Time-Sensitive ReviewPRs marked as urgent get reviewed by a dedicated quick response team.
pull_request_rules:
- name: urgent review request
conditions:
- label = urgent
actions:
request_reviews:
teams:
- "@quickResponseTeam"
With these comprehensive use cases, you’re well-equipped to optimize and
customize your review workflows using Mergify’s request_reviews
action. Adapt
and mix these scenarios to perfectly fit your team’s unique requirements.