# 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
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 = *
