mirror of
https://github.com/mudler/LocalAI.git
synced 2026-08-01 11:00:24 -04:00
The star, fork, contributor and release counts were typed into the templates by hand, so they only moved when somebody remembered. They had already drifted: stars read 48,042 against 48,067, forks 4,314 against 4,320, and contributors 224 against 225. They move to website/data/stats.yaml, which .github/ci/refresh-site-counters.sh rewrites from the GitHub API, run weekly by a new workflow. The contributors and releases endpoints never report a total, so the script asks for one item per page and reads the count out of the Link header. It refuses to write a zero or a non-number, which is what a rate-limited or failed call looks like, and the workflow commits only when a number actually moved. The Discord count has no API behind it, so the script reads the existing value back and carries it through. The engine count was wrong in a second way. The hero said 18, the section heading said "Eighteen engines", the timeline said "Nineteen engines of our own", and the /engines/ page derived 19 from the data file. All of them now derive from that same file, so they cannot disagree again. Signed-off-by: Ettore Di Giacinto <mudler@localai.io> Assisted-by: Claude Code:claude-opus-5[1m]
45 lines
1.4 KiB
YAML
45 lines
1.4 KiB
YAML
name: Refresh site counters
|
|
|
|
# The landing page shows a star count, a contributor count and a release
|
|
# count. They were typed in by hand, so they drifted the moment somebody
|
|
# forgot. This pulls the real numbers once a week and commits them only when
|
|
# they have actually moved, which in turn triggers the usual Pages deploy.
|
|
|
|
on:
|
|
schedule:
|
|
# Mondays, 06:17 UTC. Off the hour on purpose, since the scheduler queues
|
|
# everything that asks for :00 and drops what it cannot run.
|
|
- cron: '17 6 * * 1'
|
|
workflow_dispatch:
|
|
|
|
permissions:
|
|
contents: write
|
|
|
|
concurrency:
|
|
group: refresh-site-counters
|
|
cancel-in-progress: false
|
|
|
|
jobs:
|
|
refresh:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Read the counts off the GitHub API
|
|
env:
|
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
run: ./.github/ci/refresh-site-counters.sh
|
|
|
|
- name: Commit only if something moved
|
|
run: |
|
|
if git diff --quiet -- website/data/stats.yaml; then
|
|
echo "counters unchanged, nothing to commit"
|
|
exit 0
|
|
fi
|
|
git diff --unified=0 -- website/data/stats.yaml
|
|
git config user.name "github-actions[bot]"
|
|
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
|
git add website/data/stats.yaml
|
|
git commit -m "chore(website): refresh the counters"
|
|
git push
|