Skip to content

Repository files navigation

GitHub Activity Dashboard

A GitHub Pages SPA that aggregates your GitHub activity and the activity of others in your own repositories — accumulating GitHub's short-window data (events: ~90 days, traffic: 14 days) into permanent local history in your browser.

See docs/design.md and the ADRs for the design decisions.

Setup

  1. GitHub OAuth App (device flow): create at https://github.com/settings/developers with any homepage URL. Copy the Client ID.
  2. Cloudflare Worker (already deployed): the auth proxy lives at https://github-dashboard-auth.markus-ackermann.workers.dev. To redeploy after changes:
    cd worker
    npx wrangler deploy
    
  3. Configure the SPA: on first launch, before signing in, run in the browser console:
    localStorage.setItem('ghdash-client-id', '<your-client-id>')
    localStorage.setItem('ghdash-worker-url', 'https://github-dashboard-auth.<your-subdomain>.workers.dev')
  4. Pages: enable GitHub Pages with source "GitHub Actions" (repo Settings → Pages). The deploy workflow runs on every push to main.

Development

npm install
npm run dev
npm test
npm run build

vite.config.ts sets base: '/github-dashboard/' to match the Pages URL https://saigyo.github.io/github-dashboard/.

Architecture

  • auth/ — OAuth device flow (worker-proxied), token in localStorage
  • github/ — typed REST + batched GraphQL client
  • sync/ — sync engine: repos → events → traffic snapshots → counters; runs on load and every 5 min
  • db/ — Dexie/IndexedDB: repos, raw events, traffic snapshots, syncState
  • ui/ — Overview, My Activity, My Repos, Repo detail; state in URL hash
  • worker/ — stateless Cloudflare Worker CORS proxy for the two device-flow endpoints

About

A GitHub Pages SPA that aggregates your GitHub activity and the activity of others in your own repositories. Built with OpenCode using GLM 5.3 Flash and the Matt Pocock Skills.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages