Skip to content

Code Review Rules #38867

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 8 commits into from
Closed

Code Review Rules #38867

wants to merge 8 commits into from

Conversation

sxb427
Copy link
Contributor

@sxb427 sxb427 commented May 12, 2025

Setup for adding custom code review rules.

Made changes in affected paths and ran pullapprove test. Results -

Pull approve evaluation

Copy link
Contributor

@andy31415 andy31415 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/pullapprove-test

  custom_review_paths: &CUSTOM_REVIEW_PATHS
    - chef: &CHEF "examples/chef"

  ############################################################
  #  Review requirements for PRs touching examples/chef.
  #  One Googler requirement is sufficient.
  ############################################################
  chef-required-reviewers:
    type: required
    conditions:
      - any(f.startswith(*CHEF) for f in files)
    requirements:
      - len(groups.approved.include('shared-reviewers-google')) >= 1 
    reviews:
      required: 0
    labels:
      approved_chef: "review - approved: chef"
      pending_chef: "review - pending: chef"
      rejected_chef: "review - changed requested: chef"

Copy link

pullapprove bot commented May 13, 2025

Copy link
Contributor

@andy31415 andy31415 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/pullapprove-test

version: 3

# https://developer.github.com/v3/previews/#draft-pull-requests
github_api_version: "shadow-cat-preview"

overrides:
 custom_review_paths: &CUSTOM_REVIEW_PATHS
   - chef: &CHEF "examples/chef"

 ############################################################
 #  Review requirements for PRs touching examples/chef.
 #  One Googler requirement is sufficient.
 ############################################################
 chef-required-reviewers:
   type: required
   conditions:
     - any(f.startswith(*CHEF) for f in files)
   requirements:
     - len(groups.approved.include('shared-reviewers-google')) >= 1 
   reviews:
     required: 0
   labels:
     approved_chef: "review - approved: chef"
     pending_chef: "review - pending: chef"
     rejected_chef: "review - changed requested: chef"

Copy link
Contributor

@andy31415 andy31415 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/pullapprove-test

version: 3

# https://developer.github.com/v3/previews/#draft-pull-requests
github_api_version: "shadow-cat-preview"

overrides:
 custom_review_paths: &CUSTOM_REVIEW_PATHS
   - chef: &CHEF "examples/chef"

 ############################################################
 #  Review requirements for PRs touching examples/chef.
 #  One Googler requirement is sufficient.
 ############################################################
 chef-required-reviewers:
   type: required
   conditions:
     - any(f.startswith(*CHEF) for f in files)
   requirements:
     - len(groups.approved.include('shared-reviewers-google')) >= 1 
   reviews:
     required: 0
   labels:
     approved_chef: "review - approved: chef"
     pending_chef: "review - pending: chef"
     rejected_chef: "review - changed requested: chef"

Copy link

pullapprove bot commented May 13, 2025

Copy link
Contributor

@andy31415 andy31415 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/pullapprove-test

version: 3

# https://developer.github.com/v3/previews/#draft-pull-requests
github_api_version: "shadow-cat-preview"

groups:
 custom_review_paths: &CUSTOM_REVIEW_PATHS
   - chef: &CHEF "examples/chef"

 ############################################################
 #  Review requirements for PRs touching examples/chef.
 #  One Googler requirement is sufficient.
 ############################################################
 chef-required-reviewers:
   type: required
   conditions:
     - any(f.startswith(*CHEF) for f in files)
   requirements:
     - len(groups.approved.include('shared-reviewers-google')) >= 1 
   reviews:
     required: 0
   labels:
     approved_chef: "review - approved: chef"
     pending_chef: "review - pending: chef"
     rejected_chef: "review - changed requested: chef"

Copy link

pullapprove bot commented May 13, 2025

Copy link
Contributor Author

@sxb427 sxb427 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/pullapprove-test

version: 3

# https://developer.github.com/v3/previews/#draft-pull-requests
github_api_version: "shadow-cat-preview"

############################################################
#  Overrides
############################################################

overrides:
  - if: "'hotfix' in labels"
    status: success
    explanation: "Hotfix label added, bypassing reviews"

  ############################################################
  #  Draft PRs
  ############################################################
  - if: "draft"
    status: pending
    explanation: "PR is draft, pending review"

  ############################################################
  #  License Checks
  ############################################################
  - if: "'*license/cla*' not in statuses.successful"
    status: pending
    explanation: "CLA must be agreed to by all contributors"

  ############################################################
  #  Conditions to Skip Review
  ############################################################
  - if: "base.ref != 'master'"
    status: success
    explanation: "Review not required unless merging to master"

  ############################################################
  #  Require Issues
  ############################################################
  # disabling until we have PRs up to date
  #     - if: "'*issue*' not in statuses.successful"
  #       status: failure
  #       explanation: "An issue is required for all PRs"

  ############################################################
  #  Fast tracking
  ############################################################
  - if: "'fast track' in labels"
    status: success
    explanation: "PR has been fast tracked, bypassing reviews"

############################################################
#  Notifications
############################################################

notifications:
  ############################################################
  #  New contributors
  ############################################################
  - when: pull_request.opened
    if: "author_association == 'FIRST_TIME_CONTRIBUTOR'"
    comment: |
      Hey @{{ author }}, thanks for the PR! The review will start once
      the tests and CI checks have passed. If they don't, please review
      the logs and try to fix the issues (ask for help if you can't
      figure it out). A reviewer will be assigned once the tests are
      passing and they'll walk you through getting the PR finished
      and merged.

groups:
  ############################################################
  #  Shared Reviewer Groups
  ############################################################
  shared-reviewers-amazon:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-amazon]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-apple:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-apple]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-bosch:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-bosch]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-comcast:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-comcast]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-dyson:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-dyson]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-espressif:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-espressif]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-google:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-google]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-grundfos:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-grundfos]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-irobot:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-irobot]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-lg:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-lg]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-logitech:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-logitech]
    reviews:
      request: 0 # Requested to be only on demand
  shared-reviewers-nordic:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nordic]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-nxp:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nxp]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-samsung:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-samsung]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-eve:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-eve]
    reviews:
      request: 0 # Do not auto-add
  # shared-reviewers-signify disabled for now, because the reviewers-signify
  # team is empty and pullapprove seems to mis-handle that badly and treats
  # _all_ reviewers as being in this group.
  #
  # See https://github.com/dropseed/pullapprove/issues/71
  #
  # shared-reviewers-signify:
  #     type: optional
  #     conditions:
  #         - files.include('*')
  #     reviewers:
  #         teams: [reviewers-signify]
  #     reviews:
  #         request: 0 # Do not auto-add
  shared-reviewers-silabs:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-silabs]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-somfy:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-somfy]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-tcl:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-tcl]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-qorvo:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-qorvo]
    reviews:
      request: 0 # Do not auto-add

  ############################################################
  #  Path specific review requirments. A PR must meet the
  #  review requirements corresponding each path in the
  #  in the CUSTOM_REVIEW_PATHS list that it touches. If it
  #  touches a region not covered by any custom review paths, 
  #  base condition is required.
  ############################################################
  custom_review_paths: &CUSTOM_REVIEW_PATHS
    - chef: &CHEF "examples/chef"
  
  ############################################################
  #  Review requirements for PRs touching examples/chef.
  #  One Googler requirement is sufficient.
  ############################################################
  chef-required-reviewers:
    type: required
    conditions:
      - any(f.startswith(*CHEF) for f in files)
    requirements:
      - len(groups.approved.include('shared-reviewers-google')) >= 1 or len(groups.approved.include('shared-reviewers-*')) >= 2  
    reviews:
      required: 0
    labels:
      approved_chef: "review - approved: chef"
      pending_chef: "review - pending: chef"
      rejected_chef: "review - changed requested: chef"

  ############################################################
  #  Base Required Reviewers
  ############################################################
  required-reviewers:
    description: >
      [Required
      Reviewers](https://github.com/project-chip/connectedhomeip/blob/master/CONTRIBUTING.md#review-requirements)
      This is the main group of required reviews for general pull
      requests.
    type: required
    conditions:
      # If PR touches a region not covered by any custom review paths, base condition is required.
      - not all(any(f.startswith(p) for p in *CUSTOM_REVIEW_PATHS) for f in files)
    requirements:
      - len(groups.approved.include('shared-reviewers-*')) >= 2
    reviews:
      required: 0
    labels:
      approved: "review - approved"
      pending: "review - pending"
      rejected: "review - changed requested"

Copy link

pullapprove bot commented May 13, 2025

Copy link
Contributor Author

@sxb427 sxb427 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/pullapprove-test

version: 3

# https://developer.github.com/v3/previews/#draft-pull-requests
github_api_version: "shadow-cat-preview"

############################################################
#  Overrides
############################################################

overrides:
  - if: "'hotfix' in labels"
    status: success
    explanation: "Hotfix label added, bypassing reviews"

  ############################################################
  #  Draft PRs
  ############################################################
  - if: "draft"
    status: pending
    explanation: "PR is draft, pending review"

  ############################################################
  #  License Checks
  ############################################################
  - if: "'*license/cla*' not in statuses.successful"
    status: pending
    explanation: "CLA must be agreed to by all contributors"

  ############################################################
  #  Conditions to Skip Review
  ############################################################
  - if: "base.ref != 'master'"
    status: success
    explanation: "Review not required unless merging to master"

  ############################################################
  #  Require Issues
  ############################################################
  # disabling until we have PRs up to date
  #     - if: "'*issue*' not in statuses.successful"
  #       status: failure
  #       explanation: "An issue is required for all PRs"

  ############################################################
  #  Fast tracking
  ############################################################
  - if: "'fast track' in labels"
    status: success
    explanation: "PR has been fast tracked, bypassing reviews"

############################################################
#  Notifications
############################################################

notifications:
  ############################################################
  #  New contributors
  ############################################################
  - when: pull_request.opened
    if: "author_association == 'FIRST_TIME_CONTRIBUTOR'"
    comment: |
      Hey @{{ author }}, thanks for the PR! The review will start once
      the tests and CI checks have passed. If they don't, please review
      the logs and try to fix the issues (ask for help if you can't
      figure it out). A reviewer will be assigned once the tests are
      passing and they'll walk you through getting the PR finished
      and merged.

groups:
  ############################################################
  #  Shared Reviewer Groups
  ############################################################
  shared-reviewers-amazon:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-amazon]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-apple:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-apple]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-bosch:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-bosch]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-comcast:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-comcast]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-dyson:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-dyson]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-espressif:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-espressif]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-google:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-google]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-grundfos:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-grundfos]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-irobot:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-irobot]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-lg:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-lg]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-logitech:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-logitech]
    reviews:
      request: 0 # Requested to be only on demand
  shared-reviewers-nordic:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nordic]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-nxp:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nxp]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-samsung:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-samsung]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-eve:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-eve]
    reviews:
      request: 0 # Do not auto-add
  # shared-reviewers-signify disabled for now, because the reviewers-signify
  # team is empty and pullapprove seems to mis-handle that badly and treats
  # _all_ reviewers as being in this group.
  #
  # See https://github.com/dropseed/pullapprove/issues/71
  #
  # shared-reviewers-signify:
  #     type: optional
  #     conditions:
  #         - files.include('*')
  #     reviewers:
  #         teams: [reviewers-signify]
  #     reviews:
  #         request: 0 # Do not auto-add
  shared-reviewers-silabs:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-silabs]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-somfy:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-somfy]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-tcl:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-tcl]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-qorvo:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-qorvo]
    reviews:
      request: 0 # Do not auto-add

  ############################################################
  #  Path specific review requirments. A PR must meet the
  #  review requirements corresponding each path in the
  #  in the CUSTOM_REVIEW_PATHS list that it touches. If it
  #  touches a region not covered by any custom review paths, 
  #  base condition is required.
  ############################################################
  custom_review_paths: &CUSTOM_REVIEW_PATHS
    - chef: &CHEF "examples/chef"
  
  ############################################################
  #  Review requirements for PRs touching examples/chef.
  #  One Googler requirement is sufficient.
  ############################################################
  chef-required-reviewers:
    type: required
    conditions:
      - any(f.startswith(*CHEF) for f in files)
    requirements:
      - len(groups.approved.include('shared-reviewers-google')) >= 1 or len(groups.approved.include('shared-reviewers-*')) >= 2  
    reviews:
      required: 0

  ############################################################
  #  Base Required Reviewers
  ############################################################
  required-reviewers:
    description: >
      [Required
      Reviewers](https://github.com/project-chip/connectedhomeip/blob/master/CONTRIBUTING.md#review-requirements)
      This is the main group of required reviews for general pull
      requests.
    type: required
    conditions:
      # If PR touches a region not covered by any custom review paths, base condition is required.
      - not all(any(f.startswith(p) for p in *CUSTOM_REVIEW_PATHS) for f in files)
    requirements:
      - len(groups.approved.include('shared-reviewers-*')) >= 2
    reviews:
      required: 0
    labels:
      approved: "review - approved"
      pending: "review - pending"
      rejected: "review - changed requested"

Copy link

pullapprove bot commented May 13, 2025

@sxb427
Copy link
Contributor Author

sxb427 commented May 13, 2025

/pullapprove-test

version: 3

# https://developer.github.com/v3/previews/#draft-pull-requests
github_api_version: "shadow-cat-preview"

############################################################
#  Overrides
############################################################

overrides:
  - if: "'hotfix' in labels"
    status: success
    explanation: "Hotfix label added, bypassing reviews"

  ############################################################
  #  Draft PRs
  ############################################################
  - if: "draft"
    status: pending
    explanation: "PR is draft, pending review"

  ############################################################
  #  License Checks
  ############################################################
  - if: "'*license/cla*' not in statuses.successful"
    status: pending
    explanation: "CLA must be agreed to by all contributors"

  ############################################################
  #  Conditions to Skip Review
  ############################################################
  - if: "base.ref != 'master'"
    status: success
    explanation: "Review not required unless merging to master"

  ############################################################
  #  Require Issues
  ############################################################
  # disabling until we have PRs up to date
  #     - if: "'*issue*' not in statuses.successful"
  #       status: failure
  #       explanation: "An issue is required for all PRs"

  ############################################################
  #  Fast tracking
  ############################################################
  - if: "'fast track' in labels"
    status: success
    explanation: "PR has been fast tracked, bypassing reviews"

############################################################
#  Notifications
############################################################

notifications:
  ############################################################
  #  New contributors
  ############################################################
  - when: pull_request.opened
    if: "author_association == 'FIRST_TIME_CONTRIBUTOR'"
    comment: |
      Hey @{{ author }}, thanks for the PR! The review will start once
      the tests and CI checks have passed. If they don't, please review
      the logs and try to fix the issues (ask for help if you can't
      figure it out). A reviewer will be assigned once the tests are
      passing and they'll walk you through getting the PR finished
      and merged.

groups:
  ############################################################
  #  Shared Reviewer Groups
  ############################################################
  shared-reviewers-amazon:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-amazon]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-apple:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-apple]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-bosch:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-bosch]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-comcast:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-comcast]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-dyson:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-dyson]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-espressif:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-espressif]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-google:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-google]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-grundfos:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-grundfos]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-irobot:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-irobot]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-lg:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-lg]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-logitech:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-logitech]
    reviews:
      request: 0 # Requested to be only on demand
  shared-reviewers-nordic:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nordic]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-nxp:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nxp]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-samsung:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-samsung]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-eve:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-eve]
    reviews:
      request: 0 # Do not auto-add
  # shared-reviewers-signify disabled for now, because the reviewers-signify
  # team is empty and pullapprove seems to mis-handle that badly and treats
  # _all_ reviewers as being in this group.
  #
  # See https://github.com/dropseed/pullapprove/issues/71
  #
  # shared-reviewers-signify:
  #     type: optional
  #     conditions:
  #         - files.include('*')
  #     reviewers:
  #         teams: [reviewers-signify]
  #     reviews:
  #         request: 0 # Do not auto-add
  shared-reviewers-silabs:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-silabs]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-somfy:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-somfy]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-tcl:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-tcl]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-qorvo:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-qorvo]
    reviews:
      request: 0 # Do not auto-add

  ############################################################
  #  Path specific review requirments. A PR must meet the
  #  review requirements corresponding each path in the
  #  in the CUSTOM_REVIEW_PATHS list that it touches. If it
  #  touches a region not covered by any custom review paths, 
  #  base condition is required.
  ############################################################
  custom_review_paths: &CUSTOM_REVIEW_PATHS
    - chef: &CHEF "examples/chef"
  
  ############################################################
  #  Review requirements for PRs touching examples/chef.
  #  One Googler requirement is sufficient.
  ############################################################
  chef-required-reviewers:
    type: required
    conditions:
      - any(f.startswith(*CHEF) for f in files)
    requirements:
      - len(groups.approved.include('shared-reviewers-google')) >= 1 or len(groups.approved.include('shared-reviewers-*')) >= 2  
    reviews:
      required: 0

  ############################################################
  #  Base Required Reviewers
  ############################################################
  required-reviewers:
    description: >
      [Required
      Reviewers](https://github.com/project-chip/connectedhomeip/blob/master/CONTRIBUTING.md#review-requirements)
      This is the main group of required reviews for general pull
      requests.
    type: required
    conditions:
      # If PR touches a region not covered by any custom review paths, base condition is required.
      - not all(any(f.startswith(p) for p in *CUSTOM_REVIEW_PATHS) for f in files)
    requirements:
      - len(groups.approved.include('shared-reviewers-*')) >= 2
    reviews:
      required: 0
    labels:
      approved: "review - approved"
      pending: "review - pending"
      rejected: "review - changed requested"

Copy link
Contributor Author

@sxb427 sxb427 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/pullapprove-test

version: 3

# https://developer.github.com/v3/previews/#draft-pull-requests
github_api_version: "shadow-cat-preview"

############################################################
#  Overrides
############################################################

overrides:
  - if: "'hotfix' in labels"
    status: success
    explanation: "Hotfix label added, bypassing reviews"

  ############################################################
  #  Draft PRs
  ############################################################
  - if: "draft"
    status: pending
    explanation: "PR is draft, pending review"

  ############################################################
  #  License Checks
  ############################################################
  - if: "'*license/cla*' not in statuses.successful"
    status: pending
    explanation: "CLA must be agreed to by all contributors"

  ############################################################
  #  Conditions to Skip Review
  ############################################################
  - if: "base.ref != 'master'"
    status: success
    explanation: "Review not required unless merging to master"

  ############################################################
  #  Require Issues
  ############################################################
  # disabling until we have PRs up to date
  #     - if: "'*issue*' not in statuses.successful"
  #       status: failure
  #       explanation: "An issue is required for all PRs"

  ############################################################
  #  Fast tracking
  ############################################################
  - if: "'fast track' in labels"
    status: success
    explanation: "PR has been fast tracked, bypassing reviews"

############################################################
#  Notifications
############################################################

notifications:
  ############################################################
  #  New contributors
  ############################################################
  - when: pull_request.opened
    if: "author_association == 'FIRST_TIME_CONTRIBUTOR'"
    comment: |
      Hey @{{ author }}, thanks for the PR! The review will start once
      the tests and CI checks have passed. If they don't, please review
      the logs and try to fix the issues (ask for help if you can't
      figure it out). A reviewer will be assigned once the tests are
      passing and they'll walk you through getting the PR finished
      and merged.

groups:
  ############################################################
  #  Shared Reviewer Groups
  ############################################################
  shared-reviewers-amazon:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-amazon]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-apple:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-apple]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-bosch:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-bosch]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-comcast:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-comcast]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-dyson:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-dyson]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-espressif:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-espressif]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-google:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-google]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-grundfos:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-grundfos]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-irobot:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-irobot]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-lg:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-lg]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-logitech:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-logitech]
    reviews:
      request: 0 # Requested to be only on demand
  shared-reviewers-nordic:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nordic]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-nxp:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nxp]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-samsung:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-samsung]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-eve:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-eve]
    reviews:
      request: 0 # Do not auto-add
  # shared-reviewers-signify disabled for now, because the reviewers-signify
  # team is empty and pullapprove seems to mis-handle that badly and treats
  # _all_ reviewers as being in this group.
  #
  # See https://github.com/dropseed/pullapprove/issues/71
  #
  # shared-reviewers-signify:
  #     type: optional
  #     conditions:
  #         - files.include('*')
  #     reviewers:
  #         teams: [reviewers-signify]
  #     reviews:
  #         request: 0 # Do not auto-add
  shared-reviewers-silabs:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-silabs]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-somfy:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-somfy]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-tcl:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-tcl]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-qorvo:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-qorvo]
    reviews:
      request: 0 # Do not auto-add

  ############################################################
  #  Path specific review requirments. A PR must meet the
  #  review requirements corresponding each path in the
  #  in the CUSTOM_REVIEW_PATHS list that it touches. If it
  #  touches a region not covered by any custom review paths, 
  #  base condition is required.
  ############################################################
  custom_review_paths: &CUSTOM_REVIEW_PATHS
    - chef: &CHEF "examples/chef"
  
  ############################################################
  #  Review requirements for PRs touching examples/chef.
  #  One Googler requirement is sufficient.
  ############################################################
  chef-required-reviewers:
    type: required
    conditions:
      - any(f.startswith(*CHEF) for f in files)
    requirements:
      - len(groups.approved.include('shared-reviewers-google')) >= 1 or len(groups.approved.include('shared-reviewers-*')) >= 2  
    reviews:
      required: 0

  ############################################################
  #  Base Required Reviewers
  ############################################################
  required-reviewers:
    description: >
      [Required
      Reviewers](https://github.com/project-chip/connectedhomeip/blob/master/CONTRIBUTING.md#review-requirements)
      This is the main group of required reviews for general pull
      requests.
    type: required
    conditions:
      # If PR touches a region not covered by any custom review paths, base condition is required.
      - not all(any(f.startswith(p) for p in *CUSTOM_REVIEW_PATHS) for f in files)
    requirements:
      - len(groups.approved.include('shared-reviewers-*')) >= 2
    reviews:
      required: 0
    labels:
      approved: "review - approved"
      pending: "review - pending"
      rejected: "review - changed requested"

Copy link

pullapprove bot commented May 13, 2025

Copy link
Contributor Author

@sxb427 sxb427 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/pullapprove-test

version: 3

# https://developer.github.com/v3/previews/#draft-pull-requests
github_api_version: "shadow-cat-preview"

############################################################
#  Overrides
############################################################

overrides:
  - if: "'hotfix' in labels"
    status: success
    explanation: "Hotfix label added, bypassing reviews"

  ############################################################
  #  Draft PRs
  ############################################################
  - if: "draft"
    status: pending
    explanation: "PR is draft, pending review"

  ############################################################
  #  License Checks
  ############################################################
  - if: "'*license/cla*' not in statuses.successful"
    status: pending
    explanation: "CLA must be agreed to by all contributors"

  ############################################################
  #  Conditions to Skip Review
  ############################################################
  - if: "base.ref != 'master'"
    status: success
    explanation: "Review not required unless merging to master"

  ############################################################
  #  Require Issues
  ############################################################
  # disabling until we have PRs up to date
  #     - if: "'*issue*' not in statuses.successful"
  #       status: failure
  #       explanation: "An issue is required for all PRs"

  ############################################################
  #  Fast tracking
  ############################################################
  - if: "'fast track' in labels"
    status: success
    explanation: "PR has been fast tracked, bypassing reviews"

############################################################
#  Notifications
############################################################

notifications:
  ############################################################
  #  New contributors
  ############################################################
  - when: pull_request.opened
    if: "author_association == 'FIRST_TIME_CONTRIBUTOR'"
    comment: |
      Hey @{{ author }}, thanks for the PR! The review will start once
      the tests and CI checks have passed. If they don't, please review
      the logs and try to fix the issues (ask for help if you can't
      figure it out). A reviewer will be assigned once the tests are
      passing and they'll walk you through getting the PR finished
      and merged.

groups:
  ############################################################
  #  Shared Reviewer Groups
  ############################################################
  shared-reviewers-amazon:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-amazon]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-apple:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-apple]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-bosch:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-bosch]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-comcast:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-comcast]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-dyson:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-dyson]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-espressif:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-espressif]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-google:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-google]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-grundfos:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-grundfos]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-irobot:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-irobot]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-lg:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-lg]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-logitech:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-logitech]
    reviews:
      request: 0 # Requested to be only on demand
  shared-reviewers-nordic:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nordic]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-nxp:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nxp]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-samsung:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-samsung]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-eve:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-eve]
    reviews:
      request: 0 # Do not auto-add
  # shared-reviewers-signify disabled for now, because the reviewers-signify
  # team is empty and pullapprove seems to mis-handle that badly and treats
  # _all_ reviewers as being in this group.
  #
  # See https://github.com/dropseed/pullapprove/issues/71
  #
  # shared-reviewers-signify:
  #     type: optional
  #     conditions:
  #         - files.include('*')
  #     reviewers:
  #         teams: [reviewers-signify]
  #     reviews:
  #         request: 0 # Do not auto-add
  shared-reviewers-silabs:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-silabs]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-somfy:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-somfy]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-tcl:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-tcl]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-qorvo:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-qorvo]
    reviews:
      request: 0 # Do not auto-add

  ############################################################
  #  Path specific review requirments. A PR must meet the
  #  review requirements corresponding each path in the
  #  in the CUSTOM_REVIEW_PATHS list that it touches. If it
  #  touches a region not covered by any custom review paths, 
  #  base condition is required.
  ############################################################
  chef: &CHEF "examples/chef/"

  custom_review_paths: &CUSTOM_REVIEW_PATHS [*CHEF]
  
  ############################################################
  #  Review requirements for PRs touching examples/chef.
  #  One Googler requirement is sufficient.
  ############################################################
  chef-required-reviewers:
    type: required
    conditions:
      - any(f.startswith(*CHEF) for f in files)
    requirements:
      - len(groups.approved.include('shared-reviewers-google')) >= 1 or len(groups.approved.include('shared-reviewers-*')) >= 2  
    reviews:
      required: 0

  ############################################################
  #  Base Required Reviewers
  ############################################################
  required-reviewers:
    description: >
      [Required
      Reviewers](https://github.com/project-chip/connectedhomeip/blob/master/CONTRIBUTING.md#review-requirements)
      This is the main group of required reviews for general pull
      requests.
    type: required
    conditions:
      # If PR touches a region not covered by any custom review paths, base condition is required.
      - not all(any(f.startswith(p) for p in *CUSTOM_REVIEW_PATHS) for f in files)
    requirements:
      - len(groups.approved.include('shared-reviewers-*')) >= 2
    reviews:
      required: 0
    labels:
      approved: "review - approved"
      pending: "review - pending"
      rejected: "review - changed requested"

Copy link

pullapprove bot commented May 13, 2025

Copy link
Contributor Author

@sxb427 sxb427 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/pullapprove-test

version: 3

# https://developer.github.com/v3/previews/#draft-pull-requests
github_api_version: "shadow-cat-preview"

############################################################
#  Overrides
############################################################

overrides:
  - if: "'hotfix' in labels"
    status: success
    explanation: "Hotfix label added, bypassing reviews"

  ############################################################
  #  Draft PRs
  ############################################################
  - if: "draft"
    status: pending
    explanation: "PR is draft, pending review"

  ############################################################
  #  License Checks
  ############################################################
  - if: "'*license/cla*' not in statuses.successful"
    status: pending
    explanation: "CLA must be agreed to by all contributors"

  ############################################################
  #  Conditions to Skip Review
  ############################################################
  - if: "base.ref != 'master'"
    status: success
    explanation: "Review not required unless merging to master"

  ############################################################
  #  Require Issues
  ############################################################
  # disabling until we have PRs up to date
  #     - if: "'*issue*' not in statuses.successful"
  #       status: failure
  #       explanation: "An issue is required for all PRs"

  ############################################################
  #  Fast tracking
  ############################################################
  - if: "'fast track' in labels"
    status: success
    explanation: "PR has been fast tracked, bypassing reviews"

############################################################
#  Notifications
############################################################

notifications:
  ############################################################
  #  New contributors
  ############################################################
  - when: pull_request.opened
    if: "author_association == 'FIRST_TIME_CONTRIBUTOR'"
    comment: |
      Hey @{{ author }}, thanks for the PR! The review will start once
      the tests and CI checks have passed. If they don't, please review
      the logs and try to fix the issues (ask for help if you can't
      figure it out). A reviewer will be assigned once the tests are
      passing and they'll walk you through getting the PR finished
      and merged.

groups:
  ############################################################
  #  Shared Reviewer Groups
  ############################################################
  shared-reviewers-amazon:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-amazon]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-apple:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-apple]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-bosch:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-bosch]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-comcast:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-comcast]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-dyson:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-dyson]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-espressif:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-espressif]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-google:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-google]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-grundfos:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-grundfos]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-irobot:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-irobot]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-lg:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-lg]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-logitech:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-logitech]
    reviews:
      request: 0 # Requested to be only on demand
  shared-reviewers-nordic:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nordic]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-nxp:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nxp]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-samsung:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-samsung]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-eve:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-eve]
    reviews:
      request: 0 # Do not auto-add
  # shared-reviewers-signify disabled for now, because the reviewers-signify
  # team is empty and pullapprove seems to mis-handle that badly and treats
  # _all_ reviewers as being in this group.
  #
  # See https://github.com/dropseed/pullapprove/issues/71
  #
  # shared-reviewers-signify:
  #     type: optional
  #     conditions:
  #         - files.include('*')
  #     reviewers:
  #         teams: [reviewers-signify]
  #     reviews:
  #         request: 0 # Do not auto-add
  shared-reviewers-silabs:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-silabs]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-somfy:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-somfy]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-tcl:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-tcl]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-qorvo:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-qorvo]
    reviews:
      request: 0 # Do not auto-add

  ############################################################
  #  Path specific review requirments. A PR must meet the
  #  review requirements corresponding each path in the
  #  in the CUSTOM_REVIEW_PATHS list that it touches. If it
  #  touches a region not covered by any custom review paths, 
  #  base condition is required.
  ############################################################
  chef: &CHEF "examples/chef/"

  # custom_review_paths: &CUSTOM_REVIEW_PATHS [*CHEF]
  
  # ############################################################
  # #  Review requirements for PRs touching examples/chef.
  # #  One Googler requirement is sufficient.
  # ############################################################
  # chef-required-reviewers:
  #   type: required
  #   conditions:
  #     - any(f.startswith(*CHEF) for f in files)
  #   requirements:
  #     - len(groups.approved.include('shared-reviewers-google')) >= 1 or len(groups.approved.include('shared-reviewers-*')) >= 2  
  #   reviews:
  #     required: 0

  ############################################################
  #  Base Required Reviewers
  ############################################################
  required-reviewers:
    description: >
      [Required
      Reviewers](https://github.com/project-chip/connectedhomeip/blob/master/CONTRIBUTING.md#review-requirements)
      This is the main group of required reviews for general pull
      requests.
    type: required
    # conditions:
    #   # If PR touches a region not covered by any custom review paths, base condition is required.
    #   - not all(any(f.startswith(p) for p in *CUSTOM_REVIEW_PATHS) for f in files)
    requirements:
      - len(groups.approved.include('shared-reviewers-*')) >= 2
    reviews:
      required: 0
    labels:
      approved: "review - approved"
      pending: "review - pending"
      rejected: "review - changed requested"

Copy link

pullapprove bot commented May 13, 2025

Copy link
Contributor Author

@sxb427 sxb427 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/pullapprove-test

version: 3

# https://developer.github.com/v3/previews/#draft-pull-requests
github_api_version: "shadow-cat-preview"

############################################################
#  Overrides
############################################################

overrides:
  - if: "'hotfix' in labels"
    status: success
    explanation: "Hotfix label added, bypassing reviews"

  ############################################################
  #  Draft PRs
  ############################################################
  - if: "draft"
    status: pending
    explanation: "PR is draft, pending review"

  ############################################################
  #  License Checks
  ############################################################
  - if: "'*license/cla*' not in statuses.successful"
    status: pending
    explanation: "CLA must be agreed to by all contributors"

  ############################################################
  #  Conditions to Skip Review
  ############################################################
  - if: "base.ref != 'master'"
    status: success
    explanation: "Review not required unless merging to master"

  ############################################################
  #  Require Issues
  ############################################################
  # disabling until we have PRs up to date
  #     - if: "'*issue*' not in statuses.successful"
  #       status: failure
  #       explanation: "An issue is required for all PRs"

  ############################################################
  #  Fast tracking
  ############################################################
  - if: "'fast track' in labels"
    status: success
    explanation: "PR has been fast tracked, bypassing reviews"

############################################################
#  Notifications
############################################################

notifications:
  ############################################################
  #  New contributors
  ############################################################
  - when: pull_request.opened
    if: "author_association == 'FIRST_TIME_CONTRIBUTOR'"
    comment: |
      Hey @{{ author }}, thanks for the PR! The review will start once
      the tests and CI checks have passed. If they don't, please review
      the logs and try to fix the issues (ask for help if you can't
      figure it out). A reviewer will be assigned once the tests are
      passing and they'll walk you through getting the PR finished
      and merged.

chef: &CHEF "examples/chef/"

groups:
  ############################################################
  #  Shared Reviewer Groups
  ############################################################
  shared-reviewers-amazon:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-amazon]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-apple:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-apple]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-bosch:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-bosch]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-comcast:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-comcast]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-dyson:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-dyson]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-espressif:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-espressif]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-google:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-google]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-grundfos:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-grundfos]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-irobot:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-irobot]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-lg:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-lg]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-logitech:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-logitech]
    reviews:
      request: 0 # Requested to be only on demand
  shared-reviewers-nordic:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nordic]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-nxp:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nxp]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-samsung:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-samsung]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-eve:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-eve]
    reviews:
      request: 0 # Do not auto-add
  # shared-reviewers-signify disabled for now, because the reviewers-signify
  # team is empty and pullapprove seems to mis-handle that badly and treats
  # _all_ reviewers as being in this group.
  #
  # See https://github.com/dropseed/pullapprove/issues/71
  #
  # shared-reviewers-signify:
  #     type: optional
  #     conditions:
  #         - files.include('*')
  #     reviewers:
  #         teams: [reviewers-signify]
  #     reviews:
  #         request: 0 # Do not auto-add
  shared-reviewers-silabs:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-silabs]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-somfy:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-somfy]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-tcl:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-tcl]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-qorvo:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-qorvo]
    reviews:
      request: 0 # Do not auto-add

  ############################################################
  #  Path specific review requirments. A PR must meet the
  #  review requirements corresponding each path in the
  #  in the CUSTOM_REVIEW_PATHS list that it touches. If it
  #  touches a region not covered by any custom review paths, 
  #  base condition is required.
  ############################################################

  # custom_review_paths: &CUSTOM_REVIEW_PATHS [*CHEF]
  
  # ############################################################
  # #  Review requirements for PRs touching examples/chef.
  # #  One Googler requirement is sufficient.
  # ############################################################
  # chef-required-reviewers:
  #   type: required
  #   conditions:
  #     - any(f.startswith(*CHEF) for f in files)
  #   requirements:
  #     - len(groups.approved.include('shared-reviewers-google')) >= 1 or len(groups.approved.include('shared-reviewers-*')) >= 2  
  #   reviews:
  #     required: 0

  ############################################################
  #  Base Required Reviewers
  ############################################################
  required-reviewers:
    description: >
      [Required
      Reviewers](https://github.com/project-chip/connectedhomeip/blob/master/CONTRIBUTING.md#review-requirements)
      This is the main group of required reviews for general pull
      requests.
    type: required
    # conditions:
    #   # If PR touches a region not covered by any custom review paths, base condition is required.
    #   - not all(any(f.startswith(p) for p in *CUSTOM_REVIEW_PATHS) for f in files)
    requirements:
      - len(groups.approved.include('shared-reviewers-*')) >= 2
    reviews:
      required: 0
    labels:
      approved: "review - approved"
      pending: "review - pending"
      rejected: "review - changed requested"

Copy link

pullapprove bot commented May 13, 2025

Copy link
Contributor Author

@sxb427 sxb427 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/pullapprove-test

version: 3

# https://developer.github.com/v3/previews/#draft-pull-requests
github_api_version: "shadow-cat-preview"

############################################################
#  Overrides
############################################################

overrides:
  - if: "'hotfix' in labels"
    status: success
    explanation: "Hotfix label added, bypassing reviews"

  ############################################################
  #  Draft PRs
  ############################################################
  - if: "draft"
    status: pending
    explanation: "PR is draft, pending review"

  ############################################################
  #  License Checks
  ############################################################
  - if: "'*license/cla*' not in statuses.successful"
    status: pending
    explanation: "CLA must be agreed to by all contributors"

  ############################################################
  #  Conditions to Skip Review
  ############################################################
  - if: "base.ref != 'master'"
    status: success
    explanation: "Review not required unless merging to master"

  ############################################################
  #  Require Issues
  ############################################################
  # disabling until we have PRs up to date
  #     - if: "'*issue*' not in statuses.successful"
  #       status: failure
  #       explanation: "An issue is required for all PRs"

  ############################################################
  #  Fast tracking
  ############################################################
  - if: "'fast track' in labels"
    status: success
    explanation: "PR has been fast tracked, bypassing reviews"

############################################################
#  Notifications
############################################################

notifications:
  ############################################################
  #  New contributors
  ############################################################
  - when: pull_request.opened
    if: "author_association == 'FIRST_TIME_CONTRIBUTOR'"
    comment: |
      Hey @{{ author }}, thanks for the PR! The review will start once
      the tests and CI checks have passed. If they don't, please review
      the logs and try to fix the issues (ask for help if you can't
      figure it out). A reviewer will be assigned once the tests are
      passing and they'll walk you through getting the PR finished
      and merged.

groups:
  ############################################################
  #  Shared Reviewer Groups
  ############################################################
  shared-reviewers-amazon:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-amazon]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-apple:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-apple]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-bosch:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-bosch]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-comcast:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-comcast]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-dyson:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-dyson]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-espressif:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-espressif]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-google:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-google]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-grundfos:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-grundfos]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-irobot:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-irobot]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-lg:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-lg]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-logitech:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-logitech]
    reviews:
      request: 0 # Requested to be only on demand
  shared-reviewers-nordic:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nordic]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-nxp:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nxp]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-samsung:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-samsung]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-eve:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-eve]
    reviews:
      request: 0 # Do not auto-add
  # shared-reviewers-signify disabled for now, because the reviewers-signify
  # team is empty and pullapprove seems to mis-handle that badly and treats
  # _all_ reviewers as being in this group.
  #
  # See https://github.com/dropseed/pullapprove/issues/71
  #
  # shared-reviewers-signify:
  #     type: optional
  #     conditions:
  #         - files.include('*')
  #     reviewers:
  #         teams: [reviewers-signify]
  #     reviews:
  #         request: 0 # Do not auto-add
  shared-reviewers-silabs:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-silabs]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-somfy:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-somfy]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-tcl:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-tcl]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-qorvo:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-qorvo]
    reviews:
      request: 0 # Do not auto-add

  ############################################################
  #  Path specific review requirments. A PR must meet the
  #  review requirements corresponding each path in the
  #  in the CUSTOM_REVIEW_PATHS list that it touches. If it
  #  touches a region not covered by any custom review paths, 
  #  base condition is required.
  ############################################################

  constants:
    chef: &CHEF "examples/chef/"
  # custom_review_paths: &CUSTOM_REVIEW_PATHS [*CHEF]
  
  # ############################################################
  # #  Review requirements for PRs touching examples/chef.
  # #  One Googler requirement is sufficient.
  # ############################################################
  # chef-required-reviewers:
  #   type: required
  #   conditions:
  #     - any(f.startswith(*CHEF) for f in files)
  #   requirements:
  #     - len(groups.approved.include('shared-reviewers-google')) >= 1 or len(groups.approved.include('shared-reviewers-*')) >= 2  
  #   reviews:
  #     required: 0

  ############################################################
  #  Base Required Reviewers
  ############################################################
  required-reviewers:
    description: >
      [Required
      Reviewers](https://github.com/project-chip/connectedhomeip/blob/master/CONTRIBUTING.md#review-requirements)
      This is the main group of required reviews for general pull
      requests.
    type: required
    # conditions:
    #   # If PR touches a region not covered by any custom review paths, base condition is required.
    #   - not all(any(f.startswith(p) for p in *CUSTOM_REVIEW_PATHS) for f in files)
    requirements:
      - len(groups.approved.include('shared-reviewers-*')) >= 2
    reviews:
      required: 0
    labels:
      approved: "review - approved"
      pending: "review - pending"
      rejected: "review - changed requested"

Copy link

pullapprove bot commented May 13, 2025

Copy link
Contributor Author

@sxb427 sxb427 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/pullapprove-test

version: 3

# https://developer.github.com/v3/previews/#draft-pull-requests
github_api_version: "shadow-cat-preview"

############################################################
#  Overrides
############################################################

overrides:
  - if: "'hotfix' in labels"
    status: success
    explanation: "Hotfix label added, bypassing reviews"

  ############################################################
  #  Draft PRs
  ############################################################
  - if: "draft"
    status: pending
    explanation: "PR is draft, pending review"

  ############################################################
  #  License Checks
  ############################################################
  - if: "'*license/cla*' not in statuses.successful"
    status: pending
    explanation: "CLA must be agreed to by all contributors"

  ############################################################
  #  Conditions to Skip Review
  ############################################################
  - if: "base.ref != 'master'"
    status: success
    explanation: "Review not required unless merging to master"

  ############################################################
  #  Require Issues
  ############################################################
  # disabling until we have PRs up to date
  #     - if: "'*issue*' not in statuses.successful"
  #       status: failure
  #       explanation: "An issue is required for all PRs"

  ############################################################
  #  Fast tracking
  ############################################################
  - if: "'fast track' in labels"
    status: success
    explanation: "PR has been fast tracked, bypassing reviews"

############################################################
#  Notifications
############################################################

notifications:
  ############################################################
  #  New contributors
  ############################################################
  - when: pull_request.opened
    if: "author_association == 'FIRST_TIME_CONTRIBUTOR'"
    comment: |
      Hey @{{ author }}, thanks for the PR! The review will start once
      the tests and CI checks have passed. If they don't, please review
      the logs and try to fix the issues (ask for help if you can't
      figure it out). A reviewer will be assigned once the tests are
      passing and they'll walk you through getting the PR finished
      and merged.

groups:
  ############################################################
  #  Shared Reviewer Groups
  ############################################################
  shared-reviewers-amazon:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-amazon]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-apple:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-apple]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-bosch:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-bosch]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-comcast:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-comcast]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-dyson:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-dyson]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-espressif:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-espressif]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-google:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-google]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-grundfos:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-grundfos]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-irobot:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-irobot]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-lg:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-lg]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-logitech:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-logitech]
    reviews:
      request: 0 # Requested to be only on demand
  shared-reviewers-nordic:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nordic]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-nxp:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nxp]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-samsung:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-samsung]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-eve:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-eve]
    reviews:
      request: 0 # Do not auto-add
  # shared-reviewers-signify disabled for now, because the reviewers-signify
  # team is empty and pullapprove seems to mis-handle that badly and treats
  # _all_ reviewers as being in this group.
  #
  # See https://github.com/dropseed/pullapprove/issues/71
  #
  # shared-reviewers-signify:
  #     type: optional
  #     conditions:
  #         - files.include('*')
  #     reviewers:
  #         teams: [reviewers-signify]
  #     reviews:
  #         request: 0 # Do not auto-add
  shared-reviewers-silabs:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-silabs]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-somfy:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-somfy]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-tcl:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-tcl]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-qorvo:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-qorvo]
    reviews:
      request: 0 # Do not auto-add

  ############################################################
  #  Path specific review requirments. A PR must meet the
  #  review requirements corresponding each path in the
  #  in the CUSTOM_REVIEW_PATHS list that it touches. If it
  #  touches a region not covered by any custom review paths, 
  #  base condition is required.
  ############################################################

  constants:
    chef: "examples/chef/"
  # custom_review_paths: &CUSTOM_REVIEW_PATHS [*CHEF]
  
  # ############################################################
  # #  Review requirements for PRs touching examples/chef.
  # #  One Googler requirement is sufficient.
  # ############################################################
  # chef-required-reviewers:
  #   type: required
  #   conditions:
  #     - any(f.startswith(*CHEF) for f in files)
  #   requirements:
  #     - len(groups.approved.include('shared-reviewers-google')) >= 1 or len(groups.approved.include('shared-reviewers-*')) >= 2  
  #   reviews:
  #     required: 0

  ############################################################
  #  Base Required Reviewers
  ############################################################
  required-reviewers:
    description: >
      [Required
      Reviewers](https://github.com/project-chip/connectedhomeip/blob/master/CONTRIBUTING.md#review-requirements)
      This is the main group of required reviews for general pull
      requests.
    type: required
    # conditions:
    #   # If PR touches a region not covered by any custom review paths, base condition is required.
    #   - not all(any(f.startswith(p) for p in *CUSTOM_REVIEW_PATHS) for f in files)
    requirements:
      - len(groups.approved.include('shared-reviewers-*')) >= 2
    reviews:
      required: 0
    labels:
      approved: "review - approved"
      pending: "review - pending"
      rejected: "review - changed requested"

Copy link

pullapprove bot commented May 13, 2025

Copy link
Contributor Author

@sxb427 sxb427 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/pullapprove-test

version: 3

# https://developer.github.com/v3/previews/#draft-pull-requests
github_api_version: "shadow-cat-preview"

############################################################
#  Overrides
############################################################

overrides:
  - if: "'hotfix' in labels"
    status: success
    explanation: "Hotfix label added, bypassing reviews"

  ############################################################
  #  Draft PRs
  ############################################################
  - if: "draft"
    status: pending
    explanation: "PR is draft, pending review"

  ############################################################
  #  License Checks
  ############################################################
  - if: "'*license/cla*' not in statuses.successful"
    status: pending
    explanation: "CLA must be agreed to by all contributors"

  ############################################################
  #  Conditions to Skip Review
  ############################################################
  - if: "base.ref != 'master'"
    status: success
    explanation: "Review not required unless merging to master"

  ############################################################
  #  Require Issues
  ############################################################
  # disabling until we have PRs up to date
  #     - if: "'*issue*' not in statuses.successful"
  #       status: failure
  #       explanation: "An issue is required for all PRs"

  ############################################################
  #  Fast tracking
  ############################################################
  - if: "'fast track' in labels"
    status: success
    explanation: "PR has been fast tracked, bypassing reviews"

############################################################
#  Notifications
############################################################

notifications:
  ############################################################
  #  New contributors
  ############################################################
  - when: pull_request.opened
    if: "author_association == 'FIRST_TIME_CONTRIBUTOR'"
    comment: |
      Hey @{{ author }}, thanks for the PR! The review will start once
      the tests and CI checks have passed. If they don't, please review
      the logs and try to fix the issues (ask for help if you can't
      figure it out). A reviewer will be assigned once the tests are
      passing and they'll walk you through getting the PR finished
      and merged.

groups:
  ############################################################
  #  Shared Reviewer Groups
  ############################################################
  shared-reviewers-amazon:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-amazon]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-apple:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-apple]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-bosch:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-bosch]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-comcast:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-comcast]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-dyson:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-dyson]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-espressif:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-espressif]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-google:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-google]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-grundfos:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-grundfos]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-irobot:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-irobot]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-lg:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-lg]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-logitech:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-logitech]
    reviews:
      request: 0 # Requested to be only on demand
  shared-reviewers-nordic:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nordic]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-nxp:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nxp]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-samsung:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-samsung]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-eve:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-eve]
    reviews:
      request: 0 # Do not auto-add
  # shared-reviewers-signify disabled for now, because the reviewers-signify
  # team is empty and pullapprove seems to mis-handle that badly and treats
  # _all_ reviewers as being in this group.
  #
  # See https://github.com/dropseed/pullapprove/issues/71
  #
  # shared-reviewers-signify:
  #     type: optional
  #     conditions:
  #         - files.include('*')
  #     reviewers:
  #         teams: [reviewers-signify]
  #     reviews:
  #         request: 0 # Do not auto-add
  shared-reviewers-silabs:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-silabs]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-somfy:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-somfy]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-tcl:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-tcl]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-qorvo:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-qorvo]
    reviews:
      request: 0 # Do not auto-add

  ############################################################
  #  Path specific review requirments. A PR must meet the
  #  review requirements corresponding each path in the
  #  in the CUSTOM_REVIEW_PATHS list that it touches. If it
  #  touches a region not covered by any custom review paths, 
  #  base condition is required.
  ############################################################

  # custom_review_paths: &CUSTOM_REVIEW_PATHS [*CHEF]
  
  ############################################################
  #  Review requirements for PRs touching examples/chef.
  #  One Googler requirement is sufficient.
  ############################################################
  chef-required-reviewers:
    type: required
    conditions:
      - any(f.startswith('examples/chef/') for f in files)
    requirements:
      - len(groups.approved.include('shared-reviewers-google')) >= 1 or len(groups.approved.include('shared-reviewers-*')) >= 2  
    reviews:
      required: 0

  ############################################################
  #  Base Required Reviewers
  ############################################################
  required-reviewers:
    description: >
      [Required
      Reviewers](https://github.com/project-chip/connectedhomeip/blob/master/CONTRIBUTING.md#review-requirements)
      This is the main group of required reviews for general pull
      requests.
    type: required
    # conditions:
    #   # If PR touches a region not covered by any custom review paths, base condition is required.
    #   - not all(any(f.startswith(p) for p in *CUSTOM_REVIEW_PATHS) for f in files)
    requirements:
      - len(groups.approved.include('shared-reviewers-*')) >= 2
    reviews:
      required: 0
    labels:
      approved: "review - approved"
      pending: "review - pending"
      rejected: "review - changed requested"

Copy link

pullapprove bot commented May 13, 2025

Copy link
Contributor Author

@sxb427 sxb427 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/pullapprove-test

version: 3

# https://developer.github.com/v3/previews/#draft-pull-requests
github_api_version: "shadow-cat-preview"

############################################################
#  Overrides
############################################################

overrides:
  - if: "'hotfix' in labels"
    status: success
    explanation: "Hotfix label added, bypassing reviews"

  ############################################################
  #  Draft PRs
  ############################################################
  - if: "draft"
    status: pending
    explanation: "PR is draft, pending review"

  ############################################################
  #  License Checks
  ############################################################
  - if: "'*license/cla*' not in statuses.successful"
    status: pending
    explanation: "CLA must be agreed to by all contributors"

  ############################################################
  #  Conditions to Skip Review
  ############################################################
  - if: "base.ref != 'master'"
    status: success
    explanation: "Review not required unless merging to master"

  ############################################################
  #  Require Issues
  ############################################################
  # disabling until we have PRs up to date
  #     - if: "'*issue*' not in statuses.successful"
  #       status: failure
  #       explanation: "An issue is required for all PRs"

  ############################################################
  #  Fast tracking
  ############################################################
  - if: "'fast track' in labels"
    status: success
    explanation: "PR has been fast tracked, bypassing reviews"

############################################################
#  Notifications
############################################################

notifications:
  ############################################################
  #  New contributors
  ############################################################
  - when: pull_request.opened
    if: "author_association == 'FIRST_TIME_CONTRIBUTOR'"
    comment: |
      Hey @{{ author }}, thanks for the PR! The review will start once
      the tests and CI checks have passed. If they don't, please review
      the logs and try to fix the issues (ask for help if you can't
      figure it out). A reviewer will be assigned once the tests are
      passing and they'll walk you through getting the PR finished
      and merged.

groups:
  ############################################################
  #  Shared Reviewer Groups
  ############################################################
  shared-reviewers-amazon:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-amazon]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-apple:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-apple]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-bosch:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-bosch]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-comcast:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-comcast]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-dyson:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-dyson]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-espressif:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-espressif]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-google:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-google]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-grundfos:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-grundfos]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-irobot:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-irobot]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-lg:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-lg]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-logitech:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-logitech]
    reviews:
      request: 0 # Requested to be only on demand
  shared-reviewers-nordic:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nordic]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-nxp:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nxp]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-samsung:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-samsung]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-eve:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-eve]
    reviews:
      request: 0 # Do not auto-add
  # shared-reviewers-signify disabled for now, because the reviewers-signify
  # team is empty and pullapprove seems to mis-handle that badly and treats
  # _all_ reviewers as being in this group.
  #
  # See https://github.com/dropseed/pullapprove/issues/71
  #
  # shared-reviewers-signify:
  #     type: optional
  #     conditions:
  #         - files.include('*')
  #     reviewers:
  #         teams: [reviewers-signify]
  #     reviews:
  #         request: 0 # Do not auto-add
  shared-reviewers-silabs:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-silabs]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-somfy:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-somfy]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-tcl:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-tcl]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-qorvo:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-qorvo]
    reviews:
      request: 0 # Do not auto-add

  ############################################################
  #  Path specific review requirments. A PR must meet the
  #  review requirements corresponding each path in the
  #  in the CUSTOM_REVIEW_PATHS list that it touches. If it
  #  touches a region not covered by any custom review paths, 
  #  base condition is required.
  ############################################################

  # custom_review_paths: &CUSTOM_REVIEW_PATHS [*CHEF]
  
  ############################################################
  #  Review requirements for PRs touching examples/chef.
  #  One Googler requirement is sufficient.
  ############################################################
  chef-required-reviewers:
    type: required
    conditions:
      - f.startswith('examples/chef/') for f in files
    requirements:
      - len(groups.approved.include('shared-reviewers-google')) >= 1 or len(groups.approved.include('shared-reviewers-*')) >= 2  
    reviews:
      required: 0

  ############################################################
  #  Base Required Reviewers
  ############################################################
  required-reviewers:
    description: >
      [Required
      Reviewers](https://github.com/project-chip/connectedhomeip/blob/master/CONTRIBUTING.md#review-requirements)
      This is the main group of required reviews for general pull
      requests.
    type: required
    # conditions:
    #   # If PR touches a region not covered by any custom review paths, base condition is required.
    #   - not all(any(f.startswith(p) for p in *CUSTOM_REVIEW_PATHS) for f in files)
    requirements:
      - len(groups.approved.include('shared-reviewers-*')) >= 2
    reviews:
      required: 0
    labels:
      approved: "review - approved"
      pending: "review - pending"
      rejected: "review - changed requested"

Copy link

pullapprove bot commented May 13, 2025

Copy link
Contributor Author

@sxb427 sxb427 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/pullapprove-test

version: 3

# https://developer.github.com/v3/previews/#draft-pull-requests
github_api_version: "shadow-cat-preview"

############################################################
#  Overrides
############################################################

overrides:
  - if: "'hotfix' in labels"
    status: success
    explanation: "Hotfix label added, bypassing reviews"

  ############################################################
  #  Draft PRs
  ############################################################
  - if: "draft"
    status: pending
    explanation: "PR is draft, pending review"

  ############################################################
  #  License Checks
  ############################################################
  - if: "'*license/cla*' not in statuses.successful"
    status: pending
    explanation: "CLA must be agreed to by all contributors"

  ############################################################
  #  Conditions to Skip Review
  ############################################################
  - if: "base.ref != 'master'"
    status: success
    explanation: "Review not required unless merging to master"

  ############################################################
  #  Require Issues
  ############################################################
  # disabling until we have PRs up to date
  #     - if: "'*issue*' not in statuses.successful"
  #       status: failure
  #       explanation: "An issue is required for all PRs"

  ############################################################
  #  Fast tracking
  ############################################################
  - if: "'fast track' in labels"
    status: success
    explanation: "PR has been fast tracked, bypassing reviews"

############################################################
#  Notifications
############################################################

notifications:
  ############################################################
  #  New contributors
  ############################################################
  - when: pull_request.opened
    if: "author_association == 'FIRST_TIME_CONTRIBUTOR'"
    comment: |
      Hey @{{ author }}, thanks for the PR! The review will start once
      the tests and CI checks have passed. If they don't, please review
      the logs and try to fix the issues (ask for help if you can't
      figure it out). A reviewer will be assigned once the tests are
      passing and they'll walk you through getting the PR finished
      and merged.

groups:
  ############################################################
  #  Shared Reviewer Groups
  ############################################################
  shared-reviewers-amazon:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-amazon]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-apple:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-apple]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-bosch:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-bosch]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-comcast:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-comcast]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-dyson:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-dyson]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-espressif:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-espressif]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-google:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-google]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-grundfos:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-grundfos]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-irobot:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-irobot]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-lg:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-lg]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-logitech:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-logitech]
    reviews:
      request: 0 # Requested to be only on demand
  shared-reviewers-nordic:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nordic]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-nxp:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nxp]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-samsung:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-samsung]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-eve:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-eve]
    reviews:
      request: 0 # Do not auto-add
  # shared-reviewers-signify disabled for now, because the reviewers-signify
  # team is empty and pullapprove seems to mis-handle that badly and treats
  # _all_ reviewers as being in this group.
  #
  # See https://github.com/dropseed/pullapprove/issues/71
  #
  # shared-reviewers-signify:
  #     type: optional
  #     conditions:
  #         - files.include('*')
  #     reviewers:
  #         teams: [reviewers-signify]
  #     reviews:
  #         request: 0 # Do not auto-add
  shared-reviewers-silabs:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-silabs]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-somfy:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-somfy]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-tcl:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-tcl]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-qorvo:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-qorvo]
    reviews:
      request: 0 # Do not auto-add

  ############################################################
  #  Path specific review requirments. A PR must meet the
  #  review requirements corresponding each path in the
  #  in the CUSTOM_REVIEW_PATHS list that it touches. If it
  #  touches a region not covered by any custom review paths, 
  #  base condition is required.
  ############################################################

  # custom_review_paths: &CUSTOM_REVIEW_PATHS [*CHEF]
  
  ############################################################
  #  Review requirements for PRs touching examples/chef.
  #  One Googler requirement is sufficient.
  ############################################################
  chef-required-reviewers:
    type: required
    conditions:
      - "f.startswith('examples/chef/') for f in files"
    requirements:
      - len(groups.approved.include('shared-reviewers-google')) >= 1 or len(groups.approved.include('shared-reviewers-*')) >= 2  
    reviews:
      required: 0

  ############################################################
  #  Base Required Reviewers
  ############################################################
  required-reviewers:
    description: >
      [Required
      Reviewers](https://github.com/project-chip/connectedhomeip/blob/master/CONTRIBUTING.md#review-requirements)
      This is the main group of required reviews for general pull
      requests.
    type: required
    # conditions:
    #   # If PR touches a region not covered by any custom review paths, base condition is required.
    #   - not all(any(f.startswith(p) for p in *CUSTOM_REVIEW_PATHS) for f in files)
    requirements:
      - len(groups.approved.include('shared-reviewers-*')) >= 2
    reviews:
      required: 0
    labels:
      approved: "review - approved"
      pending: "review - pending"
      rejected: "review - changed requested"

Copy link

pullapprove bot commented May 15, 2025

Copy link
Contributor Author

@sxb427 sxb427 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/pullapprove-test

version: 3

# https://developer.github.com/v3/previews/#draft-pull-requests
github_api_version: "shadow-cat-preview"

############################################################
#  Overrides
############################################################

overrides:
  - if: "'hotfix' in labels"
    status: success
    explanation: "Hotfix label added, bypassing reviews"

  ############################################################
  #  Draft PRs
  ############################################################
  - if: "draft"
    status: pending
    explanation: "PR is draft, pending review"

  ############################################################
  #  License Checks
  ############################################################
  - if: "'*license/cla*' not in statuses.successful"
    status: pending
    explanation: "CLA must be agreed to by all contributors"

  ############################################################
  #  Conditions to Skip Review
  ############################################################
  - if: "base.ref != 'master'"
    status: success
    explanation: "Review not required unless merging to master"

  ############################################################
  #  Require Issues
  ############################################################
  # disabling until we have PRs up to date
  #     - if: "'*issue*' not in statuses.successful"
  #       status: failure
  #       explanation: "An issue is required for all PRs"

  ############################################################
  #  Fast tracking
  ############################################################
  - if: "'fast track' in labels"
    status: success
    explanation: "PR has been fast tracked, bypassing reviews"

############################################################
#  Notifications
############################################################

notifications:
  ############################################################
  #  New contributors
  ############################################################
  - when: pull_request.opened
    if: "author_association == 'FIRST_TIME_CONTRIBUTOR'"
    comment: |
      Hey @{{ author }}, thanks for the PR! The review will start once
      the tests and CI checks have passed. If they don't, please review
      the logs and try to fix the issues (ask for help if you can't
      figure it out). A reviewer will be assigned once the tests are
      passing and they'll walk you through getting the PR finished
      and merged.

groups:
  ############################################################
  #  Shared Reviewer Groups
  ############################################################
  shared-reviewers-amazon:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-amazon]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-apple:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-apple]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-bosch:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-bosch]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-comcast:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-comcast]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-dyson:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-dyson]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-espressif:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-espressif]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-google:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-google]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-grundfos:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-grundfos]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-irobot:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-irobot]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-lg:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-lg]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-logitech:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-logitech]
    reviews:
      request: 0 # Requested to be only on demand
  shared-reviewers-nordic:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nordic]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-nxp:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nxp]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-samsung:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-samsung]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-eve:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-eve]
    reviews:
      request: 0 # Do not auto-add
  # shared-reviewers-signify disabled for now, because the reviewers-signify
  # team is empty and pullapprove seems to mis-handle that badly and treats
  # _all_ reviewers as being in this group.
  #
  # See https://github.com/dropseed/pullapprove/issues/71
  #
  # shared-reviewers-signify:
  #     type: optional
  #     conditions:
  #         - files.include('*')
  #     reviewers:
  #         teams: [reviewers-signify]
  #     reviews:
  #         request: 0 # Do not auto-add
  shared-reviewers-silabs:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-silabs]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-somfy:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-somfy]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-tcl:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-tcl]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-qorvo:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-qorvo]
    reviews:
      request: 0 # Do not auto-add

  ############################################################
  #  Path specific review requirments. A PR must meet the
  #  review requirements corresponding each path in the
  #  in the CUSTOM_REVIEW_PATHS list that it touches. If it
  #  touches a region not covered by any custom review paths, 
  #  base condition is required.
  ############################################################

  ############################################################
  #  Review requirements for PRs touching scripts/build*.
  #  One shared-reviewers-scripts-build review is sufficient.
  ############################################################
  shared-reviewers-scripts-build:
    type: optional
    conditions:
      - files.include('scripts/build/*')
    reviewers:
      users:
        - andy31415
    requirements:
      - "len(groups.approved.include('shared-reviewers-scripts-build')) >= 1 or\ 
         len(groups.approved.include('shared-reviewers-*')) >= 2"
    reviews:
      # 1 review request will be sent at a time
      request: 1
      required: 0

  ############################################################
  #  Review requirements for PRs touching integrations/docker*
  #  One shared-reviewers-integrations-docker review is
  #  sufficient.
  ############################################################
  shared-reviewers-integrations-docker:
    type: optional
    conditions:
      - files.include('integrations/docker/*')
    reviewers:
      users:
        - andy31415
    requirements:
      - "len(groups.approved.include('shared-reviewers-integrations-docker')) >= 1 or\
         len(groups.approved.include('shared-reviewers-*')) >= 2"
    reviews:
      # 1 review request will be sent at a time
      request: 1
      required: 0

  ############################################################
  #  Review requirements for PRs touching examples/chef*
  #  One Googler requirement is sufficient.
  ############################################################
  shared-reviewers-chef:
    type: required
    conditions:
      - files.include('examples/chef/*')
    requirements:
      - "len(groups.approved.include('shared-reviewers-google')) >= 1 or\
         len(groups.approved.include('shared-reviewers-*')) >= 2"
    reviews:
      required: 0

  ############################################################
  #  Review requirements for PRs touching integrations/cloudbuild*
  #  One Google review is sufficient.
  ############################################################
  shared-reviewers-integrations-cloudbuild:
    type: required
    conditions:
      - files.include('integrations/cloudbuild/*')
    requirements:
      - "len(groups.approved.include('shared-reviewers-google')) >= 1 or\
         len(groups.approved.include('shared-reviewers-*')) >= 2"
    reviews:
      required: 0

  ############################################################
  #  Base Required Reviewers
  ############################################################
  required-reviewers:
    description: >
      [Required
      Reviewers](https://github.com/project-chip/connectedhomeip/blob/master/CONTRIBUTING.md#review-requirements)
      This is the main group of required reviews for general pull
      requests.
    type: required
    conditions:
      # If PR touches a region not covered by any custom review paths, base condition is required.
      - "len(files\
              .exclude('examples/chef/*')\
              .exclude('scripts/build/*')\
              .exclude('integrations/docker/*')\
              .exclude('integrations/cloudbuild/*')\
            ) >= 1"
    requirements:
      - len(groups.approved.include('shared-reviewers-*')) >= 2
    reviews:
      required: 0
    labels:
      approved: "review - approved"
      pending: "review - pending"
      rejected: "review - changed requested"

Copy link

pullapprove bot commented May 15, 2025

Copy link
Contributor Author

@sxb427 sxb427 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/pullapprove-test

version: 3

# https://developer.github.com/v3/previews/#draft-pull-requests
github_api_version: "shadow-cat-preview"

############################################################
#  Overrides
############################################################

overrides:
  - if: "'hotfix' in labels"
    status: success
    explanation: "Hotfix label added, bypassing reviews"

  ############################################################
  #  Draft PRs
  ############################################################
  - if: "draft"
    status: pending
    explanation: "PR is draft, pending review"

  ############################################################
  #  License Checks
  ############################################################
  - if: "'*license/cla*' not in statuses.successful"
    status: pending
    explanation: "CLA must be agreed to by all contributors"

  ############################################################
  #  Conditions to Skip Review
  ############################################################
  - if: "base.ref != 'master'"
    status: success
    explanation: "Review not required unless merging to master"

  ############################################################
  #  Require Issues
  ############################################################
  # disabling until we have PRs up to date
  #     - if: "'*issue*' not in statuses.successful"
  #       status: failure
  #       explanation: "An issue is required for all PRs"

  ############################################################
  #  Fast tracking
  ############################################################
  - if: "'fast track' in labels"
    status: success
    explanation: "PR has been fast tracked, bypassing reviews"

############################################################
#  Notifications
############################################################

notifications:
  ############################################################
  #  New contributors
  ############################################################
  - when: pull_request.opened
    if: "author_association == 'FIRST_TIME_CONTRIBUTOR'"
    comment: |
      Hey @{{ author }}, thanks for the PR! The review will start once
      the tests and CI checks have passed. If they don't, please review
      the logs and try to fix the issues (ask for help if you can't
      figure it out). A reviewer will be assigned once the tests are
      passing and they'll walk you through getting the PR finished
      and merged.

groups:
  ############################################################
  #  Shared Reviewer Groups
  ############################################################
  shared-reviewers-amazon:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-amazon]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-apple:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-apple]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-bosch:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-bosch]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-comcast:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-comcast]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-dyson:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-dyson]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-espressif:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-espressif]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-google:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-google]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-grundfos:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-grundfos]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-irobot:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-irobot]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-lg:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-lg]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-logitech:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-logitech]
    reviews:
      request: 0 # Requested to be only on demand
  shared-reviewers-nordic:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nordic]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-nxp:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nxp]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-samsung:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-samsung]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-eve:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-eve]
    reviews:
      request: 0 # Do not auto-add
  # shared-reviewers-signify disabled for now, because the reviewers-signify
  # team is empty and pullapprove seems to mis-handle that badly and treats
  # _all_ reviewers as being in this group.
  #
  # See https://github.com/dropseed/pullapprove/issues/71
  #
  # shared-reviewers-signify:
  #     type: optional
  #     conditions:
  #         - files.include('*')
  #     reviewers:
  #         teams: [reviewers-signify]
  #     reviews:
  #         request: 0 # Do not auto-add
  shared-reviewers-silabs:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-silabs]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-somfy:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-somfy]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-tcl:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-tcl]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-qorvo:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-qorvo]
    reviews:
      request: 0 # Do not auto-add

  ############################################################
  #  Path specific review requirments. A PR must meet the
  #  review requirements corresponding each path in the
  #  in the CUSTOM_REVIEW_PATHS list that it touches. If it
  #  touches a region not covered by any custom review paths, 
  #  base condition is required.
  ############################################################

  ############################################################
  #  Review requirements for PRs touching scripts/build*.
  #  One shared-reviewers-scripts-build review is sufficient.
  ############################################################
  shared-reviewers-scripts-build:
    type: optional
    conditions:
      - files.include('scripts/build/*')
    reviewers:
      users:
        - andy31415
    requirements:
      - "len(groups.approved.include('shared-reviewers-scripts-build')) >= 1 or \
        len(groups.approved.include('shared-reviewers-*')) >= 2"
    reviews:
      # 1 review request will be sent at a time
      request: 1
      required: 0

  ############################################################
  #  Review requirements for PRs touching integrations/docker*
  #  One shared-reviewers-integrations-docker review is
  #  sufficient.
  ############################################################
  shared-reviewers-integrations-docker:
    type: optional
    conditions:
      - files.include('integrations/docker/*')
    reviewers:
      users:
        - andy31415
    requirements:
      - "len(groups.approved.include('shared-reviewers-integrations-docker')) >= 1 or \
        len(groups.approved.include('shared-reviewers-*')) >= 2"
    reviews:
      # 1 review request will be sent at a time
      request: 1
      required: 0

  ############################################################
  #  Review requirements for PRs touching examples/chef*
  #  One Googler requirement is sufficient.
  ############################################################
  shared-reviewers-chef:
    type: required
    conditions:
      - files.include('examples/chef/*')
    requirements:
      - "len(groups.approved.include('shared-reviewers-google')) >= 1 or \
        len(groups.approved.include('shared-reviewers-*')) >= 2"
    reviews:
      required: 0

  ############################################################
  #  Review requirements for PRs touching integrations/cloudbuild*
  #  One Google review is sufficient.
  ############################################################
  shared-reviewers-integrations-cloudbuild:
    type: required
    conditions:
      - files.include('integrations/cloudbuild/*')
    requirements:
      - "len(groups.approved.include('shared-reviewers-google')) >= 1 or \
        len(groups.approved.include('shared-reviewers-*')) >= 2"
    reviews:
      required: 0

  ############################################################
  #  Base Required Reviewers
  ############################################################
  required-reviewers:
    description: >
      [Required
      Reviewers](https://github.com/project-chip/connectedhomeip/blob/master/CONTRIBUTING.md#review-requirements)
      This is the main group of required reviews for general pull
      requests.
    type: required
    conditions:
      # If PR touches a region not covered by any custom review paths, base condition is required.
      - "len(files\
              .exclude('examples/chef/*')\
              .exclude('scripts/build/*')\
              .exclude('integrations/docker/*')\
              .exclude('integrations/cloudbuild/*')\
            ) >= 1"
    requirements:
      - len(groups.approved.include('shared-reviewers-*')) >= 2
    reviews:
      required: 0
    labels:
      approved: "review - approved"
      pending: "review - pending"
      rejected: "review - changed requested"

Copy link

pullapprove bot commented May 15, 2025

Copy link
Contributor Author

@sxb427 sxb427 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/pullapprove-test

version: 3

# https://developer.github.com/v3/previews/#draft-pull-requests
github_api_version: "shadow-cat-preview"

############################################################
#  Overrides
############################################################

overrides:
  - if: "'hotfix' in labels"
    status: success
    explanation: "Hotfix label added, bypassing reviews"

  ############################################################
  #  Draft PRs
  ############################################################
  - if: "draft"
    status: pending
    explanation: "PR is draft, pending review"

  ############################################################
  #  License Checks
  ############################################################
  - if: "'*license/cla*' not in statuses.successful"
    status: pending
    explanation: "CLA must be agreed to by all contributors"

  ############################################################
  #  Conditions to Skip Review
  ############################################################
  - if: "base.ref != 'master'"
    status: success
    explanation: "Review not required unless merging to master"

  ############################################################
  #  Require Issues
  ############################################################
  # disabling until we have PRs up to date
  #     - if: "'*issue*' not in statuses.successful"
  #       status: failure
  #       explanation: "An issue is required for all PRs"

  ############################################################
  #  Fast tracking
  ############################################################
  - if: "'fast track' in labels"
    status: success
    explanation: "PR has been fast tracked, bypassing reviews"

############################################################
#  Notifications
############################################################

notifications:
  ############################################################
  #  New contributors
  ############################################################
  - when: pull_request.opened
    if: "author_association == 'FIRST_TIME_CONTRIBUTOR'"
    comment: |
      Hey @{{ author }}, thanks for the PR! The review will start once
      the tests and CI checks have passed. If they don't, please review
      the logs and try to fix the issues (ask for help if you can't
      figure it out). A reviewer will be assigned once the tests are
      passing and they'll walk you through getting the PR finished
      and merged.

groups:
  ############################################################
  #  Shared Reviewer Groups
  ############################################################
  shared-reviewers-amazon:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-amazon]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-apple:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-apple]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-bosch:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-bosch]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-comcast:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-comcast]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-dyson:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-dyson]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-espressif:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-espressif]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-google:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-google]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-grundfos:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-grundfos]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-irobot:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-irobot]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-lg:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-lg]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-logitech:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-logitech]
    reviews:
      request: 0 # Requested to be only on demand
  shared-reviewers-nordic:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nordic]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-nxp:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nxp]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-samsung:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-samsung]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-eve:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-eve]
    reviews:
      request: 0 # Do not auto-add
  # shared-reviewers-signify disabled for now, because the reviewers-signify
  # team is empty and pullapprove seems to mis-handle that badly and treats
  # _all_ reviewers as being in this group.
  #
  # See https://github.com/dropseed/pullapprove/issues/71
  #
  # shared-reviewers-signify:
  #     type: optional
  #     conditions:
  #         - files.include('*')
  #     reviewers:
  #         teams: [reviewers-signify]
  #     reviews:
  #         request: 0 # Do not auto-add
  shared-reviewers-silabs:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-silabs]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-somfy:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-somfy]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-tcl:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-tcl]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-qorvo:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-qorvo]
    reviews:
      request: 0 # Do not auto-add

  ############################################################
  #  Path specific review requirments. A PR must meet the
  #  review requirements corresponding each path in the
  #  in the CUSTOM_REVIEW_PATHS list that it touches. If it
  #  touches a region not covered by any custom review paths, 
  #  base condition is required.
  ############################################################

  ############################################################
  #  Review requirements for PRs touching scripts/build*.
  #  One shared-reviewers-scripts-build review is sufficient.
  ############################################################
  shared-reviewers-scripts-build:
    type: required
    conditions:
      - files.include('scripts/build/*')
    reviewers:
      users:
        - andy31415
    requirements:
      - "len(groups.approved.include('shared-reviewers-scripts-build')) >= 1 or \
        len(groups.approved.include('shared-reviewers-*')) >= 2"
    reviews:
      # 1 review request will be sent at a time
      request: 1
      required: 0

  ############################################################
  #  Review requirements for PRs touching integrations/docker*
  #  One shared-reviewers-integrations-docker review is
  #  sufficient.
  ############################################################
  shared-reviewers-integrations-docker:
    type: required
    conditions:
      - files.include('integrations/docker/*')
    reviewers:
      users:
        - andy31415
    requirements:
      - "len(groups.approved.include('shared-reviewers-integrations-docker')) >= 1 or \
        len(groups.approved.include('shared-reviewers-*')) >= 2"
    reviews:
      # 1 review request will be sent at a time
      request: 1
      required: 0

  ############################################################
  #  Review requirements for PRs touching examples/chef*
  #  One Googler requirement is sufficient.
  ############################################################
  shared-reviewers-chef:
    type: required
    conditions:
      - files.include('examples/chef/*')
    requirements:
      - "len(groups.approved.include('shared-reviewers-google')) >= 1 or \
        len(groups.approved.include('shared-reviewers-*')) >= 2"
    reviews:
      required: 0

  ############################################################
  #  Review requirements for PRs touching integrations/cloudbuild*
  #  One Google review is sufficient.
  ############################################################
  shared-reviewers-integrations-cloudbuild:
    type: required
    conditions:
      - files.include('integrations/cloudbuild/*')
    requirements:
      - "len(groups.approved.include('shared-reviewers-google')) >= 1 or \
        len(groups.approved.include('shared-reviewers-*')) >= 2"
    reviews:
      required: 0

  ############################################################
  #  Base Required Reviewers
  ############################################################
  required-reviewers:
    description: >
      [Required
      Reviewers](https://github.com/project-chip/connectedhomeip/blob/master/CONTRIBUTING.md#review-requirements)
      This is the main group of required reviews for general pull
      requests.
    type: required
    conditions:
      # If PR touches a region not covered by any custom review paths, base condition is required.
      - "len(files\
              .exclude('examples/chef/*')\
              .exclude('scripts/build/*')\
              .exclude('integrations/docker/*')\
              .exclude('integrations/cloudbuild/*')\
            ) >= 1"
    requirements:
      - len(groups.approved.include('shared-reviewers-*')) >= 2
    reviews:
      required: 0
    labels:
      approved: "review - approved"
      pending: "review - pending"
      rejected: "review - changed requested"

Copy link

pullapprove bot commented May 15, 2025

Copy link
Contributor Author

@sxb427 sxb427 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/pullapprove-test

version: 3

# https://developer.github.com/v3/previews/#draft-pull-requests
github_api_version: "shadow-cat-preview"

############################################################
#  Overrides
############################################################

overrides:
  - if: "'hotfix' in labels"
    status: success
    explanation: "Hotfix label added, bypassing reviews"

  ############################################################
  #  Draft PRs
  ############################################################
  - if: "draft"
    status: pending
    explanation: "PR is draft, pending review"

  ############################################################
  #  License Checks
  ############################################################
  - if: "'*license/cla*' not in statuses.successful"
    status: pending
    explanation: "CLA must be agreed to by all contributors"

  ############################################################
  #  Conditions to Skip Review
  ############################################################
  - if: "base.ref != 'master'"
    status: success
    explanation: "Review not required unless merging to master"

  ############################################################
  #  Require Issues
  ############################################################
  # disabling until we have PRs up to date
  #     - if: "'*issue*' not in statuses.successful"
  #       status: failure
  #       explanation: "An issue is required for all PRs"

  ############################################################
  #  Fast tracking
  ############################################################
  - if: "'fast track' in labels"
    status: success
    explanation: "PR has been fast tracked, bypassing reviews"

############################################################
#  Notifications
############################################################

notifications:
  ############################################################
  #  New contributors
  ############################################################
  - when: pull_request.opened
    if: "author_association == 'FIRST_TIME_CONTRIBUTOR'"
    comment: |
      Hey @{{ author }}, thanks for the PR! The review will start once
      the tests and CI checks have passed. If they don't, please review
      the logs and try to fix the issues (ask for help if you can't
      figure it out). A reviewer will be assigned once the tests are
      passing and they'll walk you through getting the PR finished
      and merged.

groups:
  ############################################################
  #  Shared Reviewer Groups
  ############################################################
  shared-reviewers-amazon:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-amazon]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-apple:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-apple]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-bosch:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-bosch]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-comcast:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-comcast]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-dyson:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-dyson]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-espressif:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-espressif]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-google:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-google]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-grundfos:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-grundfos]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-irobot:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-irobot]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-lg:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-lg]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-logitech:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-logitech]
    reviews:
      request: 0 # Requested to be only on demand
  shared-reviewers-nordic:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nordic]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-nxp:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nxp]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-samsung:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-samsung]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-eve:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-eve]
    reviews:
      request: 0 # Do not auto-add
  # shared-reviewers-signify disabled for now, because the reviewers-signify
  # team is empty and pullapprove seems to mis-handle that badly and treats
  # _all_ reviewers as being in this group.
  #
  # See https://github.com/dropseed/pullapprove/issues/71
  #
  # shared-reviewers-signify:
  #     type: optional
  #     conditions:
  #         - files.include('*')
  #     reviewers:
  #         teams: [reviewers-signify]
  #     reviews:
  #         request: 0 # Do not auto-add
  shared-reviewers-silabs:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-silabs]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-somfy:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-somfy]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-tcl:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-tcl]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-qorvo:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-qorvo]
    reviews:
      request: 0 # Do not auto-add

  ############################################################
  #  Path specific review requirments. A PR must meet the
  #  review requirements corresponding each path in the
  #  in the CUSTOM_REVIEW_PATHS list that it touches. If it
  #  touches a region not covered by any custom review paths, 
  #  base condition is required.
  ############################################################

  ############################################################
  #  Review requirements for PRs touching scripts/build*.
  #  One shared-reviewers-scripts-build review is sufficient.
  ############################################################
  shared-reviewers-scripts-build:
    type: required
    conditions:
      - files.include('scripts/build/*')
    reviewers:
      users:
        - andy31415
    requirements:
      - "len(groups.approved.include('shared-reviewers-scripts-build')) >= 1 or \
        len(groups.approved.include('shared-reviewers-*')) >= 2"
    reviews:
      # 1 review request will be sent at a time
      request: 1
      required: 0

  ############################################################
  #  Review requirements for PRs touching integrations/docker*
  #  One shared-reviewers-integrations-docker review is
  #  sufficient.
  ############################################################
  shared-reviewers-integrations-docker:
    type: required
    conditions:
      - files.include('integrations/docker/*')
    reviewers:
      users:
        - andy31415
    requirements:
      - "len(groups.approved.include('shared-reviewers-integrations-docker')) >= 1 or \
        len(groups.approved.include('shared-reviewers-*')) >= 2"
    reviews:
      # 1 review request will be sent at a time
      request: 1
      required: 0

  ############################################################
  #  Review requirements for PRs touching examples/chef*
  #  One Googler requirement is sufficient.
  ############################################################
  shared-reviewers-chef:
    type: required
    conditions:
      - files.include('examples/chef/*')
    requirements:
      - "len(groups.approved.include('shared-reviewers-google')) >= 1 or \
        len(groups.approved.include('shared-reviewers-*')) >= 2"
    reviews:
      required: 0

  ############################################################
  #  Review requirements for PRs touching integrations/cloudbuild*
  #  One Google review is sufficient.
  ############################################################
  shared-reviewers-integrations-cloudbuild:
    type: required
    conditions:
      - files.include('integrations/cloudbuild/*')
    requirements:
      - "len(groups.approved.include('shared-reviewers-google')) >= 1 or \
        len(groups.approved.include('shared-reviewers-*')) >= 2"
    reviews:
      required: 0

  ############################################################
  #  Review requirements for PRs touching src/darwin
  #  One Apple review is required.
  ############################################################
  shared-reviewers-src-darwin:
    type: required
    conditions:
      - files.include('src/darwin/*')
    reviewers:
      users:
        - bzbarsky
    reviews:
      request: 1
      required: 1
    labels:
      approved: "[Darwin] review - approved"
      pending: "[Darwin] review - pending"
      rejected: "[Darwin] review - changed requested"

  ############################################################
  #  Base Required Reviewers
  ############################################################
  required-reviewers:
    description: >
      [Required
      Reviewers](https://github.com/project-chip/connectedhomeip/blob/master/CONTRIBUTING.md#review-requirements)
      This is the main group of required reviews for general pull
      requests.
    type: required
    conditions:
      # If PR touches a region not covered by any custom review paths, base condition is required.
      - "len(files\
              .exclude('examples/chef/*')\
              .exclude('scripts/build/*')\
              .exclude('integrations/docker/*')\
              .exclude('integrations/cloudbuild/*')\
              .exclude('src/darwin/*')\
            ) >= 1"
    requirements:
      - len(groups.approved.include('shared-reviewers-*')) >= 2
    reviews:
      required: 0
    labels:
      approved: "review - approved"
      pending: "review - pending"
      rejected: "review - changed requested"

Copy link

pullapprove bot commented May 15, 2025

Copy link

github-actions bot commented May 15, 2025

PR #38867: Size comparison from a9cecb1 to fabaf43

Full report (3 builds for cc32xx, stm32)
platform target config section a9cecb1 fabaf43 change % change
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 549050 549650 600 0.1
RAM 205192 205256 64 0.0
lock CC3235SF_LAUNCHXL FLASH 580306 581066 760 0.1
RAM 205392 205456 64 0.0
stm32 light STM32WB5MM-DK FLASH 465020 466004 984 0.2
RAM 141424 141488 64 0.0

Copy link
Contributor Author

@sxb427 sxb427 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/pullapprove-test

version: 3

# https://developer.github.com/v3/previews/#draft-pull-requests
github_api_version: "shadow-cat-preview"

############################################################
#  Overrides
############################################################

overrides:
  - if: "'hotfix' in labels"
    status: success
    explanation: "Hotfix label added, bypassing reviews"

  ############################################################
  #  Draft PRs
  ############################################################
  - if: "draft"
    status: pending
    explanation: "PR is draft, pending review"

  ############################################################
  #  License Checks
  ############################################################
  - if: "'*license/cla*' not in statuses.successful"
    status: pending
    explanation: "CLA must be agreed to by all contributors"

  ############################################################
  #  Conditions to Skip Review
  ############################################################
  - if: "base.ref != 'master'"
    status: success
    explanation: "Review not required unless merging to master"

  ############################################################
  #  Require Issues
  ############################################################
  # disabling until we have PRs up to date
  #     - if: "'*issue*' not in statuses.successful"
  #       status: failure
  #       explanation: "An issue is required for all PRs"

  ############################################################
  #  Fast tracking
  ############################################################
  - if: "'fast track' in labels"
    status: success
    explanation: "PR has been fast tracked, bypassing reviews"

############################################################
#  Notifications
############################################################

notifications:
  ############################################################
  #  New contributors
  ############################################################
  - when: pull_request.opened
    if: "author_association == 'FIRST_TIME_CONTRIBUTOR'"
    comment: |
      Hey @{{ author }}, thanks for the PR! The review will start once
      the tests and CI checks have passed. If they don't, please review
      the logs and try to fix the issues (ask for help if you can't
      figure it out). A reviewer will be assigned once the tests are
      passing and they'll walk you through getting the PR finished
      and merged.

groups:
  ############################################################
  #  Shared Reviewer Groups
  ############################################################
  shared-reviewers-amazon:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-amazon]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-apple:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-apple]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-bosch:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-bosch]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-comcast:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-comcast]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-dyson:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-dyson]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-espressif:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-espressif]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-google:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-google]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-grundfos:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-grundfos]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-irobot:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-irobot]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-lg:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-lg]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-logitech:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-logitech]
    reviews:
      request: 0 # Requested to be only on demand
  shared-reviewers-nordic:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nordic]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-nxp:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nxp]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-samsung:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-samsung]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-eve:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-eve]
    reviews:
      request: 0 # Do not auto-add
  # shared-reviewers-signify disabled for now, because the reviewers-signify
  # team is empty and pullapprove seems to mis-handle that badly and treats
  # _all_ reviewers as being in this group.
  #
  # See https://github.com/dropseed/pullapprove/issues/71
  #
  # shared-reviewers-signify:
  #     type: optional
  #     conditions:
  #         - files.include('*')
  #     reviewers:
  #         teams: [reviewers-signify]
  #     reviews:
  #         request: 0 # Do not auto-add
  shared-reviewers-silabs:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-silabs]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-somfy:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-somfy]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-tcl:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-tcl]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-qorvo:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-qorvo]
    reviews:
      request: 0 # Do not auto-add

  ############################################################
  #  Path specific review requirments. A PR must meet the
  #  review requirements corresponding each path in the
  #  in the CUSTOM_REVIEW_PATHS list that it touches. If it
  #  touches a region not covered by any custom review paths, 
  #  base condition is required.
  ############################################################

  ############################################################
  #  Review requirements for PRs touching scripts/build*.
  #  One shared-reviewers-scripts-build review is sufficient.
  ############################################################
  shared-reviewers-scripts-build:
    type: required
    conditions:
      - files.include('scripts/build/*')
    reviewers:
      users:
        - andy31415
    requirements:
      - "len(groups.approved.include('shared-reviewers-scripts-build')) >= 1 or \
        len(groups.approved.include('shared-reviewers-*')) >= 2"
    reviews:
      # 1 review request will be sent at a time
      request: 1
      required: 0

  ############################################################
  #  Review requirements for PRs touching integrations/docker*
  #  One shared-reviewers-integrations-docker review is
  #  sufficient.
  ############################################################
  shared-reviewers-integrations-docker:
    type: required
    conditions:
      - files.include('integrations/docker/*')
    reviewers:
      users:
        - andy31415
    requirements:
      - "len(groups.approved.include('shared-reviewers-integrations-docker')) >= 1 or \
        len(groups.approved.include('shared-reviewers-*')) >= 2"
    reviews:
      # 1 review request will be sent at a time
      request: 1
      required: 0

  ############################################################
  #  Review requirements for PRs touching examples/chef*
  #  One Googler requirement is sufficient.
  ############################################################
  shared-reviewers-chef:
    type: required
    conditions:
      - files.include('examples/chef/*')
    requirements:
      - "len(groups.approved.include('shared-reviewers-google')) >= 1 or \
        len(groups.approved.include('shared-reviewers-*')) >= 2"
    reviews:
      required: 0

  ############################################################
  #  Review requirements for PRs touching integrations/cloudbuild*
  #  One Google review is sufficient.
  ############################################################
  shared-reviewers-integrations-cloudbuild:
    type: required
    conditions:
      - files.include('integrations/cloudbuild/*')
    requirements:
      - "len(groups.approved.include('shared-reviewers-google')) >= 1 or \
        len(groups.approved.include('shared-reviewers-*')) >= 2"
    reviews:
      required: 0

  ############################################################
  #  Review requirements for PRs touching src/darwin
  #  One Apple review is required.
  ############################################################
  shared-reviewers-src-darwin:
    type: required
    conditions:
      - files.include('src/darwin/*')
    reviewers:
      users:
        - bzbarsky
    reviews:
      request: 1
      required: 1
    labels:
      approved: "[Darwin] review - approved"
      pending: "[Darwin] review - pending"
      rejected: "[Darwin] review - changed requested"

  ############################################################
  #  Base Required Reviewers
  ############################################################
  required-reviewers:
    description: >
      [Required
      Reviewers](https://github.com/project-chip/connectedhomeip/blob/master/CONTRIBUTING.md#review-requirements)
      This is the main group of required reviews for general pull
      requests.
    type: required
    conditions:
      # If PR touches a region not covered by any custom review paths, base condition is required.
      - "len(files\
              .exclude('examples/chef/*')\
              .exclude('scripts/build/*')\
              .exclude('integrations/docker/*')\
              .exclude('integrations/cloudbuild/*')\
              .exclude('src/darwin/*')\
            ) >= 1"
    requirements:
      - len(groups.approved.include('shared-reviewers-*')) >= 2
    reviews:
      required: 0
    labels:
      approved: "review - approved"
      pending: "review - pending"
      rejected: "review - changed requested"

Copy link

pullapprove bot commented May 15, 2025

Copy link
Contributor Author

@sxb427 sxb427 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/pullapprove-test

version: 3

# https://developer.github.com/v3/previews/#draft-pull-requests
github_api_version: "shadow-cat-preview"

############################################################
#  Overrides
############################################################

overrides:
  - if: "'hotfix' in labels"
    status: success
    explanation: "Hotfix label added, bypassing reviews"

  ############################################################
  #  Draft PRs
  ############################################################
  - if: "draft"
    status: pending
    explanation: "PR is draft, pending review"

  ############################################################
  #  License Checks
  ############################################################
  - if: "'*license/cla*' not in statuses.successful"
    status: pending
    explanation: "CLA must be agreed to by all contributors"

  ############################################################
  #  Conditions to Skip Review
  ############################################################
  - if: "base.ref != 'master'"
    status: success
    explanation: "Review not required unless merging to master"

  ############################################################
  #  Require Issues
  ############################################################
  # disabling until we have PRs up to date
  #     - if: "'*issue*' not in statuses.successful"
  #       status: failure
  #       explanation: "An issue is required for all PRs"

  ############################################################
  #  Fast tracking
  ############################################################
  - if: "'fast track' in labels"
    status: success
    explanation: "PR has been fast tracked, bypassing reviews"

############################################################
#  Notifications
############################################################

notifications:
  ############################################################
  #  New contributors
  ############################################################
  - when: pull_request.opened
    if: "author_association == 'FIRST_TIME_CONTRIBUTOR'"
    comment: |
      Hey @{{ author }}, thanks for the PR! The review will start once
      the tests and CI checks have passed. If they don't, please review
      the logs and try to fix the issues (ask for help if you can't
      figure it out). A reviewer will be assigned once the tests are
      passing and they'll walk you through getting the PR finished
      and merged.

groups:
  ############################################################
  #  Shared Reviewer Groups
  ############################################################
  shared-reviewers-amazon:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-amazon]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-apple:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-apple]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-bosch:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-bosch]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-comcast:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-comcast]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-dyson:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-dyson]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-espressif:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-espressif]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-google:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-google]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-grundfos:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-grundfos]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-irobot:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-irobot]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-lg:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-lg]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-logitech:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-logitech]
    reviews:
      request: 0 # Requested to be only on demand
  shared-reviewers-nordic:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nordic]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-nxp:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nxp]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-samsung:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-samsung]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-eve:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-eve]
    reviews:
      request: 0 # Do not auto-add
  # shared-reviewers-signify disabled for now, because the reviewers-signify
  # team is empty and pullapprove seems to mis-handle that badly and treats
  # _all_ reviewers as being in this group.
  #
  # See https://github.com/dropseed/pullapprove/issues/71
  #
  # shared-reviewers-signify:
  #     type: optional
  #     conditions:
  #         - files.include('*')
  #     reviewers:
  #         teams: [reviewers-signify]
  #     reviews:
  #         request: 0 # Do not auto-add
  shared-reviewers-silabs:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-silabs]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-somfy:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-somfy]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-tcl:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-tcl]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-qorvo:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-qorvo]
    reviews:
      request: 0 # Do not auto-add

  ############################################################
  #  Path specific review requirments. A PR must meet the
  #  review requirements corresponding each path in the
  #  in the CUSTOM_REVIEW_PATHS list that it touches. If it
  #  touches a region not covered by any custom review paths, 
  #  base condition is required.
  ############################################################

  ############################################################
  #  Review requirements for PRs touching scripts/build*.
  #  One shared-reviewers-scripts-build review is sufficient.
  ############################################################
  folder-reviewers-scripts-build:
    type: optional
    conditions:
      - "files.include('scripts/build/*') or files.include('integrations/docker/*')"
    reviewers:
      users:
        - andy31415
    reviews:
      # 1 review request will be sent at a time
      request: 1

  ############################################################
  #  Review requirements for PRs touching examples/chef*
  #  One Googler requirement is sufficient.
  ############################################################
  folder-reviewers-google:
    type: required
    conditions:
      - "files.include('examples/chef/*') or files.include('integrations/cloudbuild/*')"
    requirements:
      - "len(groups.approved.include('shared-reviewers-google')) >= 1 or \
        len(groups.approved.include('shared-reviewers-*')) >= 2"
    reviews:
      required: 0

  ############################################################
  #  Review requirements for PRs touching src/darwin
  #  One Apple review is required.
  ############################################################
  folder-reviewers-src-darwin:
    type: required
    conditions:
      - "files.include('src/darwin/*').exclude('src/darwin/Framework/CHIP/zap-generated/*') or \
        files.include('src/platform/Darwin/*')"
    reviewers:
      teams: [reviewers-apple]
    reviews:
      request: 0
      required: 1
    labels:
      approved: "[Darwin] review - approved"
      pending: "[Darwin] review - pending"
      rejected: "[Darwin] review - changed requested"

  ############################################################
  #  Base Required Reviewers
  ############################################################
  required-reviewers:
    description: >
      [Required
      Reviewers](https://github.com/project-chip/connectedhomeip/blob/master/CONTRIBUTING.md#review-requirements)
      This is the main group of required reviews for general pull
      requests.
    type: required
    conditions:
      # If PR touches a region not covered by any custom review paths, base condition is required.
      - "files\
              .exclude('examples/chef/*')\
              .exclude('integrations/cloudbuild/*')\
              .exclude('src/darwin/*')\
              .exclude('src/platform/Darwin/*') or \
        files.include('src/darwin/Framework/CHIP/zap-generated/*')"
    requirements:
      - len(groups.approved.include('shared-reviewers-*')) >= 2
    reviews:
      required: 0
    labels:
      approved: "review - approved"
      pending: "review - pending"
      rejected: "review - changed requested"

Copy link

pullapprove bot commented May 16, 2025

Copy link
Contributor Author

@sxb427 sxb427 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/pullapprove-test

version: 3

# https://developer.github.com/v3/previews/#draft-pull-requests
github_api_version: "shadow-cat-preview"

############################################################
#  Overrides
############################################################

overrides:
  - if: "'hotfix' in labels"
    status: success
    explanation: "Hotfix label added, bypassing reviews"

  ############################################################
  #  License Checks
  ############################################################
  - if: "'*license/cla*' not in statuses.successful"
    status: pending
    explanation: "CLA must be agreed to by all contributors"

  ############################################################
  #  Conditions to Skip Review
  ############################################################
  - if: "base.ref != 'master'"
    status: success
    explanation: "Review not required unless merging to master"

  ############################################################
  #  Require Issues
  ############################################################
  # disabling until we have PRs up to date
  #     - if: "'*issue*' not in statuses.successful"
  #       status: failure
  #       explanation: "An issue is required for all PRs"

  ############################################################
  #  Fast tracking
  ############################################################
  - if: "'fast track' in labels"
    status: success
    explanation: "PR has been fast tracked, bypassing reviews"

############################################################
#  Notifications
############################################################

notifications:
  ############################################################
  #  New contributors
  ############################################################
  - when: pull_request.opened
    if: "author_association == 'FIRST_TIME_CONTRIBUTOR'"
    comment: |
      Hey @{{ author }}, thanks for the PR! The review will start once
      the tests and CI checks have passed. If they don't, please review
      the logs and try to fix the issues (ask for help if you can't
      figure it out). A reviewer will be assigned once the tests are
      passing and they'll walk you through getting the PR finished
      and merged.

groups:
  ############################################################
  #  Shared Reviewer Groups
  ############################################################
  shared-reviewers-amazon:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-amazon]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-apple:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-apple]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-bosch:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-bosch]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-comcast:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-comcast]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-dyson:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-dyson]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-espressif:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-espressif]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-google:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-google]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-grundfos:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-grundfos]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-irobot:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-irobot]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-lg:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-lg]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-logitech:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-logitech]
    reviews:
      request: 0 # Requested to be only on demand
  shared-reviewers-nordic:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nordic]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-nxp:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nxp]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-samsung:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-samsung]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-eve:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-eve]
    reviews:
      request: 0 # Do not auto-add
  # shared-reviewers-signify disabled for now, because the reviewers-signify
  # team is empty and pullapprove seems to mis-handle that badly and treats
  # _all_ reviewers as being in this group.
  #
  # See https://github.com/dropseed/pullapprove/issues/71
  #
  # shared-reviewers-signify:
  #     type: optional
  #     conditions:
  #         - files.include('*')
  #     reviewers:
  #         teams: [reviewers-signify]
  #     reviews:
  #         request: 0 # Do not auto-add
  shared-reviewers-silabs:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-silabs]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-somfy:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-somfy]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-tcl:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-tcl]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-qorvo:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-qorvo]
    reviews:
      request: 0 # Do not auto-add

  ############################################################
  #  Path specific review requirments. A PR must meet the
  #  review requirements corresponding each path in the
  #  in the CUSTOM_REVIEW_PATHS list that it touches. If it
  #  touches a region not covered by any custom review paths, 
  #  base condition is required.
  ############################################################

  ############################################################
  #  Review requirements for PRs touching scripts/build*.
  #  One shared-reviewers-scripts-build review is sufficient.
  ############################################################
  folder-reviewers-scripts-build:
    type: optional
    conditions:
      - "files.include('scripts/build/*') or files.include('integrations/docker/*')"
    reviewers:
      users:
        - andy31415
    reviews:
      # 1 review request will be sent at a time
      request: 1


  ############################################################
  #  Review requirements for PRs touching src/darwin
  #  One Apple review is required.
  ############################################################
  folder-reviewers-src-darwin:
    type: required
    conditions:
      - "files.include('src/darwin/*').exclude('src/darwin/Framework/CHIP/zap-generated/*') or \
        files.include('src/platform/Darwin/*')"
    reviewers:
      teams: [reviewers-apple]
    reviews:
      request: 0
      required: 1
    labels:
      approved: "[Darwin] review - approved"
      pending: "[Darwin] review - pending"
      rejected: "[Darwin] review - changed requested"

  ############################################################
  #  Base Required Reviewers
  ############################################################

Copy link

pullapprove bot commented May 16, 2025

Copy link
Contributor Author

@sxb427 sxb427 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/pullapprove-test

version: 3

# https://developer.github.com/v3/previews/#draft-pull-requests
github_api_version: "shadow-cat-preview"

############################################################
#  Overrides
############################################################

overrides:
  - if: "'hotfix' in labels"
    status: success
    explanation: "Hotfix label added, bypassing reviews"

  ############################################################
  #  License Checks
  ############################################################
  - if: "'*license/cla*' not in statuses.successful"
    status: pending
    explanation: "CLA must be agreed to by all contributors"

  ############################################################
  #  Conditions to Skip Review
  ############################################################
  - if: "base.ref != 'master'"
    status: success
    explanation: "Review not required unless merging to master"

  ############################################################
  #  Require Issues
  ############################################################
  # disabling until we have PRs up to date
  #     - if: "'*issue*' not in statuses.successful"
  #       status: failure
  #       explanation: "An issue is required for all PRs"

  ############################################################
  #  Fast tracking
  ############################################################
  - if: "'fast track' in labels"
    status: success
    explanation: "PR has been fast tracked, bypassing reviews"

############################################################
#  Notifications
############################################################

notifications:
  ############################################################
  #  New contributors
  ############################################################
  - when: pull_request.opened
    if: "author_association == 'FIRST_TIME_CONTRIBUTOR'"
    comment: |
      Hey @{{ author }}, thanks for the PR! The review will start once
      the tests and CI checks have passed. If they don't, please review
      the logs and try to fix the issues (ask for help if you can't
      figure it out). A reviewer will be assigned once the tests are
      passing and they'll walk you through getting the PR finished
      and merged.

groups:
  ############################################################
  #  Shared Reviewer Groups
  ############################################################
  shared-reviewers-amazon:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-amazon]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-apple:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-apple]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-bosch:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-bosch]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-comcast:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-comcast]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-dyson:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-dyson]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-espressif:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-espressif]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-google:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-google]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-grundfos:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-grundfos]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-irobot:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-irobot]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-lg:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-lg]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-logitech:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-logitech]
    reviews:
      request: 0 # Requested to be only on demand
  shared-reviewers-nordic:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nordic]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-nxp:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nxp]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-samsung:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-samsung]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-eve:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-eve]
    reviews:
      request: 0 # Do not auto-add
  # shared-reviewers-signify disabled for now, because the reviewers-signify
  # team is empty and pullapprove seems to mis-handle that badly and treats
  # _all_ reviewers as being in this group.
  #
  # See https://github.com/dropseed/pullapprove/issues/71
  #
  # shared-reviewers-signify:
  #     type: optional
  #     conditions:
  #         - files.include('*')
  #     reviewers:
  #         teams: [reviewers-signify]
  #     reviews:
  #         request: 0 # Do not auto-add
  shared-reviewers-silabs:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-silabs]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-somfy:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-somfy]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-tcl:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-tcl]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-qorvo:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-qorvo]
    reviews:
      request: 0 # Do not auto-add

  ############################################################
  #  Path specific review requirments. A PR must meet the
  #  review requirements corresponding each path in the
  #  in the CUSTOM_REVIEW_PATHS list that it touches. If it
  #  touches a region not covered by any custom review paths, 
  #  base condition is required.
  ############################################################

  ############################################################
  #  Review requirements for PRs touching scripts/build*.
  #  One shared-reviewers-scripts-build review is sufficient.
  ############################################################
  folder-reviewers-scripts-build:
    type: optional
    conditions:
      - "files.include('scripts/build/*') or files.include('integrations/docker/*')"
    reviewers:
      users:
        - andy31415
    reviews:
      # 1 review request will be sent at a time
      request: 1

  ############################################################
  #  Base Required Reviewers
  ############################################################

Copy link

pullapprove bot commented May 16, 2025

Copy link
Contributor Author

@sxb427 sxb427 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/pullapprove-test

version: 3
groups:
version: 3

# https://developer.github.com/v3/previews/#draft-pull-requests
github_api_version: "shadow-cat-preview"

############################################################
#  Overrides
############################################################

overrides:
  - if: "'hotfix' in labels"
    status: success
    explanation: "Hotfix label added, bypassing reviews"

  ############################################################
  #  Draft PRs
  ############################################################
  - if: "draft"
    status: pending
    explanation: "PR is draft, pending review"

  ############################################################
  #  License Checks
  ############################################################
  - if: "'*license/cla*' not in statuses.successful"
    status: pending
    explanation: "CLA must be agreed to by all contributors"

  ############################################################
  #  Conditions to Skip Review
  ############################################################
  - if: "base.ref != 'master'"
    status: success
    explanation: "Review not required unless merging to master"

  ############################################################
  #  Require Issues
  ############################################################
  # disabling until we have PRs up to date
  #     - if: "'*issue*' not in statuses.successful"
  #       status: failure
  #       explanation: "An issue is required for all PRs"

  ############################################################
  #  Fast tracking
  ############################################################
  - if: "'fast track' in labels"
    status: success
    explanation: "PR has been fast tracked, bypassing reviews"

############################################################
#  Notifications
############################################################

notifications:
  ############################################################
  #  New contributors
  ############################################################
  - when: pull_request.opened
    if: "author_association == 'FIRST_TIME_CONTRIBUTOR'"
    comment: |
      Hey @{{ author }}, thanks for the PR! The review will start once
      the tests and CI checks have passed. If they don't, please review
      the logs and try to fix the issues (ask for help if you can't
      figure it out). A reviewer will be assigned once the tests are
      passing and they'll walk you through getting the PR finished
      and merged.

groups:
  ############################################################
  #  Shared Reviewer Groups
  ############################################################
  shared-reviewers-amazon:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-amazon]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-apple:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-apple]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-bosch:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-bosch]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-comcast:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-comcast]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-dyson:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-dyson]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-espressif:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-espressif]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-google:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-google]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-grundfos:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-grundfos]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-irobot:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-irobot]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-lg:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-lg]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-logitech:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-logitech]
    reviews:
      request: 0 # Requested to be only on demand
  shared-reviewers-nordic:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nordic]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-nxp:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-nxp]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-samsung:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-samsung]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-eve:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-eve]
    reviews:
      request: 0 # Do not auto-add
  # shared-reviewers-signify disabled for now, because the reviewers-signify
  # team is empty and pullapprove seems to mis-handle that badly and treats
  # _all_ reviewers as being in this group.
  #
  # See https://github.com/dropseed/pullapprove/issues/71
  #
  # shared-reviewers-signify:
  #     type: optional
  #     conditions:
  #         - files.include('*')
  #     reviewers:
  #         teams: [reviewers-signify]
  #     reviews:
  #         request: 0 # Do not auto-add
  shared-reviewers-silabs:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-silabs]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-somfy:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-somfy]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-tcl:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-tcl]
    reviews:
      request: 0 # Do not auto-add
  shared-reviewers-qorvo:
    type: optional
    conditions:
      - files.include('*')
    reviewers:
      teams: [reviewers-qorvo]
    reviews:
      request: 0 # Do not auto-add

  ############################################################
  #  Folder specific review requirements. A PR must meet all
  #  folder specific review requirements for all folders that
  #  it touches with specific requirements defined.
  ############################################################

  folder-reviewers-scripts-build-integrations-docker:
    type: optional
    conditions:
      - "files.include('scripts/build/*') or files.include('integrations/docker/*')"
    reviewers:
      users:
        - andy31415
    reviews:
      # 1 review request will be sent at a time
      request: 1

  folder-reviewers-google:
    type: required
    conditions:
      - "files.include('examples/chef/*') or files.include('integrations/cloudbuild/*')"
    requirements:
      - "len(groups.approved.include('shared-reviewers-google')) >= 1 or \
        len(groups.approved.include('shared-reviewers-*')) >= 2"
    reviews:
      required: 0

  folder-reviewers-apple:
    type: required
    conditions:
      - "files.include('src/darwin/*').exclude('src/darwin/Framework/CHIP/zap-generated/*') or \
        files.include('src/platform/Darwin/*')"
    reviewers:
      teams: [reviewers-apple]
    reviews:
      request: 0
      required: 1

  ############################################################
  #  Base Required Reviewers. If PR touches a path not covered
  #  by any folder specific review requirements.
  ############################################################
  required-reviewers:
    description: >
      [Required
      Reviewers](https://github.com/project-chip/connectedhomeip/blob/master/CONTRIBUTING.md#review-requirements)
      This is the main group of required reviews for general pull
      requests.
    type: required
    conditions:
      # If PR touches a region not covered by any custom review paths, base condition is required.
      - "files\
              .exclude('examples/chef/*')\
              .exclude('integrations/cloudbuild/*')\
              .exclude('src/darwin/*')\
              .exclude('src/platform/Darwin/*') or \
        files.include('src/darwin/Framework/CHIP/zap-generated/*')"
    requirements:
      - len(groups.approved.include('shared-reviewers-*')) >= 2
    reviews:
      required: 0
    labels:
      approved: "review - approved"
      pending: "review - pending"
      rejected: "review - changed requested"

Copy link

pullapprove bot commented May 16, 2025

@mergify mergify bot added the conflict label May 16, 2025
@sxb427 sxb427 closed this May 23, 2025
@github-project-automation github-project-automation bot moved this from Todo to Done in [Platform] Darwin May 23, 2025
@mergify mergify bot removed the conflict label May 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

2 participants