Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
b2b81f3
feat: add config-driven GitHub issues/PRs/CI dashboard
Hweinstock Apr 24, 2026
7b823cf
refactor: harden types, fix injection, split render/compute
Hweinstock Apr 24, 2026
d099d24
docs: trim README to testing instructions
Hweinstock Apr 24, 2026
7b8deb7
rename: compute.ts → transform.ts
Hweinstock Apr 24, 2026
8667aab
refactor: extract client JS to separate file
Hweinstock Apr 24, 2026
9bece5c
refactor: prefer HOFs over for loops in transform.ts
Hweinstock Apr 24, 2026
f6e6223
deps: add chart.js as explicit dependency, serve locally
Hweinstock Apr 24, 2026
1e9c107
rename: client.js → client.ts
Hweinstock Apr 24, 2026
7e2471c
chore: serve dashboard at /dashboard/ path
Hweinstock Apr 24, 2026
71ebc3f
fix: address PR review - add types/node, tests, pin deps, remove pull…
Hweinstock Apr 24, 2026
45b3480
refactor: replace string templates with React renderToStaticMarkup
Hweinstock Apr 24, 2026
732ced0
fix: address review round 2 - fix workflow extension, remove duplicat…
Hweinstock Apr 24, 2026
9834769
feat: add top creators, top resolvers, top reviewers, fix chart layout
Hweinstock Apr 24, 2026
791ed36
feat: global time window tabs that filter all sections
Hweinstock Apr 24, 2026
d9da51c
feat: adaptive timeline granularity per time window
Hweinstock Apr 24, 2026
0c2767d
remove: per-person metrics to avoid competitive dynamics
Hweinstock Apr 24, 2026
160f6c7
fix: lazy chart init for hidden tabs, add esbuild dep, cleanup dead c…
Hweinstock Apr 24, 2026
e95ed39
refactor: migrate React → @kitajs/html, cleanup dead files
Hweinstock Apr 25, 2026
69b56d4
feat: multi-repo dashboard support
Hweinstock Apr 25, 2026
3c26a72
feat: auto-discover CI workflows for all repos
Hweinstock Apr 25, 2026
245e73c
security: remove unused authorType field, add security note to README
Hweinstock Apr 25, 2026
b21e69c
fix: cumulative open accounts for items open before window
Hweinstock Apr 25, 2026
b148297
fix: PR cumulative open uses closedAt for all close types
Hweinstock Apr 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/dashboard/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
site/
__pycache__/
28 changes: 28 additions & 0 deletions .github/dashboard/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# GitHub Dashboard

Config-driven static dashboard for tracking issues, PRs, and CI health across multiple repos.

## Security

The dashboard only renders publicly available GitHub data (issue/PR titles, numbers, labels, CI pass/fail counts, usernames). An authenticated `gh` token is required for rate limits and GraphQL access, but the output HTML contains no auth-gated information. The one API field that differs between authenticated and unauthenticated responses (`author_association`) is intentionally excluded from the output.

## Local Preview

```bash
cd .github/dashboard
npm install
npx tsx src/generate.tsx
open site/dashboard/index.html
```

For faster iteration, set `maxRuns: 10` in the CI section of `src/config.ts` — full CI fetch takes ~90s.

## Adding a Repo

Add the repo to the `repos` array in `src/config.ts`. The same pages (Issues, PRs, CI) are generated for every repo.

## Type Check

```bash
npx tsc --noEmit
```
Loading
Loading