From dacbe373bcf84e89af8bf8722193f705ddaaf2d2 Mon Sep 17 00:00:00 2001 From: Dinesh Pandiyan Date: Sun, 25 Oct 2026 16:05:32 +1100 Subject: [PATCH] feat: GitHub pull requests in Settings, Reviews column and diff banner Settings connects GitHub, follows repositories and resyncs; pull request rows show #N title, GitHub and author, and leave the column once closed or merged; a collapsible banner shows state, branches, a GitHub link and the description as sanitized Markdown. Adds LinkButton and MarkdownText, a GitHub setup guide, and docs/github-live-testing.md for checks pending a real GitHub App. --- DESIGN.md | 14 +- apps/web/package.json | 2 + apps/web/src/App.tsx | 2 + apps/web/src/ContextIdentity.tsx | 4 +- apps/web/src/ProjectsNav.tsx | 29 +- apps/web/src/PullRequestBanner.tsx | 107 +++++ apps/web/src/account-github.tsx | 379 ++++++++++++++++++ apps/web/src/account.tsx | 2 + apps/web/src/components/link-button.tsx | 32 ++ apps/web/src/components/markdown.tsx | 133 ++++++ apps/web/src/gallery/Gallery.tsx | 30 ++ apps/web/src/project-nav.ts | 24 +- apps/web/src/review.css | 5 + apps/web/test/browser/identity.spec.ts | 167 ++++++++ apps/web/test/browser/local-workspace.spec.ts | 116 +++++- apps/web/test/gallery/gallery.spec.ts | 1 + .../gallery/goldens/button-dark-linux.png | Bin 79164 -> 80100 bytes .../gallery/goldens/button-light-linux.png | Bin 76962 -> 77886 bytes .../gallery/goldens/button-touch-linux.png | Bin 80533 -> 81554 bytes .../gallery/goldens/markdown-dark-linux.png | Bin 0 -> 19608 bytes .../gallery/goldens/markdown-light-linux.png | Bin 0 -> 19098 bytes apps/web/test/project-nav.test.ts | 77 +++- .../src/pages/github-pull-requests.md | 132 ++++++ docs-website/vocs.config.ts | 1 + docs/development.md | 6 + docs/github-live-testing.md | 75 ++++ docs/system.md | 3 + packages/api/src/client.ts | 3 + pnpm-lock.yaml | 89 ++-- pnpm-workspace.yaml | 2 + 30 files changed, 1400 insertions(+), 35 deletions(-) create mode 100644 apps/web/src/PullRequestBanner.tsx create mode 100644 apps/web/src/account-github.tsx create mode 100644 apps/web/src/components/link-button.tsx create mode 100644 apps/web/src/components/markdown.tsx create mode 100644 apps/web/test/gallery/goldens/markdown-dark-linux.png create mode 100644 apps/web/test/gallery/goldens/markdown-light-linux.png create mode 100644 docs-website/src/pages/github-pull-requests.md create mode 100644 docs/github-live-testing.md diff --git a/DESIGN.md b/DESIGN.md index c0d30965..60bd789f 100644 --- a/DESIGN.md +++ b/DESIGN.md @@ -310,7 +310,10 @@ such detail into a token. New layout spacing must use the scale. identity ties. Recent first is one flat activity-ordered list labeling each row with its repository. Rows retain compact tree density, truncation, ages and metadata. - Show only current heads with changes. The current stream uses `--accent-bg`, + Show only current heads with changes; closed and merged GitHub pull requests + are not current. A pull request row shows a pull request (or draft) icon + labeled for assistive technology, `#N title`, and “GitHub · @author” first in + its metadata. The current stream uses `--accent-bg`, accent text and `aria-current="page"`. Unopened arrivals show a small accent dot labeled “New changes”; collapsed repositories carry their streams' dots. Repository collapse state persists per browser. @@ -323,6 +326,13 @@ such detail into a token. New layout spacing must use the scale. `aria-current="true"` with accent text on `--selected` for the open review's repository. A mark (“Open latest in {repo}”) opens that repository's most active stream; the rail stays collapsed. +- A GitHub pull request review shows a banner on `--panel` above the review + notices: a state icon, muted `#N` and the semibold title, a status `Badge` + (Open success, Draft neutral, Merged accent, Closed error), `@author`, muted + monospace head → base, an outline-muted “Open on GitHub” `LinkButton`, and a + “Show description” disclosure, collapsed by default and persisted per + browser. The description is `MarkdownText`, bounded by `--reading-width`, and + scrolls within the banner rather than pushing the diff away. - A newer head for the viewed stream shows a one-line `--accent-bg` notice below the header with an outline-muted “View latest” action. Never swap the open review. - Unopened arrivals are marked only by the column's and rail's accent dots and @@ -433,6 +443,8 @@ with a semantic variant instead of overriding it. | Need | Component (`apps/web/src/components`) | | -------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | +| Navigation styled as a button | `link-button` (keeps link semantics; `external` opens a new tab) | +| Untrusted Markdown prose | `markdown` (`MarkdownText`: no raw HTML, images as links) | | Action, link-styled trigger | `ui/button` (variants: default, outline, outline-muted, outline-check, ghost, shell, rail, subtle, destructive, destructive-solid, link) | | Icon-only action | `icon-button` (label is name and tooltip) | | Primary action plus menu | `split-button` | diff --git a/apps/web/package.json b/apps/web/package.json index da630f6b..1c0a94de 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -22,6 +22,8 @@ "lucide-react": "catalog:", "react": "catalog:", "react-dom": "catalog:", + "react-markdown": "catalog:", + "remark-gfm": "catalog:", "shadcn": "catalog:", "tw-animate-css": "catalog:" }, diff --git a/apps/web/src/App.tsx b/apps/web/src/App.tsx index 82f74c85..8aaea01d 100644 --- a/apps/web/src/App.tsx +++ b/apps/web/src/App.tsx @@ -6,6 +6,7 @@ import { FileExplorerNav } from "./FileExplorerNav.tsx"; import { Header } from "./Header.tsx"; import { Navigation } from "./Navigation.tsx"; import { NewerSnapshotNotice } from "./ProjectsNav.tsx"; +import { PullRequestBanner } from "./PullRequestBanner.tsx"; import { CopyDialog } from "./review.tsx"; import { capabilityEnabled, useSession } from "./session-context.tsx"; import { useSidebarState } from "./sidebar-context.tsx"; @@ -22,6 +23,7 @@ export function App() {
+ diff --git a/apps/web/src/ContextIdentity.tsx b/apps/web/src/ContextIdentity.tsx index edd5e09e..a61b5d44 100644 --- a/apps/web/src/ContextIdentity.tsx +++ b/apps/web/src/ContextIdentity.tsx @@ -32,7 +32,7 @@ import { type ProjectGroup, type ProjectStream, } from "./project-nav.ts"; -import { NewMark, useNow } from "./ProjectsNav.tsx"; +import { NewMark, StreamIcon, useNow } from "./ProjectsNav.tsx"; import { useCatalog } from "./session-context.tsx"; import { useShellPolicy } from "./shell-policy.ts"; @@ -204,7 +204,7 @@ function BranchItem({ return ( -
); } diff --git a/apps/web/src/project-nav.ts b/apps/web/src/project-nav.ts index b9d81309..d0be195f 100644 --- a/apps/web/src/project-nav.ts +++ b/apps/web/src/project-nav.ts @@ -30,10 +30,22 @@ export function projectKey(context: ApiContext) { return context.repositoryId ?? `name:${context.name}`; } +/** The GitHub pull request a stream reviews; the server alone authors it. */ +export function pullRequestOf(context: ApiContext) { + return context.observation?.pullRequest; +} + +/** Closed and merged pull requests leave current work; their reviews remain. */ +function currentWork(context: ApiContext) { + const state = pullRequestOf(context)?.state; + return state !== "closed" && state !== "merged"; +} + export function projectGroups(heads: ApiContext[], seen: SeenStreams | null) { const groups = new Map(); for (const context of heads) { - if (context.stale || !contextHasChanges(context)) continue; + if (context.stale || !contextHasChanges(context) || !currentWork(context)) + continue; const id = projectKey(context); const group = groups.get(id) ?? { id, @@ -126,6 +138,8 @@ export function streamMatches(stream: ProjectStream, query: string) { const { context } = stream; const text = [ streamTitle(context), + context.branch ?? "", + pullRequestOf(context)?.author.login ?? "", streamWorktree(context), streamHost(context), ...streamSessions(context), @@ -147,6 +161,8 @@ export function repoMonogram(name: string) { } export function streamTitle(context: ApiContext) { + const pull = pullRequestOf(context); + if (pull) return `#${pull.number} ${pull.title}`; return context.branch ?? context.observation?.branch ?? "Detached HEAD"; } @@ -162,10 +178,14 @@ export function streamMeta( )[0]?.harness ?? context.observation?.agentSession?.harness ?? ""; + const pull = pullRequestOf(context); return [ + pull ? "GitHub" : "", + pull?.draft ? "Draft" : "", + pull ? `@${pull.author.login}` : "", worktree, harness, - multipleHosts ? streamHost(context) : "", + multipleHosts && !pull ? streamHost(context) : "", relativeAge(contextActivity(context), now), ] .filter(Boolean) diff --git a/apps/web/src/review.css b/apps/web/src/review.css index e7b9fae0..7f4ecbf9 100644 --- a/apps/web/src/review.css +++ b/apps/web/src/review.css @@ -145,6 +145,11 @@ padding: var(--space-2) var(--page-gutter); border-bottom: 1px solid var(--border-muted); } +/* A long description scrolls within the banner and never pushes the diff away. */ +.pull-request-description { + max-height: min(40dvh, calc(6 * var(--space-16))); + overflow-y: auto; +} .comments-panel { flex: 1 0 calc(4 * var(--space-12)); overflow: auto; diff --git a/apps/web/test/browser/identity.spec.ts b/apps/web/test/browser/identity.spec.ts index 6eca8a25..579eb231 100644 --- a/apps/web/test/browser/identity.spec.ts +++ b/apps/web/test/browser/identity.spec.ts @@ -326,3 +326,170 @@ test("logout failure stays recoverable and success disposes account UI", async ( await page.getByRole("button", { name: "Sign out", exact: true }).click(); await expect(page.getByRole("heading", { name: "Sign in" })).toBeVisible(); }); + +test("GitHub settings stay absent until the server configures the integration", async ({ + page, +}) => { + await remote(page); + await page.route("**/api/v2/github/connection", (route) => + route.fulfill({ + status: 404, + json: { detail: "GitHub integration is not configured" }, + }), + ); + await page.goto("/settings"); + await expect(page.getByRole("heading", { name: "API tokens" })).toBeVisible(); + await expect(page.getByRole("heading", { name: "GitHub" })).toHaveCount(0); +}); + +test("connecting GitHub starts authorization with CSRF and reports the callback once", async ({ + page, +}) => { + await remote(page); + await page.route("**/api/v2/github/connection", (route) => { + if (route.request().method() === "POST") { + expect(route.request().headers()["x-csrf-token"]).toBe("session-csrf"); + return route.fulfill({ + json: { authorizeUrl: "https://github.test/login/oauth/authorize" }, + }); + } + return route.fulfill({ + json: { + connected: false, + installUrl: "https://github.com/apps/diffx/installations/new", + }, + }); + }); + await page.route("https://github.test/**", (route) => + route.fulfill({ contentType: "text/html", body: "

Authorize

" }), + ); + await page.goto("/settings?github=cancelled"); + await expect( + page.getByText("GitHub authorization was cancelled."), + ).toBeVisible(); + expect(new URL(page.url()).search).toBe(""); + await expect( + page.getByRole("link", { name: "Install on repositories" }), + ).toHaveAttribute("href", "https://github.com/apps/diffx/installations/new"); + await page + .getByRole("button", { name: "Connect GitHub", exact: true }) + .click(); + await expect(page.getByRole("heading", { name: "Authorize" })).toBeVisible(); + expect(page.url()).toBe("https://github.test/login/oauth/authorize"); +}); + +test("followed repositories toggle with CSRF, resync, and lost access stays listed", async ({ + page, +}) => { + await remote(page); + await page.route("**/api/v2/github/connection", (route) => + route.fulfill({ + json: { + connected: true, + login: "alice-gh", + state: "active", + installUrl: "https://github.com/apps/diffx/installations/new", + }, + }), + ); + await page.route("**/api/v2/github/repositories", (route) => + route.fulfill({ + json: { + repositories: [ + { + id: 10, + fullName: "octo/app", + private: true, + followed: false, + lost: false, + }, + { + id: 11, + fullName: "octo/gone", + private: false, + followed: true, + lost: true, + }, + ], + }, + }), + ); + const follows: string[] = []; + await page.route("**/api/v2/github/follows/*", (route) => { + expect(route.request().headers()["x-csrf-token"]).toBe("session-csrf"); + follows.push( + `${route.request().method()} ${new URL(route.request().url()).pathname}`, + ); + return route.fulfill({ status: 204 }); + }); + let resynced = false; + await page.route("**/api/v2/github/resync", (route) => { + expect(route.request().headers()["x-csrf-token"]).toBe("session-csrf"); + resynced = true; + return route.fulfill({ status: 204 }); + }); + await page.goto("/settings"); + await expect(page.getByText("Connected as @alice-gh.")).toBeVisible(); + const app = page.getByRole("checkbox", { name: "octo/app" }); + await expect(app).not.toBeChecked(); + await expect(page.getByRole("img", { name: "Private" })).toBeVisible(); + await expect(page.getByText("Access lost")).toBeVisible(); + await app.click(); + await expect(app).toBeChecked(); + await expect(page.getByText("Following octo/app.")).toBeVisible(); + await page.getByRole("checkbox", { name: "octo/gone" }).click(); + await expect(page.getByRole("checkbox", { name: "octo/gone" })).toHaveCount( + 0, + ); + expect(follows).toEqual([ + "PUT /api/v2/github/follows/10", + "DELETE /api/v2/github/follows/11", + ]); + await page.getByRole("button", { name: "Resync pull requests" }).click(); + await expect( + page.getByText("Refreshing pull requests of followed repositories."), + ).toBeVisible(); + expect(resynced).toBe(true); +}); + +test("expired GitHub authorization asks to connect again and disconnect confirms", async ({ + page, +}) => { + await remote(page); + let connected = true; + await page.route("**/api/v2/github/connection", (route) => { + if (route.request().method() === "DELETE") { + expect(route.request().headers()["x-csrf-token"]).toBe("session-csrf"); + connected = false; + return route.fulfill({ status: 204 }); + } + return route.fulfill({ + json: connected + ? { + connected: true, + login: "alice-gh", + state: "expired", + installUrl: "https://github.com/apps/diffx/installations/new", + } + : { + connected: false, + installUrl: "https://github.com/apps/diffx/installations/new", + }, + }); + }); + await page.goto("/settings"); + await expect(page.getByText(/expired\. Connect again/)).toBeVisible(); + await expect( + page.getByRole("button", { name: "Connect GitHub again" }), + ).toBeVisible(); + await expect(page.getByRole("heading", { name: "Repositories" })).toHaveCount( + 0, + ); + await page.getByRole("button", { name: "Disconnect", exact: true }).click(); + const confirm = page.getByRole("dialog", { name: "Disconnect GitHub?" }); + await confirm.getByRole("button", { name: "Disconnect GitHub" }).click(); + await expect(confirm).toBeHidden(); + await expect( + page.getByRole("button", { name: "Connect GitHub", exact: true }), + ).toBeVisible(); +}); diff --git a/apps/web/test/browser/local-workspace.spec.ts b/apps/web/test/browser/local-workspace.spec.ts index 71233fd0..8eaf194a 100644 --- a/apps/web/test/browser/local-workspace.spec.ts +++ b/apps/web/test/browser/local-workspace.spec.ts @@ -1,6 +1,6 @@ import { type Page, type Route } from "@playwright/test"; import { expect, fileToggle, test, withReviewNavigation } from "./fixtures.ts"; -import type { ApiContext, ApiRepositoryDiff } from "@diffx/api"; +import type { ApiContext, ApiPullRequest, ApiRepositoryDiff } from "@diffx/api"; import { comparisonKind, isDiffMode, @@ -2935,3 +2935,117 @@ test("saved comparison preferences belong to the active account", async ({ await page.goto("/contexts/local-review"); await ready(page, "committed-v1"); }); + +test("pull request reviews show GitHub identity and a sanitized description; closed ones leave the column", async ({ + page, +}) => { + const state = await localWorkspace(page); + await page.route("**/api/v2/bootstrap", (route) => + route.fulfill({ + json: { + mode: "remote", + signupEnabled: false, + user: { id: "account-a", username: "alice" }, + csrfToken: "csrf", + collect: false, + }, + }), + ); + const pull = { + provider: "github", + repositoryId: 10, + fullName: "octo/app", + number: 12, + url: "https://github.com/octo/app/pull/12", + title: "Add search", + body: [ + "Adds **search**.", + "", + "", + '', + "", + "[unsafe](javascript:window.injected=true) and ![logo](https://example.com/logo.png)", + ].join("\n"), + state: "open", + draft: false, + author: { login: "mona", url: "https://github.com/mona" }, + baseRef: "main", + headRef: "search", + headRepository: "mona/app", + createdAt: 1, + updatedAt: 2, + } satisfies ApiPullRequest; + state.context.streamId = "pr-stream"; + state.context.latestContextId = state.context.id; + state.context.branch = "search"; + state.context.observation = { + sourceId: "github", + hostname: "github.com", + runId: "", + agent: "", + trigger: "github", + repositoryKey: "repo", + repositoryName: "app", + remoteUrl: "https://github.com/octo/app.git", + checkoutKey: "pr-12", + root: pull.url, + worktreeName: "PR #12", + branch: "search", + head: "a".repeat(40), + collectedAt: 2, + collectorVersion: "test", + pullRequest: pull, + }; + const closed: ApiContext = { + ...state.context, + id: "closed-head", + streamId: "closed-stream", + latestContextId: "closed-head", + observation: { + ...state.context.observation, + pullRequest: { ...pull, number: 9, title: "Old work", state: "merged" }, + }, + }; + await page.route("**/api/v2/contexts?*", (route) => + route.fulfill({ + json: { contexts: [state.context, closed], nextCursor: null }, + }), + ); + await page.goto("/contexts/local-review?scope=all"); + await ready(page); + const nav = page.getByRole("navigation", { name: "Reviews", exact: true }); + const row = nav.getByRole("link", { name: /#12 Add search/ }); + await expect(row).toContainText("GitHub · @mona"); + await expect(row.getByRole("img", { name: "Pull request" })).toBeVisible(); + await expect(nav.getByText(/Old work/)).toHaveCount(0); + + const banner = page.getByRole("region", { name: "Pull request #12" }); + await expect( + banner.getByRole("heading", { name: "#12 Add search" }), + ).toBeVisible(); + await expect(banner.getByText("Open", { exact: true })).toBeVisible(); + await expect(banner).toContainText("@mona"); + await expect(banner).toContainText("Merging search"); + await expect(banner).toContainText("into main"); + await expect( + banner.getByRole("link", { name: "Open on GitHub" }), + ).toHaveAttribute("href", pull.url); + await expect(banner.getByText("Adds")).toBeHidden(); + await banner.getByRole("button", { name: "Show description" }).click(); + await expect(banner.getByText("search", { exact: true })).toHaveJSProperty( + "tagName", + "STRONG", + ); + await expect(banner.locator("script, img")).toHaveCount(0); + await expect(banner).not.toContainText(" "injected" in window)).toBe(false); + expect( + await banner.getByRole("link", { name: "unsafe" }).getAttribute("href"), + ).not.toMatch(/^javascript:/i); + await expect( + banner.getByRole("link", { name: "Image: logo" }), + ).toHaveAttribute("href", "https://example.com/logo.png"); + await banner.getByRole("button", { name: "Hide description" }).click(); + await expect(banner.getByText("Adds")).toBeHidden(); +}); diff --git a/apps/web/test/gallery/gallery.spec.ts b/apps/web/test/gallery/gallery.spec.ts index 9701d4a2..dfc6a745 100644 --- a/apps/web/test/gallery/gallery.spec.ts +++ b/apps/web/test/gallery/gallery.spec.ts @@ -14,6 +14,7 @@ const sections = [ "rows", "choices", "states", + "markdown", ] as const; async function open(page: import("@playwright/test").Page, query: string) { diff --git a/apps/web/test/gallery/goldens/button-dark-linux.png b/apps/web/test/gallery/goldens/button-dark-linux.png index 75da12f28181baf2cf2e8979b8909241e037917f..e958271192dcc8dd5b70659292a1cd15660adbdc 100644 GIT binary patch delta 33373 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%0D8(Y*2r% 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∋o%vaQu`d-;XpZgDk#+hSwi!?Byr;FWs@-n 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 E0#6uBM*si- delta 31771 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 diff --git a/apps/web/test/gallery/goldens/button-touch-linux.png b/apps/web/test/gallery/goldens/button-touch-linux.png index 6e9e7536fefb9f263a5954f7c5b055d486b36bff..f028ab4a55107694737d13a2de002d9fae9c40cb 100644 GIT binary patch delta 29679 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

nOAV08$+DBgBsaHOo)YDSdaI_S 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 Lu6{1-oD!M<1&cym literal 0 HcmV?d00001 diff --git a/apps/web/test/gallery/goldens/markdown-light-linux.png b/apps/web/test/gallery/goldens/markdown-light-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..807c51fa76ed50818b09de57596f84cbfc311a5d GIT binary patch literal 19098 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 N(w?q = {}, +): ApiContext { + const pullRequest: ApiPullRequest = { + provider: "github", + repositoryId: 10, + fullName: "octo/app", + number: 12, + url: "https://github.com/octo/app/pull/12", + title: "Add search", + body: "", + state: "open", + draft: false, + author: { login: "mona", url: "https://github.com/mona" }, + baseRef: "main", + headRef: "search", + headRepository: "mona/app", + createdAt: 1, + updatedAt: 2, + ...pull, + }; + return head(id, "app", 10, { + branch: "search", + observation: { + sourceId: "github", + hostname: "github.com", + runId: "", + agent: "", + trigger: "github", + repositoryKey: "app", + repositoryName: "app", + remoteUrl: "https://github.com/octo/app.git", + checkoutKey: id, + root: pullRequest.url, + worktreeName: `PR #${pullRequest.number}`, + branch: "search", + head: "a".repeat(40), + collectedAt: 10, + collectorVersion: "test", + pullRequest, + }, + }); +} + +test("closed and merged pull requests leave current work beside open ones", () => { + const groups = projectGroups( + [ + pullRequestHead("open"), + pullRequestHead("draft", { number: 13, draft: true }), + pullRequestHead("closed", { number: 14, state: "closed" }), + pullRequestHead("merged", { number: 15, state: "merged" }), + head("local", "app", 5), + ], + null, + ); + assert.deepEqual( + groups.flatMap((group) => group.streams.map((stream) => stream.context.id)), + ["draft", "open", "local"], + ); +}); + +test("pull request streams show number, title, GitHub and author", () => { + const open = pullRequestHead("open"); + const draft = pullRequestHead("draft", { draft: true }); + assert.equal(streamTitle(open), "#12 Add search"); + assert.equal(streamTitle(head("local", "app", 5)), "branch-local"); + assert.equal(streamMeta(open, true, 10), "GitHub · @mona · now"); + assert.equal(streamMeta(draft, false, 10), "GitHub · Draft · @mona · now"); + const stream = { id: "open", context: open, unseen: false }; + assert.ok(streamMatches(stream, "search mona")); + assert.ok(streamMatches(stream, "#12")); +}); diff --git a/docs-website/src/pages/github-pull-requests.md b/docs-website/src/pages/github-pull-requests.md new file mode 100644 index 00000000..345cdee1 --- /dev/null +++ b/docs-website/src/pages/github-pull-requests.md @@ -0,0 +1,132 @@ +--- +title: GitHub pull requests +description: Review open GitHub pull requests on a diffx server. +--- + +# GitHub pull requests + +A `diffx-server` can review the open pull requests of GitHub repositories you +follow. Each pull request is its own review, grouped with your other reviews of +that repository. Its row in the Reviews column shows its number, title, GitHub +and author. A banner above the diff shows its state, branches, a link to GitHub +and its description. Closed and merged pull requests leave the Reviews column; +their reviews stay reachable through search until they expire. + +This needs the distributed server, a GitHub App you create, and the +`diffx-fetcher` container. Local `diffx` has no GitHub integration. + +## How it works + +1. GitHub sends pull request events to the server's webhook. +2. The server records which pull requests need a refresh. Repeated events + coalesce; redelivered events have no effect. +3. `diffx-fetcher` leases one pull request at a time over a private port. The + server gives it a short-lived token that can only read that repository's + contents. +4. The fetcher keeps a partial clone of each repository, downloads only the + files the pull request changes, and computes the diff offline. +5. The server publishes the diff to every account that follows the repository + and can still read it on GitHub. + +The server checks access again when you open Settings, follow a repository or +resync, and before delivering to an account whose last check is older than +eight hours. GitHub does not retry failed webhook deliveries, so the server +also reconciles at startup and when you choose **Resync pull requests**. + +## Create the GitHub App + +In GitHub, open **Settings → Developer settings → GitHub Apps → New GitHub +App** (or the same page of an organization). + +- **Homepage URL**: your diffx server, such as `https://diffx.example.com`. +- **Callback URL**: `https://diffx.example.com/api/v2/github/callback`. +- **Expire user authorization tokens**: on. +- **Request user authorization (OAuth) during installation**: off. +- **Webhook URL**: `https://diffx.example.com/api/v2/github/webhooks`. +- **Webhook secret**: a long random value, such as the output of + `openssl rand -hex 32`. +- **Repository permissions**: Contents read-only, Pull requests read-only, + Metadata read-only. +- **Subscribe to events**: Pull request. + +Installation and authorization events are delivered without a subscription. +After creating the app, note its App ID and Client ID, generate a client +secret, and generate a private key (`.pem`). + +The webhook must reach the server over public HTTPS. Without it, pull requests +update only at server startup and on Resync. + +## Configure the server + +Set every variable; a partial set stops the server with the missing names. +Secrets are read only from the environment. + +| Variable | Value | +| -------------------------------------- | ------------------------------------------------------------------------------------ | +| `DIFFX_SERVER_GITHUB_APP_ID` | App ID | +| `DIFFX_SERVER_GITHUB_CLIENT_ID` | Client ID | +| `DIFFX_SERVER_GITHUB_CLIENT_SECRET` | Client secret | +| `DIFFX_SERVER_GITHUB_PRIVATE_KEY_FILE` | Path to the private key file | +| `DIFFX_SERVER_GITHUB_WEBHOOK_SECRET` | Webhook secret | +| `DIFFX_SERVER_GITHUB_PUBLIC_URL` | Browser-facing HTTPS origin, such as `https://diffx.example.com` | +| `DIFFX_SERVER_GITHUB_TOKEN_KEY` | 32 random bytes in base64 (`openssl rand -base64 32`); encrypts stored GitHub tokens | +| `DIFFX_SERVER_FETCHER_SECRET` | At least 32 characters (`openssl rand -hex 32`); shared with the fetcher | + +The server listens for the fetcher on `DIFFX_SERVER_INTERNAL_PORT` (default 7979) on the same host as its public listener. Never publish that port; only +the fetcher should reach it. Keep `DIFFX_SERVER_GITHUB_TOKEN_KEY` stable: +changing it requires every account to connect GitHub again. + +## Run the fetcher + +With Compose, put the variables above in a git-ignored `.env` beside +`compose.yaml`, mount the private key into the server with an override file, +and start the `github` profile: + +```yaml +# compose.override.yaml +services: + server: + environment: + DIFFX_SERVER_GITHUB_PRIVATE_KEY_FILE: /run/secrets/github-app.pem + volumes: + - ./github-app.pem:/run/secrets/github-app.pem:ro +``` + +```sh +docker compose --profile github up -d +``` + +The fetcher keeps mirrors in the `diffx-mirrors` volume and evicts the least +recently used ones above `DIFFX_FETCHER_DISK_LIMIT_GB` (default 20). +`DIFFX_FETCHER_CONCURRENCY` (default 2, at most 8) sets parallel fetches. + +To run it elsewhere, build `docker build --target fetcher .` and set +`DIFFX_FETCHER_SERVER_URL` (the server's internal listener, such as +`http://server:7979`), `DIFFX_FETCHER_SECRET` and `DIFFX_FETCHER_MIRRORS`. The +fetcher needs Git 2.44 or later and HTTPS access to github.com. + +## Connect and follow + +1. Open **Account settings** and choose **Connect GitHub**. GitHub asks you to + authorize the app, then returns to Settings. +2. Choose **Install on repositories** to install the app where you need it. + You can follow only repositories that both you and the app can read. +3. Check the repositories to follow. Their open pull requests, drafts + included, appear in the Reviews column shortly. + +**Resync pull requests** rechecks access and refreshes every followed +repository, including pull requests that closed without an event. Resync also +extends retention of pull requests that have not changed recently. If GitHub +access expires or is revoked, Settings asks you to connect again; followed +repositories receive nothing until then. **Disconnect** removes the +authorization and every follow; existing reviews stay until they expire. + +## Limits + +- A push, edit or state change creates a new snapshot in the same review + stream, so comments and reviewed marks carry across force-pushes. +- Pull request descriptions render as Markdown without raw HTML; images show + as links and are never loaded. +- Repositories cloned over SSH, or without `.git` in their HTTPS remote, group + separately from their pull requests. +- Very large pull requests can exceed collection time or preview limits. diff --git a/docs-website/vocs.config.ts b/docs-website/vocs.config.ts index 052b352d..aa8b239a 100644 --- a/docs-website/vocs.config.ts +++ b/docs-website/vocs.config.ts @@ -19,6 +19,7 @@ export default defineConfig({ text: "Agents and remote", items: [ { text: "Agent hooks and remote ingestion", link: "/agent-hooks" }, + { text: "GitHub pull requests", link: "/github-pull-requests" }, { text: "Agent plugins", link: "/plugins" }, { text: "MCP", link: "/mcp" }, { text: "WebMCP", link: "/webmcp" }, diff --git a/docs/development.md b/docs/development.md index 26e95f92..3c452d2e 100644 --- a/docs/development.md +++ b/docs/development.md @@ -376,6 +376,12 @@ repository grouping. Unavailable entries are disabled and skipped during keyboar navigation. Filter selections persist while navigating and reopening the picker. Switching disposes the previous workspace's request ownership and resets transient state. +GitHub pull request streams read `observation.pullRequest`, which the server +projects from the stream head: `project-nav.ts` owns their title, metadata and +the rule that closed and merged pull requests leave current work; +`PullRequestBanner.tsx` renders the banner; `account-github.tsx` owns Connect, +follows and Resync in Settings and renders nothing when +`GET /api/v2/github/connection` returns 404. The compact header exposes no snapshot delete action; theme choice lives in the status bar's Settings popover. Snapshot deletion through the API removes its stored diff scopes, comments, and reviewed-file marks. diff --git a/docs/github-live-testing.md b/docs/github-live-testing.md new file mode 100644 index 00000000..806a967b --- /dev/null +++ b/docs/github-live-testing.md @@ -0,0 +1,75 @@ +# GitHub integration: pending live testing + +The GitHub pull request integration shipped without a real GitHub App. Every +GitHub call was exercised against fakes; nothing has talked to github.com with +real credentials. This note lists what remains to verify once an app exists, +and the known risks to watch. Remove it when live testing is done. + +User setup: [GitHub pull requests](../docs-website/src/pages/github-pull-requests.md). +Design: `docs/system.md` → GitHub pull requests. + +## Verified without GitHub + +- Webhook HMAC, delivery deduplication and coalesced refresh intent + (`internal/githubsync`, real binary with signed payloads). +- OAuth state binding to the starting account, sealed tokens, refresh + rotation and reconnect on rejection (fake GitHub). +- Lease fencing, SHA checks, backoff, fan-out admission in one transaction, + deterministic submission IDs and Resync freshness (`fetch_test.go`). +- Fetcher partial clone, offline collection, token never persisted, LRU + eviction (`internal/fetcher`, local `file://` origin). +- Real git origin → fetcher → lease/finish → stored review with pull request + metadata (`internal/fetcher/integration_test.go`). +- Internal listener secret and isolation from the public listener (real + binaries); fetcher and server images build. +- Settings, Reviews column and banner (browser tests with mocked API). + +## Not yet verified + +Each needs a real GitHub App, an installation and public HTTPS for webhooks +(or `gh webhook forward` / smee during development). + +1. **App JWT and installation tokens.** `GET /app` (slug), repository-scoped + `POST /app/installations/{id}/access_tokens` with `contents: read`. +2. **OAuth web flow.** Authorize redirect, callback, code exchange with + expiring user tokens, `GET /user`, `GET /user/installations` and its + repositories. Confirm the callback lands on `/settings?github=connected`. +3. **Token refresh.** Let a user token expire (8h) and confirm refresh, + rotation and storage; revoke the app authorization on GitHub and confirm + Settings asks to connect again. +4. **Webhooks.** `pull_request` opened, synchronize (push and force-push), + edited, ready_for_review, converted_to_draft, closed and merged; + `installation` deleted and suspended; `installation_repositories` removed; + `github_app_authorization` revoked. Confirm redelivery from GitHub's UI is + a no-op. +5. **Fetch over HTTPS.** `x-access-token` basic auth through + `http.extraHeader`, partial clone of `refs/pull/N/head`, blob prefetch with + `fetch --stdin`, for a same-repository and a fork pull request, public and + private. +6. **End to end in Compose.** `docker compose --profile github up`: fetcher + reaches `server:7979` on the `fetch` network; 7979 is not published; the + pull request appears in the Reviews column grouped with an HTTPS checkout of + the same repository; the banner shows author, branches and description. +7. **Fan-out.** Two accounts following one repository both receive the pull + request; an account without access does not. +8. **Reconcile.** Close a pull request while the server is stopped; on startup + it leaves the Reviews column. Resync extends retention of an idle one. +9. **Rate limits.** Behavior when GitHub returns 403/429 rate limiting during + listing, lease or Resync. + +## Known risks and likely follow-ups + +- The collector's 30-second timeout may be too short for very large pull + requests; the fetcher may need its own budget. +- The fetcher passes no proxy or CA environment to Git, so deployments behind + an HTTPS proxy fail. +- A corrupt mirror is not repaired automatically; delete it from the + `diffx-mirrors` volume to rebuild it. +- Disk usage is checked after each job, so concurrent fetches can briefly + exceed `DIFFX_FETCHER_DISK_LIMIT_GB`. +- Listing caps (10,000 repositories, 3,000 open pull requests per repository) + truncate silently. +- Checkouts cloned over SSH or without `.git` in their HTTPS remote group + separately from their pull requests. +- Each lease reads the pull request and mints a token; heavy webhook traffic + on large repositories may need caching of installation tokens per lease. diff --git a/docs/system.md b/docs/system.md index 913ea280..2da108e1 100644 --- a/docs/system.md +++ b/docs/system.md @@ -126,6 +126,9 @@ freshness follows collection time and acceptance sequence. ### GitHub pull requests +Live testing against a real GitHub App is pending; see +[github-live-testing.md](github-live-testing.md). + The remote server optionally integrates a GitHub App, enabled only when every `DIFFX_SERVER_GITHUB_*` setting is present; secrets come from the environment only. Local composition has no GitHub routes. diff --git a/packages/api/src/client.ts b/packages/api/src/client.ts index e1ee0798..d1aa5137 100644 --- a/packages/api/src/client.ts +++ b/packages/api/src/client.ts @@ -22,6 +22,9 @@ export type ApiReviewComment = components["schemas"]["ReviewComment"]; export type ApiReviewMark = components["schemas"]["ReviewMark"]; export type ApiCollectionResult = components["schemas"]["CollectionResult"]; export type ApiCollectionFailure = components["schemas"]["CollectionFailure"]; +export type ApiPullRequest = components["schemas"]["PullRequest"]; +export type ApiGitHubConnection = components["schemas"]["GitHubConnection"]; +export type ApiGitHubRepository = components["schemas"]["GitHubRepository"]; export function errorDetail(error: unknown, fallback: string) { if (error instanceof Error) return error.message; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3ce2edb7..f60b719c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -60,6 +60,12 @@ catalogs: react-dom: specifier: 19.2.8 version: 19.2.8 + react-markdown: + specifier: 10.1.0 + version: 10.1.0 + remark-gfm: + specifier: 4.0.1 + version: 4.0.1 shadcn: specifier: 4.21.0 version: 4.21.0 @@ -137,6 +143,12 @@ importers: react-dom: specifier: 'catalog:' version: 19.2.8(react@19.2.8) + react-markdown: + specifier: 'catalog:' + version: 10.1.0(@types/react@19.2.18)(react@19.2.8)(supports-color@10.2.2) + remark-gfm: + specifier: 'catalog:' + version: 4.0.1(supports-color@10.2.2) shadcn: specifier: 'catalog:' version: 4.21.0(supports-color@10.2.2)(typescript@7.0.2) @@ -3750,6 +3762,9 @@ packages: resolution: {integrity: sha512-Hc+ghLoSt6QaYZUv0WBiIvmMDZuZZ7oaDvdH8MbfOO4lOsxdXLEvuC6ePoGs9H1X9oCLyq6+NVN0MKqD+ydxyg==} engines: {node: ^20.17.0 || >=22.9.0} + html-url-attributes@3.0.1: + resolution: {integrity: sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==} + html-void-elements@3.0.0: resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} @@ -5145,6 +5160,12 @@ packages: react-is@17.0.2: resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + react-markdown@10.1.0: + resolution: {integrity: sha512-qKxVopLT/TyA6BX3Ue5NwabOsAzm0Q7kAPwq6L+wWDwisYs7R8vZ0nRXqq6rkueboxpkjvLGU9fWifiX/ZZFxQ==} + peerDependencies: + '@types/react': '>=18' + react: '>=18' + react-server-dom-webpack@19.3.1: resolution: {integrity: sha512-I1Smf6Yc+389rFWPwyYjvCQVK1XFWpb2M9gvgYgfpbZ+LPqkZtb0tT9Fwdk0K+wknK2E+ns82lC0DCYLnXCVGA==} engines: {node: '>=0.10.0'} @@ -10150,6 +10171,8 @@ snapshots: dependencies: lru-cache: 11.5.3 + html-url-attributes@3.0.1: {} + html-void-elements@3.0.0: {} html-whitespace-sensitive-tag-names@3.0.1: {} @@ -10835,7 +10858,7 @@ snapshots: micromark-util-character: 2.1.1 micromark-util-sanitize-uri: 2.0.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.3 micromark-extension-gfm-footnote@2.1.0: dependencies: @@ -10846,7 +10869,7 @@ snapshots: micromark-util-normalize-identifier: 2.0.1 micromark-util-sanitize-uri: 2.0.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.3 micromark-extension-gfm-strikethrough@2.1.0: dependencies: @@ -10855,7 +10878,7 @@ snapshots: micromark-util-classify-character: 2.0.1 micromark-util-resolve-all: 2.0.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.3 micromark-extension-gfm-table@2.1.2: dependencies: @@ -10863,11 +10886,11 @@ snapshots: micromark-factory-space: 2.1.0 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.3 micromark-extension-gfm-tagfilter@2.0.0: dependencies: - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.3 micromark-extension-gfm-task-list-item@2.1.0: dependencies: @@ -10875,7 +10898,7 @@ snapshots: micromark-factory-space: 2.1.0 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.3 micromark-extension-gfm@3.0.0: dependencies: @@ -10886,7 +10909,7 @@ snapshots: micromark-extension-gfm-tagfilter: 2.0.0 micromark-extension-gfm-task-list-item: 2.1.0 micromark-util-combine-extensions: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.3 micromark-extension-mdx-expression@3.0.1: dependencies: @@ -10897,7 +10920,7 @@ snapshots: micromark-util-character: 2.1.1 micromark-util-events-to-acorn: 2.0.3 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.3 micromark-extension-mdx-jsx@3.0.2: dependencies: @@ -10909,12 +10932,12 @@ snapshots: micromark-util-character: 2.1.1 micromark-util-events-to-acorn: 2.0.3 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.3 vfile-message: 4.0.3 micromark-extension-mdx-md@2.0.0: dependencies: - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.3 micromark-extension-mdxjs-esm@3.0.0: dependencies: @@ -10924,7 +10947,7 @@ snapshots: micromark-util-character: 2.1.1 micromark-util-events-to-acorn: 2.0.3 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.3 unist-util-position-from-estree: 2.0.0 vfile-message: 4.0.3 @@ -10943,14 +10966,14 @@ snapshots: dependencies: micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.3 micromark-factory-label@2.0.1: dependencies: devlop: 1.1.0 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.3 micromark-factory-mdx-expression@2.0.3: dependencies: @@ -10960,28 +10983,28 @@ snapshots: micromark-util-character: 2.1.1 micromark-util-events-to-acorn: 2.0.3 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.3 unist-util-position-from-estree: 2.0.0 vfile-message: 4.0.3 micromark-factory-space@2.1.0: dependencies: micromark-util-character: 2.1.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.3 micromark-factory-title@2.0.1: dependencies: micromark-factory-space: 2.1.0 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.3 micromark-factory-whitespace@2.0.1: dependencies: micromark-factory-space: 2.1.0 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.3 micromark-util-character@2.1.1: dependencies: @@ -11001,7 +11024,7 @@ snapshots: micromark-util-combine-extensions@2.0.1: dependencies: micromark-util-chunked: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.3 micromark-util-decode-numeric-character-reference@2.0.2: dependencies: @@ -11016,7 +11039,7 @@ snapshots: micromark-util-edit-map@1.0.0: dependencies: - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.3 micromark-util-encode@2.0.1: {} @@ -11027,7 +11050,7 @@ snapshots: devlop: 1.1.0 estree-util-visit: 2.0.0 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.3 vfile-message: 4.0.3 micromark-util-html-tag-name@2.0.1: {} @@ -11038,7 +11061,7 @@ snapshots: micromark-util-resolve-all@2.0.1: dependencies: - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.3 micromark-util-sanitize-uri@2.0.1: dependencies: @@ -11051,7 +11074,7 @@ snapshots: devlop: 1.1.0 micromark-util-chunked: 2.0.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.3 micromark-util-symbol@2.0.1: {} @@ -11078,7 +11101,7 @@ snapshots: micromark-util-sanitize-uri: 2.0.1 micromark-util-subtokenize: 2.1.0 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.3 transitivePeerDependencies: - supports-color @@ -11723,6 +11746,24 @@ snapshots: react-is@17.0.2: {} + react-markdown@10.1.0(@types/react@19.2.18)(react@19.2.8)(supports-color@10.2.2): + dependencies: + '@types/hast': 3.0.5 + '@types/mdast': 4.0.4 + '@types/react': 19.2.18 + devlop: 1.1.0 + hast-util-to-jsx-runtime: 2.3.6(supports-color@10.2.2) + html-url-attributes: 3.0.1 + mdast-util-to-hast: 13.2.1 + react: 19.2.8 + remark-parse: 11.0.0(supports-color@10.2.2) + remark-rehype: 11.1.2 + unified: 11.0.5 + unist-util-visit: 5.1.0 + vfile: 6.0.3 + transitivePeerDependencies: + - supports-color + react-server-dom-webpack@19.3.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)(webpack@5.112.0(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.30)): dependencies: acorn-loose: 8.5.2 @@ -11907,7 +11948,7 @@ snapshots: dependencies: '@types/mdast': 4.0.4 mdast-util-from-markdown: 2.1.0(supports-color@10.2.2) - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.3 unified: 11.0.5 transitivePeerDependencies: - supports-color diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index a1ab2000..407de088 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -24,6 +24,8 @@ catalog: class-variance-authority: 0.7.1 cn: 0.2.6 lucide-react: 1.43.0 + react-markdown: 10.1.0 + remark-gfm: 4.0.1 shadcn: 4.21.0 tw-animate-css: 1.4.0 webmcp-types: 0.1.5