# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# Watchlist Rules
# Refer: http://dev.chromium.org/developers/contributing-code/watchlists

# IMPORTANT: The regular expression filepath is tested against each path using
# re.search, so it is not usually necessary to add .*.

{
  'WATCHLIST_DEFINITIONS': {
    'mojo': {
      'filepath': 'mojo',
    },
    'mojo_public': {
      'filepath': 'mojo/public',
    },
    'services': {
      'filepath': 'services',
    },
    'shell': {
      'filepath': 'shell',
    },
  },

  'WATCHLISTS': {
    'mojo': ['aa@chromium.org',
             'abarth@chromium.org',
             'ben+mojo@chromium.org',
             'darin@chromium.org',
             'qsr+mojo@chromium.org',
             'viettrungluu+watch@chromium.org',
             'gregsimon@chromium.org'],
    'mojo_public': ['yzshen+mojopublicwatch@chromium.org'],
    'services': ['qsr+mojo@chromium.org'],
    'shell': ['qsr+mojo@chromium.org'],
  },
}
