Star History Charts
Static SVG charts committed to the repo so README embeds keep working without
depending on api.star-history.com (which broke after GitHub restricted the
public stargazers API in 2026).
star-history-light.svg— light themestar-history-dark.svg— dark theme
Regenerate locally
Requires Python 3.6+, gh CLI authenticated as a repo admin/collaborator (stargazers list is no longer public).
# From repo root
tmpdir=$(mktemp -d)
git clone --depth 1 https://github.com/carsteneu/mystarhistory.git "$tmpdir/mystarhistory"
python3 "$tmpdir/mystarhistory/mystarhistory.py" \
--repo binaricat/Netcatty \
--output docs/assets/star-history/star-history-light.svg
python3 "$tmpdir/mystarhistory/mystarhistory.py" \
--repo binaricat/Netcatty \
--dark \
--output docs/assets/star-history/star-history-dark.svg
Or trigger the Star History GitHub Actions workflow
(.github/workflows/star-history.yml). It reuses the existing RELEASE_TOKEN
secret (same PAT already used for release publishing) so no new secret is
needed. Because main requires pull requests (with admin enforcement), the
workflow never pushes to the default branch directly: it force-updates
chore/star-history with RELEASE_TOKEN, then opens/reuses and squash-merges
a PR with the built-in GITHUB_TOKEN (PATs often lack createPullRequest).
RELEASE_TOKEN must be able to:
- read stargazers (repo admin/collaborator)
- push the
chore/star-historybranch
Also ensure the repo setting Allow GitHub Actions to create and approve pull
requests is enabled so GITHUB_TOKEN can open the chart PR.