# This is the config file for `auto-assign` bot.
# https://github.com/kentaro-m/auto-assign/

# Set to true to add reviewers to pull requests
addReviewers: true

# Set to true to add assignees to pull requests
addAssignees: false

# A list of reviewers to be added to pull requests (GitHub user name)
# Note: Add new engine contributors here when joining the team.
reviewers:
  - gaaclarke
  - liyuqian
  - gw280
  - chinmaygarde
  - GaryQian
  - jason-simmons
  - iskakaushik
  - flar

# A number of reviewers added to the pull request
# Set 0 to add all the reviewers (default: 0)
numberOfReviewers: 1

# A list of assignees, overrides reviewers if set
# assignees:
#   - assigneeA

# A number of assignees to add to the pull request
# Set to 0 to add all of the assignees.
# Uses numberOfReviewers if unset.
# numberOfAssignees: 2

# A list of keywords to be skipped the process that add reviewers if pull requests include it
skipKeywords:
  - Roll
  - web
