Files
2026-07-07 11:11:15 +02:00

67 lines
2.2 KiB
YAML

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