name: GitHub Repo Stats

on:
  schedule:
    - cron: "0 23 * * *"
  workflow_dispatch:

permissions:
  contents: write

jobs:
  repo-stats:
    name: repo-stats
    runs-on: ubuntu-latest
    steps:
      - name: run-ghrs
        uses: jgehrcke/github-repo-stats@v1.4.2
        with:
          repository: maziggy/bambuddy
          ghtoken: ${{ secrets.GHRS_GITHUB_API_TOKEN }}
          ghpagesprefix: https://maziggy.github.io/bambuddy

      # Inject ghcr.io container-download stats (cumulative + 30-day
      # sparkline merged into a sidecar CSV so the chart grows beyond
      # the 30-day window GHCR exposes). Runs after jgehrcke regenerates
      # report.html on gh-pages.
      - name: checkout-source
        uses: actions/checkout@v4
        with:
          path: source

      # jgehrcke/github-repo-stats commits to the `github-repo-stats`
      # branch by default (NOT gh-pages — Pages is configured to serve
      # from that branch). Direct git clone with the PAT surfaces real
      # git stderr if anything fails, unlike actions/checkout@v4 which
      # swallows errors as opaque "exit code 1".
      - name: checkout-data-branch
        env:
          GH_PAT: ${{ secrets.GHRS_GITHUB_API_TOKEN }}
        run: |
          git clone --branch github-repo-stats --depth 1 \
            "https://x-access-token:${GH_PAT}@github.com/${{ github.repository }}.git" \
            data
          cd data
          git config user.name  "github-actions[bot]"
          git config user.email "41898282+github-actions[bot]@users.noreply.github.com"

      - name: inject-ghcr-pulls
        run: |
          python3 source/.github/scripts/ghcr_inject.py \
            --report data/maziggy/bambuddy/latest-report/report.html \
            --csv    data/maziggy/bambuddy/ghcr-pulls.csv \
            --owner  maziggy \
            --pkg    bambuddy

      - name: commit-and-push
        working-directory: data
        run: |
          if [ -z "$(git status --porcelain)" ]; then
            echo "no changes — skipping commit"
            exit 0
          fi
          git add maziggy/bambuddy/latest-report/report.html \
                  maziggy/bambuddy/ghcr-pulls.csv
          git commit -m "ghcr-pulls: refresh container downloads chart"
          git push
