# Copyright (c) 2020 Project CHIP Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
labelPRBasedOnFilePath:
    ############################################################
    #  Top Level Labels
    ############################################################
    repo:
        - ./*

    ############################################################
    #  Examples
    ############################################################
    examples:
        - examples/*

    ############################################################
    #  Documentation
    ############################################################
    documentation:
        - docs/*

    ############################################################
    #  Tools + Development Items
    ############################################################
    scripts:
        - scripts/*

    integrations:
        - integrations/*

    vscode:
        - .vscode
        - .devcontainer

    gn:
        - gn/*

    github:
        - .github

    workflows:
        - .github/workflows/*

    tools:
        - tools/*

    ############################################################
    #  Source Code
    ############################################################
    qr code:
        - src/qrcode/*

    lwip:
        - src/lwip/*

    inet:
        - src/inet/*

    config:
        - config/*

    lib:
        - src/lib/*

    crypto:
        - src/crypto/*

    controller:
        - src/controller/*

    ble:
        - src/ble/*

    android:
        - src/android/*

    app:
        - src/app/*

    transport:
        - src/transport/*

    system:
        - src/system/*

    setup payload:
        - src/setup_payload/*

    ############################################################
    #  Platforms
    ############################################################
    platform:
        - src/platform/*

    darwin:
        - src/platform/Darwin/*
        - src/darwin/*

    efr32:
        - src/platform/EFR32/*

    esp32:
        - src/platform/ESP32/*

    freeRTOS:
        - src/platform/FreeRTOS/*

    k32w:
        - src/platform/K32W/*

    linux:
        - src/platform/Linux/*

    nrf connect:
        - src/platform/nrfconnect/*

    openthread:
        - src/platform/openthread/*

    zephyr:
        - src/platform/Zephyr/*

    telink:
        - src/platform/telink/*
