# 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.
andresvi@google.com
atyfto@google.com
catduncan@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

# Copybara copies some proto files into recipes from other repos.
copybara-worker-blackhole@google.com

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