diff --git a/apps/dashboard/src/components/repo/repo-markdown-files.test.ts b/apps/dashboard/src/components/repo/repo-markdown-files.test.ts index 4365040..6119720 100644 --- a/apps/dashboard/src/components/repo/repo-markdown-files.test.ts +++ b/apps/dashboard/src/components/repo/repo-markdown-files.test.ts @@ -9,17 +9,15 @@ describe("resolveGitHubMarkdownAssetUrl", () => { path: "README.md", }; - it("rebases root README relative assets to GitHub raw content", () => { + it("rebases root README relative assets to GitHub's raw route", () => { expect( resolveGitHubMarkdownAssetUrl(context, "assets/screenshot.png"), - ).toBe( - "https://raw.githubusercontent.com/jakemor/kanna/main/assets/screenshot.png", - ); + ).toBe("https://github.com/jakemor/kanna/raw/main/assets/screenshot.png"); }); it("rebases root-relative assets from the repository root", () => { expect(resolveGitHubMarkdownAssetUrl(context, "/assets/icon.png")).toBe( - "https://raw.githubusercontent.com/jakemor/kanna/main/assets/icon.png", + "https://github.com/jakemor/kanna/raw/main/assets/icon.png", ); }); @@ -30,7 +28,7 @@ describe("resolveGitHubMarkdownAssetUrl", () => { "../assets/demo image.png", ), ).toBe( - "https://raw.githubusercontent.com/jakemor/kanna/main/docs/assets/demo%20image.png", + "https://github.com/jakemor/kanna/raw/main/docs/assets/demo%20image.png", ); }); @@ -41,10 +39,24 @@ describe("resolveGitHubMarkdownAssetUrl", () => { "assets/screenshot.png", ), ).toBe( - "https://raw.githubusercontent.com/jakemor/kanna/feature/auth/assets/screenshot.png", + "https://github.com/jakemor/kanna/raw/feature/auth/assets/screenshot.png", ); }); + it("uses GitHub's raw route so LFS assets can redirect to media content", () => { + expect( + resolveGitHubMarkdownAssetUrl( + { + owner: "penso", + repo: "arbor", + ref: "main", + path: "README.md", + }, + "assets/screenshot.png", + ), + ).toBe("https://github.com/penso/arbor/raw/main/assets/screenshot.png"); + }); + it("keeps absolute and anchor URLs unchanged", () => { expect( resolveGitHubMarkdownAssetUrl( diff --git a/apps/dashboard/src/components/repo/repo-markdown-files.tsx b/apps/dashboard/src/components/repo/repo-markdown-files.tsx index e01e3df..51f6ae8 100644 --- a/apps/dashboard/src/components/repo/repo-markdown-files.tsx +++ b/apps/dashboard/src/components/repo/repo-markdown-files.tsx @@ -221,7 +221,7 @@ export function resolveGitHubMarkdownAssetUrl( return trimmedUrl; } - const rootUrl = `https://raw.githubusercontent.com/${encodeURIComponent(owner)}/${encodeURIComponent(repo)}/${encodePath(ref)}/`; + const rootUrl = `https://github.com/${encodeURIComponent(owner)}/${encodeURIComponent(repo)}/raw/${encodePath(ref)}/`; const directoryPath = encodePath(getDirectoryPath(path)); const baseUrl = trimmedUrl.startsWith("/") ? rootUrl