#
# Copyright 2022 The Blaze 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.
#

name: Labeler

on:
  pull_request_target:
    types:
      - opened
      - edited
      - synchronize

jobs:
  process:
    name: Process
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2

      - name: Assign GitHub labels
        if: |
          github.event_name == 'pull_request_target' &&
            (github.event.action == 'opened' ||
             github.event.action == 'synchronize')
        uses: actions/labeler@2.2.0
        with:
          repo-token: ${{ secrets.GITHUB_TOKEN }}
          configuration-path: .github/workflows/dev_pr/labeler.yml
          sync-labels: true
