# Recipe reviews should go through a member of the Platform EngProd team to
# ensure that new recipes are only introduced when absolutely necessary, and
# that recipe changes comply with accepted style and maintainability guidelines.

# Keep sorted.
atyfto@google.com
ihuh@google.com
maruel@google.com
mohrr@google.com
olivernewman@google.com

# Service accounts that may update certain files as part of recipe dependency
# rolls.
global-integration-roller@fuchsia-infra.iam.gserviceaccount.com

# Anyone can make changes to expectation files, which are generated purely from
# source-of-truth recipe code.
per-file *.expected/*.json = *
