name: Update Authors and Third Party Notices

on:
  # Once a week or on pushes to main
  schedule:
    - cron: "0 3 * * 0"
  push:
    branches:
      - main

jobs:
  update_generated_files:
    name: Update automatically generated files
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
        with:
          # don't checkout a detatched HEAD
          ref: ${{ github.head_ref }}

          # this is important so git log can pick up on
          # the whole history to generate the list of AUTHORS
          fetch-depth: '0'


      - uses: actions/setup-node@v2
        with:
          node-version: ^16.20.2
          cache: 'npm'

      - name: Install npm@8
        run: |
          npm install -g npm@8

      - name: Install Dependencies
        run: |
          npm -v
          npm run bootstrap-ci

      - name: Update AUTHORS
        run: npm run update-authors

      - name: Update THIRD-PARTY-NOTICES.md
        run: npm run update-third-party-notices

      - name: Create Pull Request
        uses: peter-evans/create-pull-request@v4
        with:
          commit-message: Update report
          branch: ci/update-3rd-party-notices-and-authors
          title: 'chore: update AUTHORS and THIRD-PARTY-NOTICES'
          add-paths: |
            THIRD-PARTY-NOTICES.md
            AUTHORS
          body: |
            - Update `AUTHORS` and `THIRD-PARTY-NOTICES`

      - name: Merge PR
        env:
          PULL_REQUEST_NUMBER: ${{steps.cpr.outputs.pull-request-number}}
          # NOTE: we don't use a PAT so to not trigger further automation
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: |
          gh pr merge $PULL_REQUEST_NUMBER --squash --delete-branch
