How coder-s-og-s/mergeship works
MergeShip serves contributors learning and finding appropriately leveled open-source work, and maintainers reviewing organization activity and PRs. The main contributor path runs from profile analysis and placement through learning/mentorship, recommended issues, PR activity, and XP; maintainers use dashboards, PR review, analytics, and contributor-management tools. GitHub events enter through a verified webhook and are dispatched to background functions. Edges are limited to README-documented behavior or relationships visible in supplied excerpts and the source index; dashed edges mark workflow links not directly evidenced in sampled source.
Main entry points: page.tsx Organization dashboard · process-pr-event.ts PR event processing · profile.ts Profile analysis · recommendations-worker.ts Issue recommendations
Components 27
Contributor experience
- Placement onboarding
src/app/onboarding/analyze/page.tsx - Profile analysis
src/app/actions/profile.ts - Foundational course
src/components/contributor-dashboard/course-progress.tsx - Issue recommendations
src/inngest/functions/recommendations-worker.ts - Peer mentorship
src/app/actions/mentor.ts - Daily challenges
src/lib/daily-challenge/progress.ts - Contributor dashboard
src/components/contributor-dashboard/profile-sidebar.tsx
Maintainer workspace
- Organization dashboard
src/app/(app)/maintainer/page.tsx - PR review workflow
src/app/(app)/maintainer/pr/[id]/page.tsx - Maintainer analytics
src/app/(app)/maintainer/analytics/page.tsx - Contributor management
src/app/(app)/maintainer/contributors/page.tsx - Community communication
src/app/(app)/maintainer/community/page.tsx
Integrations and jobs
- GitHub
- GitHub webhook intake
src/app/api/webhooks/github/route.ts - Background job dispatch
src/app/api/inngest/route.ts - PR event processing
src/inngest/functions/process-pr-event.ts - Review event processing
src/inngest/functions/process-review-event.ts
Core services and data
- Issue ranking
src/lib/pipeline/recommend.ts - XP and levels
src/lib/xp/events.ts - GitHub API client
src/lib/github/app.ts - LLM routing
src/lib/llm/router.ts - Supabase
- Typed database access
src/lib/db/client.ts - Application data schema
src/lib/db/schema.ts - Cache and rate limits
src/lib/cache.ts
Other components
- Contributors
- Maintainers
Connections 31
- Contributors → Placement onboarding: sign in
- Placement onboarding → Profile analysis: analyzes profile
- GitHub → Profile analysis: profile data
- Profile analysis → Foundational course: places contributor
- Contributors → Contributor dashboard: learn and contribute
- Contributor dashboard → Issue recommendations: view recommendations
- Issue recommendations → Issue ranking: ranks issues
src/inngest/functions/recommendations-worker.ts - Issue recommendations → Supabase: reads and writes
src/inngest/functions/recommendations-worker.ts - Contributors → Peer mentorship: seek mentorship
- Peer mentorship → Contributors: peer review
- Contributors → XP and levels: earn points
- Contributors → Daily challenges: track progress
- Maintainers → Organization dashboard: manage organization
- Organization dashboard → PR review workflow: review pull requests
- Organization dashboard → Maintainer analytics: inspect activity
- Organization dashboard → Contributor management: manage contributors
- Organization dashboard → Community communication: communicate directly
- GitHub → GitHub webhook intake: sends events
- GitHub webhook intake → Background job dispatch: dispatches events
src/app/api/webhooks/github/route.ts - Background job dispatch → PR event processing: registers handler
src/app/api/inngest/route.ts - Background job dispatch → Review event processing: registers handler
src/app/api/inngest/route.ts - PR event processing → Supabase: updates PR data
src/inngest/functions/process-pr-event.ts - Review event processing → Supabase: reads and writes
src/inngest/functions/process-review-event.ts - Review event processing → XP and levels: records review XP
src/inngest/functions/process-review-event.ts - PR event processing → XP and levels: records contribution XP
src/inngest/functions/process-pr-event.ts - PR event processing → GitHub API client: uses GitHub integration
- GitHub API client → Cache and rate limits: caches tokens
src/lib/github/app.ts - GitHub API client → GitHub: calls API
src/lib/github/app.ts - LLM routing → Supabase: supports triage
- Typed database access → Application data schema: configures queries
src/lib/db/client.ts - Profile analysis → Supabase: uses server client
src/app/actions/profile.ts