Add centralized bounty issue discovery#44
Conversation
|
@TUPM96 is attempting to deploy a commit to the Bytegum Team on Vercel. A member of the Team first needs to authorize it. |
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Adds an “issue discovery” experience by persisting GitHub issue metadata on Bounty records and exposing a new UI to browse those bounties, while keeping the metadata in sync via additional GitHub webhook handling.
Changes:
- Persist additional issue fields (title/url/state/body excerpt/timestamps) on
Bountyand add supporting indexes/migration. - Sync stored issue metadata on
issueswebhook events (edited,closed,reopened) and backfill metadata onissues.labeled. - Replace the home page with a dynamic “Issue Discovery” listing and move the long-form setup/docs content to
/deploy.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| src/lib/github/webhook-handler.ts | Sync issue metadata into Bounty on additional issues.* events and normalize fields. |
| src/app/page.tsx | Serve the new issue discovery page and load bounty issues from Prisma. |
| src/app/issue-discovery.tsx | New client-side UI for browsing/filtering/sorting bounty issues. |
| src/app/deploy/page.tsx | New /deploy route containing prior setup/config documentation content. |
| prisma/schema.prisma | Extend Bounty model with issue metadata + indexes. |
| prisma/migrations/20260525143000_add_issue_discovery_metadata/migration.sql | Adds new columns and indexes to support issue discovery. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| orderBy: [ | ||
| { | ||
| issueUpdatedAt: "desc", | ||
| }, | ||
| { | ||
| updatedAt: "desc", | ||
| }, | ||
| ], |
| amount: Number(bounty.amount), | ||
| currency: bounty.currency, | ||
| status: bounty.issueState ?? bounty.status, | ||
| createdAt: createdAt.toISOString(), | ||
| updatedAt: updatedAt.toISOString(), |
| <div style={styles.tabs} role="tablist" aria-label="Issue views"> | ||
| <TabButton | ||
| active={viewMode === "recent"} | ||
| label="Recent Issues" | ||
| onClick={() => setViewMode("recent")} | ||
| /> | ||
| <TabButton | ||
| active={viewMode === "top"} | ||
| label="Top Issues" | ||
| onClick={() => setViewMode("top")} | ||
| /> |
| const installation = await prisma.repositoryInstallation.findUnique({ | ||
| where: { | ||
| owner_repo: { | ||
| owner: repository.owner.login, | ||
| repo: repository.name, | ||
| }, | ||
| }, | ||
| }); |
| const localSetupCommands = [ | ||
| "cd /Users/Projects/Javascript/paytrack/sdks/node", | ||
| "npm install", | ||
| "npm run build", | ||
| "", | ||
| "cd /Users/Projects/Javascript/paytrack/github-app", | ||
| "npm install", | ||
| "cp .env.example .env", | ||
| "npm run prisma:generate", | ||
| "npm run prisma:migrate", | ||
| "npm run dev", | ||
| ]; |
|
Addressed the Copilot review feedback in da4c59d:
Validation after the patch:
The remaining failing Vercel status appears to require Bytegum team authorization for fork deployments, per the Vercel bot comment. |
Fixes #43.\n\n## Summary\n- replace the homepage with a bounty issue discovery view with Recent Issues and Top Issues tabs\n- move the existing setup/deploy experience to /deploy\n- persist GitHub issue metadata from bounty label and issue update webhooks for title, status, dates, URL, and excerpt\n\n## Validation\n- npm run typecheck\n- npm test\n- npm run build\n- local HTTP checks for / and /deploy\n\nNote: npm run lint currently opens Next.js' interactive ESLint setup prompt because the repo has no ESLint config yet.