Mirror the GitHub profile cards onto Forgejo #1
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The GitHub profile at github.com/PhilflowIO/PhilflowIO renders six generated graphics: contribution snake, 3D contribution graph, a metrics card, an activity card, streak stats and an activity graph. All six are produced by Actions bound to GitHub's GraphQL API (
Platane/snk,yoshi389111/github-profile-3d-contrib,lowlighter/metrics) or by hosted services that only accept GitHub usernames (github-readme-streak-stats,github-readme-activity-graph). None of them work against a Forgejo instance.What Forgejo does give us
GET /api/v1/users/{user}/heatmap— 15-minute contribution buckets. Everything except the language breakdown derives from this.GET /user/repos,GET /repos/{owner}/{repo}/languages— repository and language statistics..profilerepository.Acceptance criteria
<picture>in the profile README.outputbranch.Notes
Platane/snkv3.5 ships a Forgejo source, but it fetches the heatmap anonymously and has no token option. Its solver and SVG writer are reusable as-is, so we vendor the repository at a pinned commit and feed it our own authenticated cell grid rather than patching it. Worth upstreaming a--forgejo_tokenflag separately.Cards are live on https://forgejo.philflow.me/Phil — the
outputbranch was published by hand from a local run, so the profile renders now.Two things changed against the plan above:
Single file per card instead of a light/dark pair. Forgejo's markdown sanitizer strips
<picture>and<source>, so a pair collapses to whichever file the fallback<img>points at and the profile rendered light cards on a dark page. Each card now draws against CSS variables and carries both palettes behind aprefers-color-schemequery, the same way snk does.Runner.
flow-raven-staging-ciis registered on thePhilfloworg and never picks up a job in a user-owned repository — run 2 sat inwaiting. Onlyflow-raven-evalandflow-raven-e2e-prodare instance-scoped; the workflow runs on the former. That runner also resolves actions against this instance (Phil/checkout, notactions/checkout) and runs steps as non-root, so bun installs into$HOME.Remaining, and the only thing blocking the daily refresh:
PROFILE_TOKENis not set. Run 5 gets all the way through checkout, typecheck, snk vendoring and into the generator, then dies onGET /user/repos → 401 token is required. Needs a personal access token withread:user+read:repositorystored as an Actions secret on this repo. Everything before and after that step is verified working.