# For the syntax of this file, see:
#
#    https://docs.gitlab.com/ee/user/project/code_owners.html#the-syntax-of-code-owners-files
#
# If more than one rule matches a given file, the latest rule is used.
# The file should be generally kept sorted, except when it is necessary
# to use a different order due to the fact above. In that case, use
# '# sort-order-reset' comment line to reset the sort order.
#
# Recipes for a few common cases:
#
# 1. Specific directory with all its contents:
#
#    /components/app_trace/
#
#    Note the trailing slash!
#
# 2. File with certain extension in any subdirectory of a certain directory:
#
#    /examples/**/*.py
#
#    This includes an *.py files in /examples/ directory as well.
#
# 3. Contents of a directory with a certain name, anywhere in the tree:
#
#    test_*_host/
#
#    Will match everything under components/efuse/test_efuse_host/,
#    components/heap/test_multi_heap_host/, components/lwip/test_afl_host/, etc.
#
# 4. Same as above, except limited to a specific place in the tree:
#
#    /components/esp32*/
#
#    Matches everything under /components/esp32, /components/esp32s2, etc.
#    Doesn't match /tools/some-test/components/esp32s5.
#
# 5. Specific file:
#
#    /tools/tools.json
#
# 6. File with a certain name anywhere in the tree
#
#    .gitignore
#

* @esp-idf-codeowners/other

/.*                                   @esp-idf-codeowners/tools
/.github/workflows/                   @esp-idf-codeowners/ci
/.gitlab-ci.yml                       @esp-idf-codeowners/ci
/.gitlab/ci/                          @esp-idf-codeowners/ci
/.pre-commit-config.yaml              @esp-idf-codeowners/ci
/.readthedocs.yml                     @esp-idf-codeowners/docs
/CMakeLists.txt                       @esp-idf-codeowners/build-config
/CONTRIBUTING.md                      @esp-idf-codeowners/docs
/Kconfig                              @esp-idf-codeowners/build-config
/README*.md                           @esp-idf-codeowners/docs
/SUPPORT_POLICY*.md                   @esp-idf-codeowners/docs
/add_path.sh                          @esp-idf-codeowners/tools
/conftest.py                          @esp-idf-codeowners/ci
/export.*                             @esp-idf-codeowners/tools
/install.*                            @esp-idf-codeowners/tools
/pytest.ini                           @esp-idf-codeowners/ci
/sdkconfig.rename                     @esp-idf-codeowners/build-config
/sonar-project.properties             @esp-idf-codeowners/ci

# sort-order-reset

/components/app_trace/                @esp-idf-codeowners/tools
/components/app_update/               @esp-idf-codeowners/system @esp-idf-codeowners/app-utilities
/components/bootloader*/              @esp-idf-codeowners/system @esp-idf-codeowners/security
/components/bootloader_support/bootloader_flash/    @esp-idf-codeowners/peripherals
/components/bt/                       @esp-idf-codeowners/bluetooth
/components/cmock/                    @esp-idf-codeowners/system
/components/console/                  @esp-idf-codeowners/system @esp-idf-codeowners/app-utilities/console
/components/cxx/                      @esp-idf-codeowners/system
/components/driver/                   @esp-idf-codeowners/peripherals
/components/efuse/                    @esp-idf-codeowners/system
/components/esp_adc/                  @esp-idf-codeowners/peripherals
/components/esp_common/               @esp-idf-codeowners/system
/components/esp_eth/                  @esp-idf-codeowners/network
/components/esp_event/                @esp-idf-codeowners/system
/components/esp_gdbstub/              @esp-idf-codeowners/tools
/components/esp_hid/                  @esp-idf-codeowners/bluetooth
/components/esp_http_client/          @esp-idf-codeowners/app-utilities
/components/esp_http_server/          @esp-idf-codeowners/app-utilities
/components/esp_https_ota/            @esp-idf-codeowners/app-utilities
/components/esp_https_server/         @esp-idf-codeowners/app-utilities
/components/esp_hw_support/           @esp-idf-codeowners/system @esp-idf-codeowners/peripherals
/components/esp_lcd/                  @esp-idf-codeowners/peripherals
/components/esp_local_ctrl/           @esp-idf-codeowners/app-utilities
/components/esp_netif/                @esp-idf-codeowners/network
/components/esp_phy/                  @esp-idf-codeowners/bluetooth @esp-idf-codeowners/wifi @esp-idf-codeowners/ieee802154
/components/esp_pm/                   @esp-idf-codeowners/power-management @esp-idf-codeowners/bluetooth @esp-idf-codeowners/wifi
/components/esp_psram/                @esp-idf-codeowners/peripherals @esp-idf-codeowners/system
/components/esp_ringbuf/              @esp-idf-codeowners/system
/components/esp_rom/                  @esp-idf-codeowners/system @esp-idf-codeowners/bluetooth @esp-idf-codeowners/wifi
/components/esp_serial_slave_link/    @esp-idf-codeowners/peripherals
/components/esp_system/               @esp-idf-codeowners/system
/components/esp_timer/                @esp-idf-codeowners/system
/components/esp-tls/                  @esp-idf-codeowners/app-utilities
/components/esp_wifi/                 @esp-idf-codeowners/wifi
/components/espcoredump/              @esp-idf-codeowners/tools
/components/esptool_py/               @esp-idf-codeowners/tools
/components/fatfs/                    @esp-idf-codeowners/storage
/components/fatfs/**/*.py             @esp-idf-codeowners/tools
/components/freertos/                 @esp-idf-codeowners/system
/components/hal/                      @esp-idf-codeowners/peripherals
/components/heap/                     @esp-idf-codeowners/system
/components/http_parser/              @esp-idf-codeowners/app-utilities
/components/idf_test/                 @esp-idf-codeowners/ci
/components/ieee802154/               @esp-idf-codeowners/ieee802154
/components/json/                     @esp-idf-codeowners/app-utilities
/components/linux/                    @esp-idf-codeowners/system
/components/log/                      @esp-idf-codeowners/system
/components/lwip/                     @esp-idf-codeowners/lwip
/components/mbedtls/                  @esp-idf-codeowners/app-utilities/mbedtls @esp-idf-codeowners/security
/components/mqtt/                     @esp-idf-codeowners/network
/components/newlib/                   @esp-idf-codeowners/system @esp-idf-codeowners/tools
/components/nvs_flash/                @esp-idf-codeowners/storage
/components/openthread/               @esp-idf-codeowners/ieee802154
/components/partition_table/          @esp-idf-codeowners/system
/components/perfmon/                  @esp-idf-codeowners/tools
/components/protobuf-c/               @esp-idf-codeowners/app-utilities
/components/protocomm/                @esp-idf-codeowners/app-utilities/provisioning
/components/pthread/                  @esp-idf-codeowners/system
/components/riscv/                    @esp-idf-codeowners/system
/components/sdmmc/                    @esp-idf-codeowners/storage
/components/soc/                      @esp-idf-codeowners/peripherals @esp-idf-codeowners/system
/components/spi_flash/                @esp-idf-codeowners/peripherals
/components/spiffs/                   @esp-idf-codeowners/storage
/components/tcp_transport/            @esp-idf-codeowners/network
/components/tinyusb/                  @esp-idf-codeowners/peripherals/usb
/components/touch_element/            @esp-idf-codeowners/peripherals
/components/ulp/                      @esp-idf-codeowners/system
/components/unity/                    @esp-idf-codeowners/ci
/components/usb/                      @esp-idf-codeowners/peripherals/usb
/components/vfs/                      @esp-idf-codeowners/storage
/components/wear_levelling/           @esp-idf-codeowners/storage
/components/wifi_provisioning/        @esp-idf-codeowners/app-utilities/provisioning
/components/wpa_supplicant/           @esp-idf-codeowners/wifi
/components/xtensa/                   @esp-idf-codeowners/system

/docs/                                  @esp-idf-codeowners/docs
/docs/**/api-reference/bluetooth/       @esp-idf-codeowners/bluetooth
/docs/**/api-reference/network/         @esp-idf-codeowners/network
/docs/**/api-reference/peripherals/     @esp-idf-codeowners/peripherals
/docs/**/api-reference/protocols/       @esp-idf-codeowners/network @esp-idf-codeowners/app-utilities
/docs/**/api-reference/provisioning/    @esp-idf-codeowners/app-utilities/provisioning
/docs/**/api-reference/storage/         @esp-idf-codeowners/storage
/docs/**/api-reference/system/          @esp-idf-codeowners/system
/docs/**/security/                      @esp-idf-codeowners/security
/docs/**/migration-guides/              @esp-idf-codeowners/docs @esp-idf-codeowners/all-maintainers

/examples/README.md           @esp-idf-codeowners/docs @esp-idf-codeowners/ci
/examples/**/*.py             @esp-idf-codeowners/ci @esp-idf-codeowners/tools
/examples/bluetooth/          @esp-idf-codeowners/bluetooth
/examples/build_system/       @esp-idf-codeowners/build-config
/examples/common_components/  @esp-idf-codeowners/system
/examples/custom_bootloader/  @esp-idf-codeowners/system
/examples/cxx/                @esp-idf-codeowners/system
/examples/ethernet/           @esp-idf-codeowners/network
/examples/get-started/        @esp-idf-codeowners/system
/examples/mesh/               @esp-idf-codeowners/wifi
/examples/network/            @esp-idf-codeowners/network @esp-idf-codeowners/wifi
/examples/openthread/         @esp-idf-codeowners/ieee802154
/examples/peripherals/        @esp-idf-codeowners/peripherals
/examples/peripherals/usb/    @esp-idf-codeowners/peripherals @esp-idf-codeowners/peripherals/usb
/examples/protocols/          @esp-idf-codeowners/network @esp-idf-codeowners/app-utilities
/examples/provisioning/       @esp-idf-codeowners/app-utilities/provisioning
/examples/security/           @esp-idf-codeowners/security
/examples/storage/            @esp-idf-codeowners/storage
/examples/system/             @esp-idf-codeowners/system
/examples/system/ota/         @esp-idf-codeowners/app-utilities
/examples/wifi/               @esp-idf-codeowners/wifi
/examples/zigbee/             @esp-idf-codeowners/ieee802154

/tools/                       @esp-idf-codeowners/tools
/tools/ble/                   @esp-idf-codeowners/app-utilities
/tools/catch/                 @esp-idf-codeowners/ci
/tools/ci/                    @esp-idf-codeowners/ci
/tools/cmake/                 @esp-idf-codeowners/build-config
/tools/esp_prov/              @esp-idf-codeowners/app-utilities
/tools/idf_size_yaml/         @esp-idf-codeowners/peripherals
/tools/kconfig*/              @esp-idf-codeowners/build-config
/tools/ldgen/                 @esp-idf-codeowners/build-config
/tools/mass_mfg/              @esp-idf-codeowners/app-utilities
/tools/mocks/                 @esp-idf-codeowners/system
/tools/test_apps/README.md    @esp-idf-codeowners/docs @esp-idf-codeowners/ci

## Note: owners here should be the same as the owners for the same example subdir, above
/tools/test_apps/build_system/       @esp-idf-codeowners/build-config
/tools/test_apps/protocols/          @esp-idf-codeowners/network @esp-idf-codeowners/app-utilities
/tools/test_apps/security/           @esp-idf-codeowners/security
/tools/test_apps/system/             @esp-idf-codeowners/system

/tools/test_apps/**/*.py             @esp-idf-codeowners/ci @esp-idf-codeowners/tools

/tools/unit-test-app/         @esp-idf-codeowners/system @esp-idf-codeowners/tools

# sort-order-reset

/components/**/test_apps/**/*.py     @esp-idf-codeowners/ci @esp-idf-codeowners/tools

# ignore lists
/tools/ci/check_copyright_config.yaml                   @esp-idf-codeowners/all-maintainers
/tools/ci/check_copyright_ignore.txt                    @esp-idf-codeowners/all-maintainers
/tools/ci/mypy_ignore_list.txt                          @esp-idf-codeowners/tools
