name: label-author

on:
  pull_request:
    types: [opened]
  issues:
    types: [opened]

permissions:
  contents: read
  pull-requests: write
  issues: write

jobs:
  debug-context:
    runs-on: ubuntu-latest
    steps:
      - name: View context attributes
        uses: actions/github-script@v7
        with:
          script: console.log(context)

  label-created-by:
    name: Label pr/issue on opening
    runs-on: ubuntu-latest
    steps:
      - name: Tag with 'created-by'
        uses: actions/github-script@v7
        if: github.event.action == 'opened'
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}
          script: |
            const type = context.payload.pull_request ? 'pull_request' : 'issue';
            const association = context.payload[type].author_association;
            let label = '';
            if (
              association === 'MEMBER' ||
              association === 'OWNER' ||
              [
                'denolfe',
                'jmikrut',
                'danribbens',

                'alessiogr',
                'jacobsfletch',
                'jarrodmflesch',
                'jesschowdhury',
                'kendelljoseph',
                'patrikkozak',
                'paulpopus',
                'r1tsuu',
                'tylandavis',
              ].includes(context.actor.toLowerCase())
            ) {
              label = 'created-by: Payload team';
            } else if (association === 'CONTRIBUTOR') {
              label = 'created-by: Contributor';
            }

            if (!label) return;

            github.rest.issues.addLabels({
              issue_number: context.issue.number,
              owner: context.repo.owner,
              repo: context.repo.repo,
              labels: [label],
            });
            console.log(`Added '${label}' label`);
