Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

README.md

metrics/

Self-hosted profile metrics. Four SVG cards generated by lowlighter/metrics via GitHub Actions and committed back to this repo. The root README.md embeds them.

File What it shows
activity.svg Recent events, follow-ups, reactions
languages.svg Language breakdown (commit-byte weighted) + topics
signal.svg Achievements, lines, stars, gists, discussions
isocalendar.svg Full-year isometric contribution heatmap

Regenerated every 6 hours via .github/workflows/metrics.yml.


One-time setup

The workflow needs a personal access token so it can read your activity across private repos (aggregate numbers only — no file contents leave the runner).

1. Create a classic PAT

Go to https://github.com/settings/tokens/new and create a classic token (not fine-grained — lowlighter/metrics expects classic scopes):

  • Note: mcaney006 metrics
  • Expiration: 90 days (rotate quarterly; longer is lazy)
  • Scopes:
    • public_repo
    • read:user
    • repo — only if you want the traffic plugin too

Copy the token.

2. Add it as a repo secret

https://github.com/mcaney006/mcaney006/settings/secrets/actions/new

  • Name: METRICS_TOKEN
  • Secret: paste token, save.

3. Trigger the first run

https://github.com/mcaney006/mcaney006/actions/workflows/metrics.ymlRun workflowRun workflow.

First run takes ~3–5 minutes (four jobs in parallel). After it finishes you'll see four new commits on main touching metrics/*.svg, and the cards appear on your profile.


Rotation

# 90 days from now, regenerate the token, overwrite the secret, done.
# No workflow changes needed.

Troubleshooting

Workflow errors with "Resource not accessible by integration" The PAT expired or was created with the wrong scopes. Recreate with the scopes above.

SVGs look stale on your profile but commits are landing GitHub's CDN caches profile images. Hard-refresh with Cmd-Shift-R, or wait ~5 minutes.

One card is broken but others work Check the Actions run logs — the four jobs are independent. The failing plugin will have a stack trace. Common culprits:

  • plugin_lines on very large repos → bump retries_delay
  • plugin_stargazers with 0 stars → plugin handles this, but if it complains, set plugin_stargazers: no

Want to add the Spotify or Wakatime card Uncomment the matching job block in .github/workflows/metrics.yml and add the required secret.


Why self-hosted?

Third-party widget services (github-readme-stats, etc.) are convenient but:

  • They rate-limit under load and the card goes blank
  • The service can disappear overnight (trophy widget did, April 2026)
  • Every page view of your profile hits their servers, not GitHub's

With lowlighter/metrics, the SVG lives in your repo. GitHub serves it from their CDN. The only dependency is the Actions workflow itself, which runs on a schedule you control.