name: 'Label Child Issues for Project Rollup'

on:
  issues:
    types: ['opened', 'edited', 'reopened']
  schedule:
    - cron: '0 * * * *' # Run every hour
  workflow_dispatch:

permissions:
  issues: 'write'
  contents: 'read'

jobs:
  # Event-based: Quick reaction to new/edited issues in THIS repo
  labeler:
    if: "github.event_name == 'issues'"
    runs-on: 'ubuntu-latest'
    steps:
      - name: 'Checkout'
        uses: 'actions/checkout@v4'

      - name: 'Setup Node.js'
        uses: 'actions/setup-node@v4'
        with:
          node-version: '20'
          cache: 'npm'

      - name: 'Install Dependencies'
        run: 'npm ci'

      - name: 'Run Multi-Repo Sync Script'
        env:
          GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
        run: 'node .github/scripts/sync-maintainer-labels.cjs'

  # Scheduled/Manual: Recursive sync across multiple repos
  sync-maintainer-labels:
    if: "github.event_name == 'schedule' || github.event_name == 'workflow_dispatch'"
    runs-on: 'ubuntu-latest'
    steps:
      - name: 'Checkout'
        uses: 'actions/checkout@v4'

      - name: 'Setup Node.js'
        uses: 'actions/setup-node@v4'
        with:
          node-version: '20'
          cache: 'npm'

      - name: 'Install Dependencies'
        run: 'npm ci'

      - name: 'Run Multi-Repo Sync Script'
        env:
          GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
        run: 'node .github/scripts/sync-maintainer-labels.cjs'
