# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you 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: Sync authors list

on:  # yamllint disable-line rule:truthy
  schedule:
    #        min   hr    dom   mon   dow
    - cron: '11    01    *     *     *'     # daily at 1.11am
  workflow_dispatch:
  # only users with write access to apache/airflow can run manually
  # https://docs.github.com/en/actions/managing-workflow-runs/manually-running-a-workflow

permissions:
  contents: write
  pull-requests: write

jobs:
  sync:
    name: Sync
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v3

      - name: Python
        uses: actions/setup-python@v4
        with:
          python-version: '3.10'

      - name: Requests
        run: |
          pip install requests toml

      - name: Sync the authors list
        env:
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: |
          python scripts/ci/runners/sync_authors.py
          git config user.name "GitHub Actions"
          git config user.email "actions@users.noreply.github.com"
          if [ -n "$(git status --porcelain)" ]; then
            branch=update-$(date +%s)
            git add -A
            git checkout -b $branch
            git commit --message "Authors list automatic update"
            git push origin $branch
            gh pr create --title "Authors list automatic update" --body ''
          fi