name: Generate CHANGELOG
on:
  pull_request_target:
    types: [closed]
  workflow_dispatch:
jobs:
  GenerateChangelog:
    if: github.event.pull_request.merged || github.event_name == 'workflow_dispatch'
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - uses: actions/setup-go@v5
        with:
          go-version-file: 'internal/tools/go.mod'
      - run: go generate -tags tools internal/tools/tools.go
      - run: ./scripts/generate-changelog.sh
      - run: |
          if [[ `git status --porcelain` ]]; then
            if ${{github.event_name == 'workflow_dispatch'}}; then
              MSG="Update CHANGELOG.md (Manual Trigger)"
            else
              MSG="Update CHANGELOG.md for #${{ github.event.pull_request.number }}"
            fi
            git config --local user.email changelogbot@cloudflare.com
            git config --local user.name changelogbot
            git add CHANGELOG.md
            git commit -m "$MSG"
            git push
          fi
