# This directory needs to follow review and tooling processes that not all
# global OWNERS are familiar with.
#
# See https://fuchsia.dev/fuchsia-src/development/languages/rust/external_crates
# and Google-specific instructions at go/tq-rust-external-reviews.
set noparent

adamperry@google.com
computerdruid@google.com
dkoloski@google.com
etryzelaar@google.com
josephry@google.com
tmandry@google.com

# Temporary owners as part of submodules migrations to approve CLs that mirror
# jiri manigest changes into fuchsia.git.
# TODO(b/253329946): Remove OWNERS file once submodules are the source of truth in fuchsia.git.
global-integration-roller@fuchsia-infra.iam.gserviceaccount.com #{LAST_RESORT_SUGGESTION}
# Include users to debug submodules.
yupingz@google.com #{LAST_RESORT_SUGGESTION}

# COMPONENT: Rust>third_party
