# Each line is a file pattern followed by one or more owners.

# Order is important; the last matching pattern takes the most precedence.

# When someone opens a pull request that only modifies files in directory, only
# component owners and not the global owner(s) will be requested for a review.

# Syntax: https://help.github.com/articles/about-codeowners/

# Use individual usernames instead of teams (like @bazelbuild/android) for
# auto-assignment to work, unless everyone in the team has write permissions to the repository.
# See https://github.community/t5/How-to-use-Git-and-GitHub/CODEOWNERS-works-with-users-but-not-teams/td-p/4986

# Component owners
# ----------------

# Android

# android/ directory anywhere in the repository
android/ @ahumesky @ted-xie

/src/tools/android/java/com/google/devtools/build/android/desugar/ @ahumesky @ted-xie @kevin1e100

/src/test/java/com/google/devtools/build/android/desugar/ @ahumesky @ted-xie @kevin1e100

/src/tools/android/java/com/google/devtools/build/android/dexer/ @ahumesky @ted-xie @kevin1e100

/src/test/java/com/google/devtools/build/android/dexer/ @ahumesky @ted-xie @kevin1e100

/src/test/shell/bazel/android/ @ahumesky @ted-xie

# Apple

/src/main/java/com/google/devtools/build/lib/rules/apple @bazelbuild/rules_apple-team
/src/test/java/com/google/devtools/build/lib/rules/apple @bazelbuild/rules_apple-team
/src/test/shell/bazel/apple @allevato @davidgoldman @dmaclach @kelvinchan-google @reinhillman @thomasvl @bazelbuild/rules_apple-team
/tools/osx @bazelbuild/rules_apple-team

# Bzlmod

/src/main/java/com/google/devtools/build/lib/bazel/bzlmod @Wyverald @meteorcloudy
/src/test/java/com/google/devtools/build/lib/bazel/bzlmod @Wyverald @meteorcloudy
/src/test/py/bazel/bzlmod @Wyverald @meteorcloudy

# Documentation

/site @gregestren @fweikert

# C++

/src/tools/cpp @comius @pzembrod @trybka

/src/test/shell/bazel/cpp @comius @pzembrod @trybka

/src/test/java/com/google/devtools/build/lib/rules/cpp/ @comius @pzembrod @trybka

/src/main/java/com/google/devtools/build/lib/rules/cpp/ @comius @pzembrod @trybka

# Java

/src/java_tools/buildjar/ @bazelbuild/java-team

/src/main/java/com/google/devtools/build/lib/ideinfo/ @bazelbuild/intellij

/src/tools/singlejar/ @asmundak

# Python

/src/main/java/com/google/devtools/build/lib/bazel/rules/python/ @comius @rickeylev
/src/main/java/com/google/devtools/build/lib/rules/python/ @comius @rickeylev

# Execution and I/O related code

/src/main/java/com/google/devtools/build/lib/rules/ @lberki

# Starlark

/src/main/java/net/starlark/java/ @brandjon @tetromino

/tools/coverage/ @lberki
/tools/test/collect_coverage.sh @lberki
/tools/test/collect_cc_coverage.sh @lberki
/tools/test/CoverageOutputGenerator/ @lberki

# Configurability

/src/main/java/com/google/devtools/build/lib/analysis @bazelbuild/configurability
/src/test/java/com/google/devtools/build/lib/analysis @bazelbuild/configurability
/src/main/java/com/google/devtools/build/lib/rules/platform @bazelbuild/configurability
/src/test/java/com/google/devtools/build/lib/rules/platform @bazelbuild/configurability
/tools/platforms @bazelbuild/configurability

# Remote Execution

/src/main/java/com/google/devtools/build/lib/remote @bazelbuild/remote-execution
/src/test/java/com/google/devtools/build/lib/remote @bazelbuild/remote-execution
/src/test/py/bazel/remote @bazelbuild/remote-execution
/src/test/shell/bazel/remote @bazelbuild/remote-execution
/src/tools/remote @bazelbuild/remote-execution
/third_party/remoteapis/build/bazel/remote @bazelbuild/remote-execution
