# Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
#
# Use of this source code is governed by a BSD-style license
# that can be found in the LICENSE file in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS.  All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.

# Inspired by chromium.org:
# http://dev.chromium.org/developers/contributing-code/watchlists

{
  'WATCHLIST_DEFINITIONS': {
    'this_file': {
      'filepath': '^WATCHLISTS$',
    },
    'all_webrtc': {
      # NOTE: if you like this you might like webrtc-reviews@webrtc.org!
      'filepath': '^.*',
    },
    'root_files': {
      # Non-recursive contents of ./
      'filepath': '^[^/]*$',
    },
    'build_files': {
      'filepath': '\.gni$|\.gn$',
    },
    'java_files': {
      'filepath': '\.java$|\.xml$',
    },
    'api': {
      'filepath': 'api/.*',
    },
    'audio': {
      'filepath': 'audio/.*',
    },
    'base': {
      'filepath': 'rtc_base/.*',
    },
    'call': {
      'filepath': 'call/.*',
    },
    'media_engine': {
      'filepath': 'media/engine/.*',
    },
    'video': {
      'filepath': 'video/.*',
    },
    'common_audio': {
      'filepath': 'common_audio/.*',
    },
    'common_video': {
      'filepath': 'common_video/.*',
    },
    'video_capture': {
      'filepath': 'modules/video_capture/.*',
    },
    'audio_device': {
      'filepath': 'modules/audio_device/.*',
    },
    'audio_coding': {
      'filepath': 'modules/audio_coding/.*',
    },
    'neteq': {
      'filepath': 'modules/audio_coding/neteq/.*',
    },
    'audio_mixer': {
      'filepath': 'modules/audio_mixer/.*',
    },
    'audio_processing': {
      'filepath': 'modules/audio_processing/.*',
    },
    'video_coding': {
      'filepath': 'modules/video_coding/.*',
    },
    'video_processing': {
      'filepath': 'modules/video_processing/.*',
    },
    'bitrate_controller': {
      'filepath': 'modules/bitrate_controller/.*'
    },
    'remote_bitrate_estimator': {
      'filepath': 'modules/remote_bitrate_estimator/.*'
    },
    'pacing': {
      'filepath': 'modules/pacing/.*'
    },
    'rtp_rtcp': {
      'filepath': 'modules/rtp_rtcp/.*'
    },
    'system_wrappers': {
      'filepath': 'system_wrappers/.*',
    },
  },

  'WATCHLISTS': {
    'this_file': [''],
    'all_webrtc': ['tterriberry@mozilla.com'],
    'root_files': ['niklas.enbom@webrtc.org',
                   'peah@webrtc.org',
                   'qiang.lu@intel.com',
                   'yujie.mao@webrtc.org'],
    'build_files': ['mbonadei@webrtc.org'],
    'common_audio': ['alessiob@webrtc.org',
                     'aluebs@webrtc.org',
                     'andrew@webrtc.org',
                     'audio-team@agora.io',
                     'bjornv@webrtc.org',
                     'minyue@webrtc.org',
                     'peah@webrtc.org'],
    'audio': ['solenberg@webrtc.org',
              'tina.legrand@webrtc.org'],
    'api': ['kwiberg@webrtc.org',
            'solenberg@webrtc.org'],
    'base': ['kwiberg@webrtc.org'],
    'call': ['mflodman@webrtc.org',
             'solenberg@webrtc.org',
             'stefan@webrtc.org'],
    'video': ['mflodman@webrtc.org',
              'stefan@webrtc.org',
              'video-team@agora.io',
              'yujie.mao@webrtc.org',
              'zhengzhonghou@agora.io'],
    'video_capture': ['mflodman@webrtc.org',
                      'perkj@webrtc.org',
                      'sdk-team@agora.io',
                      'zhengzhonghou@agora.io'],
    'audio_device': ['audio-team@agora.io',
                     'henrika@webrtc.org',
                     'peah@webrtc.org',
                     'sdk-team@agora.io'],
    'audio_coding': ['alessiob@webrtc.org',
                     'audio-team@agora.io',
                     'henrik.lundin@webrtc.org',
                     'kwiberg@webrtc.org',
                     'minyue@webrtc.org',
                     'peah@webrtc.org',
                     'tina.legrand@webrtc.org'],
    'neteq': ['alessiob@webrtc.org',
              'audio-team@agora.io',
              'henrik.lundin@webrtc.org',
              'minyue@webrtc.org'],
    'audio_mixer': ['aleloi@webrtc.org',
                    'henrik.lundin@webrtc.org'
    ],
    'audio_processing': ['aleloi@webrtc.org',
                         'alessiob@webrtc.org',
                         'aluebs@webrtc.org',
                         'andrew@webrtc.org',
                         'audio-team@agora.io',
                         'bjornv@webrtc.org',
                         'henrik.lundin@webrtc.org',
                         'kwiberg@webrtc.org',
                         'minyue@webrtc.org',
                         'peah@webrtc.org',
                         'solenberg@webrtc.org'],
    'video_coding': ['mflodman@webrtc.org',
                     'stefan@webrtc.org',
                     'video-team@agora.io',
                     'zhengzhonghou@agora.io'],
    'video_processing': ['stefan@webrtc.org',
                         'video-team@agora.io',
                         'zhengzhonghou@agora.io'],
    'bitrate_controller': ['mflodman@webrtc.org',
                           'stefan@webrtc.org',
                           'zhuangzesen@agora.io'],
    'remote_bitrate_estimator': ['mflodman@webrtc.org',
                                 'stefan@webrtc.org',
                                 'zhuangzesen@agora.io'],
    'pacing': ['mflodman@webrtc.org',
               'stefan@webrtc.org',
               'zhuangzesen@agora.io'],
    'rtp_rtcp': ['mflodman@webrtc.org',
                 'stefan@webrtc.org',
                 'danilchap@webrtc.org',
                 'zhuangzesen@agora.io'],
    'system_wrappers': ['fengyue@agora.io',
                        'henrika@webrtc.org',
                        'mflodman@webrtc.org',
                        'peah@webrtc.org',
                        'zhengzhonghou@agora.io'],
  },
}
