-
This repo hosts the OpenHands Champions contributor directory as a lightweight Next.js app for Vercel.
-
Canonical public data files:
data/contributors.generated.jsonfor generated merged-PR contributor datadata/contributors.overrides.jsonfor contributor-supplied name/note/hidden overridesdata/excluded-logins.jsonfor manually excluded employee/service-account logins
-
Sync command:
npm run sync:contributors(requiresGITHUB_TOKEN). -
Daily sync is handled by
.github/workflows/sync-contributors.ymland rewritesREADME.mdas a teaser plus updates generated data. -
automation/contains the separate OpenHands Cloud welcome-comment automation (python automation/main.py, cron0 12 * * *) that scans recent merged PRs, skips denylisted/bot/service-account authors viadata/excluded-logins.json, and posts the first-time contributor welcome comment. -
README regeneration preserves any content between
<!-- BEGIN MANUAL -->and<!-- END MANUAL -->markers (intended for manual Hackers/Testers lists). -
Contributor avatar wall is rendered via the Next.js route
app/api/contributor-wall(served at/api/contributor-wall) using the synced contributor dataset and omitting hidden contributors. -
UI reads local JSON at build time and provides client-side search/sort across merged PR contributors.
-
Visual styling intentionally mirrors
OpenHands/company-website: cream background, dark brown feature surfaces, yellow accent, and rounded card system. -
Generated contributor data now also includes a
recentMergedPrsfeed for the Fresh Merges ticker; newest contributors are derived from each contributor'sfirstMergedPrtimestamp. -
data/contributors.generated.jsonnow storescontributionYearsplus ayearlymap per contributor so the PR Champions view can treat each calendar year as its own champion season. -
Primary UI is now a sortable expandable table with a contributor-year season filter, season-scoped ticker rails, expanded-row year tags, and a floating accessibility control for motion/contrast.
-
Contributor self-serve PR flows live in
.github/PULL_REQUEST_TEMPLATE/with separate templates for profile enrichment and hide/remove requests. -
Issue champions are now tracked separately from merged-PR champions via
data/issues.generated.json, produced bynpm run sync:issues(ornpm run sync:all) from GitHub issues + issue comments over a rolling 365-day window. -
The new
/issuesroute mirrors the main directory UX with shared search/sort/pagination/ticker/accessibility patterns and uses the samedata/contributors.overrides.jsonfile for display-name and hide overrides. -
.github/workflows/sync-contributors.ymlnow syncs both contributor and issue datasets in one run and commitsdata/issues.generated.jsonalongside the existing contributor assets. -
The public detailed merged-PR query view now lives at
/detailed;/internaland/interalpermanently redirect there. The route is intentionally not linked from the top nav. The detailed page includes hidden contributors as fully anonymized rows appended after visible matches, while the main public directory continues to omit hidden contributors entirely.