# 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.
danikay@google.com
ihuh@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 = *

per-file recipes/rust_toolchain.** = dkoloski@google.com,etryzelaar@google.com,josephry@google.com,tmandry@google.com
