# Below is a list of Flutter team members' GitHub handles who are
# suggested reviewers for contributions to this repository.
#
# These names are just suggestions. It is fine to have your changes
# reviewed by someone else.
#
# Use git ls-files '<pattern>' without a / prefix to see the list of matching files.

/.ci.yaml @caseyhillers @christopherfujino
/CODEOWNERS @jmagman
/dev/ci/ @christopherfujino
/packages/flutter_goldens @Piinks
/packages/flutter_goldens_client @Piinks
/packages/flutter_test/lib/src/_goldens_io.dart @Piinks
/packages/flutter_test/lib/src/_goldens_web.dart @Piinks
/packages/flutter_test/lib/src/goldens.dart @Piinks
/packages/flutter_tools/templates/module/ios/ @jmagman
/packages/flutter_tools/templates/**/Podfile* @jmagman
