name: "Pull Request Labeler"
on:
  pull_request_target:
    types: [opened]

jobs:
  apply-file-based-labels:
    permissions:
      pull-requests: write
    runs-on: ubuntu-latest
    steps:
    - uses: actions/labeler@v5
      with:
        repo-token: "${{ secrets.GITHUB_TOKEN }}"
  apply-internal-external-label:
    needs: apply-file-based-labels
    if: ${{ always() }}
    permissions:
      pull-requests: write
    runs-on: ubuntu-latest
    steps:
      - uses: actions/github-script@v7
        with:
          github-token: ${{secrets.GITHUB_TOKEN}}
          script: |
            const maintainers = [
              'aws-sam-cli-bot',
              'hawflau', 'mndeveci',
              'mildaniel', 'marekaiv',
              'lucashuy', 'hnnasit', 'jysheng123', 'bentvelj', 'sidhujus', 'dependabot[bot]'
            ]
            if (maintainers.includes(context.payload.sender.login)) {
              github.rest.issues.addLabels({
                issue_number: context.issue.number,
                owner: context.repo.owner,
                repo: context.repo.repo,
                labels: ['pr/internal']
              })
            } else {
              github.rest.issues.addLabels({
                issue_number: context.issue.number,
                owner: context.repo.owner,
                repo: context.repo.repo,
                labels: ['pr/external', 'stage/needs-triage']
              })
            }