# Global owners:
# Unless a later match takes precedence, global owners will be # requested for
# review when someone opens a pull request.
*          @dlam @yigit

# Owners for each library group:
/activity*          @jbw0033 @ianhanniballake
/appcompat/*        @alanv
/biometric/*        @jbolinger
/collection/*       @dlam
/compose/compiler/* @jimgoog @lelandrichardson
/compose/runtime/*  @jimgoog @lelandrichardson
/core/*             @alanv
/datastore/*        @rohitsat13 @yigit
/fragment/*         @jbw0033 @ianhanniballake
/lifecycle/*        @jbw0033 @ianhanniballake
/navigation/*       @jbw0033 @ianhanniballake @claraf3
/paging/*           @claraf3 @ianhanniballake
/room/*             @droid-wan-kenobi @danysantiago @svasilinets
/work/*             @svasilinets @tikurahul


