darwin:
  # Make sure we don't match random words that contain "mac" inside.
  #
  # Make sure we don't match random words that contain "ios" inside
  # (like "kiosk" or whatnot), but do allow matching "ios8" and things
  # like that.
  #
  # Make sure we don't trigger for the string "MAC", which almost
  # certainly has nothing to do with Darwin.
  #
  # \\b means "word boundary"
  # (?![a-z]) means "there is no next char in the range a-z".
  - "/(\\b[Ii][Oo][Ss](?![a-zA-Z])|[Hh][Oo][Mm][Ee][Pp][Oo][Dd]|[Dd][Aa][Rr][Ww][Ii][Nn]|\\bm[Aa][Cc]\\b|\\bMa[Cc]\\b|\\bM[Aa]c\\b|[Mm][Aa][Cc][Oo][Ss])/"


# NOTE:
# Linux intentionally disabled: most people compile either on linux or darwin and
# as a result a lot of issues get tagged as such even though they are not platform specific
# (e.g. we get test case failures reported as linux even though they are just normal
# test runs)
#
# Linux label should be reserved to platform-specific problems (usually bootstrap/packages
# or integration with wifi/ethernet/bluetootn/etc.)
#
# linux:
#   - "/(linux)/i"

# Special Keywords for Cert Blockers
air purifiers:
  - "(Area:AirPurifiers)"
air quality sensors:
  - "(Area:AirQualitySensor)"
concentration measurement:
  - "(Area:ConcentrationMeasurement)"
device appearance:
  - "(Area:DeviceAppearance)"
dishwashers:
  - "(Area:Dishwashers)"
door lock enhancements:
  - "(Area:DoorLockEnhancements)"
event list:
  - "(Area;EventList)"
icd:
  - "(Area:ICDPhase2)"
icd phase 2:
  - "(Area:ICDPhase2)"
mode select:
  - "(Area:ModeSelect)"
operational state:
  - "(Area:OperationalState)"
refrigerators:
  - "(Area:Refrigerators)"
robot vacuums:
  - "(Area:RobotVacuums)"
room air conditioners:
  - "(Area:RoomAirConditioner)"
scenes:
  - "(Area:Scenes)"
smoke & c02:
  - "(Area:SmokeCO2)"
temperature controlled cabinet:
  - "(Area:TemperatureControlledCabinet)"
time sync:
  - "(Area:TimeSync)"
