From 915eedbe73478bc03b3c9e0acced4ab9b3ade3bf Mon Sep 17 00:00:00 2001 From: AmirSa12 Date: Sun, 26 Apr 2026 22:22:20 +0330 Subject: [PATCH 1/5] test --- packages/app/server/api/repo/commits.get.ts | 24 +++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/packages/app/server/api/repo/commits.get.ts b/packages/app/server/api/repo/commits.get.ts index 472f8d87..ac4070aa 100644 --- a/packages/app/server/api/repo/commits.get.ts +++ b/packages/app/server/api/repo/commits.get.ts @@ -252,6 +252,30 @@ export default defineEventHandler(async (event) => { const totalCount = releases.length; const totalPages = Math.max(1, Math.ceil(totalCount / perPage)); const origin = getCommitPanelOrigin(event); + // #region agent log + { + const _h = getHeaders(event); + const _u = getRequestURL(event); + console.log( + "[DEBUG-9e8f04][commits.get] hyp:A,B,C,D,E", + JSON.stringify({ + owner: query.owner, + repo: query.repo, + page, + host: _h.host ?? null, + xForwardedHost: _h["x-forwarded-host"] ?? null, + xForwardedProto: _h["x-forwarded-proto"] ?? null, + referer: _h.referer ?? null, + userAgent: _h["user-agent"] ?? null, + requestUrl: _u.toString(), + resolvedOrigin: origin, + cfRay: _h["cf-ray"] ?? null, + cfCacheStatus: _h["cf-cache-status"] ?? null, + ts: Date.now(), + }), + ); + } + // #endregion const commitMetadata = await getCommitMetadata( installation, query.owner, From d953c3ce98429d4d9368e3e1c3770cd4b3f5dc1b Mon Sep 17 00:00:00 2001 From: AmirSa12 Date: Sun, 26 Apr 2026 22:49:09 +0330 Subject: [PATCH 2/5] revert --- packages/app/server/api/repo/commits.get.ts | 40 +-------------------- 1 file changed, 1 insertion(+), 39 deletions(-) diff --git a/packages/app/server/api/repo/commits.get.ts b/packages/app/server/api/repo/commits.get.ts index ac4070aa..28bfaa34 100644 --- a/packages/app/server/api/repo/commits.get.ts +++ b/packages/app/server/api/repo/commits.get.ts @@ -28,20 +28,6 @@ interface CommitMeta { branch: string | null; } -function getCommitPanelOrigin(event: H3Event) { - const requestUrl = getRequestURL(event); - const headers = getHeaders(event); - const host = - headers["x-forwarded-host"]?.split(",")[0]?.trim() || - headers.host?.split(",")[0]?.trim() || - requestUrl.host; - const protocol = - headers["x-forwarded-proto"]?.split(",")[0]?.trim() || - requestUrl.protocol.replace(":", ""); - - return `${protocol}://${host}`; -} - async function getCommitMetadata( installation: Awaited>, owner: string, @@ -251,31 +237,7 @@ export default defineEventHandler(async (event) => { const nextCursor = hasNextPage ? String(page + 1) : null; const totalCount = releases.length; const totalPages = Math.max(1, Math.ceil(totalCount / perPage)); - const origin = getCommitPanelOrigin(event); - // #region agent log - { - const _h = getHeaders(event); - const _u = getRequestURL(event); - console.log( - "[DEBUG-9e8f04][commits.get] hyp:A,B,C,D,E", - JSON.stringify({ - owner: query.owner, - repo: query.repo, - page, - host: _h.host ?? null, - xForwardedHost: _h["x-forwarded-host"] ?? null, - xForwardedProto: _h["x-forwarded-proto"] ?? null, - referer: _h.referer ?? null, - userAgent: _h["user-agent"] ?? null, - requestUrl: _u.toString(), - resolvedOrigin: origin, - cfRay: _h["cf-ray"] ?? null, - cfCacheStatus: _h["cf-cache-status"] ?? null, - ts: Date.now(), - }), - ); - } - // #endregion + const origin = getRequestURL(event).origin; const commitMetadata = await getCommitMetadata( installation, query.owner, From 5620134fd49d50fe2283e782abd99c242a712e3d Mon Sep 17 00:00:00 2001 From: AmirSa12 Date: Sun, 26 Apr 2026 23:22:01 +0330 Subject: [PATCH 3/5] fix: stop building urls server side --- packages/app/app/components/Commits.vue | 21 ++++++++++++- packages/app/server/api/repo/commits.get.ts | 35 +-------------------- 2 files changed, 21 insertions(+), 35 deletions(-) diff --git a/packages/app/app/components/Commits.vue b/packages/app/app/components/Commits.vue index 606fae7f..fa87a7e9 100644 --- a/packages/app/app/components/Commits.vue +++ b/packages/app/app/components/Commits.vue @@ -187,6 +187,25 @@ async function goPrevPage() { } await fetchPage(currentPage.value - 1); } + +// Build install snippet on the client so the URL always uses the real public +// origin (window.location.origin) instead of a host resolved during SSR, which +// can be `localhost` for internal Nitro dispatches on Cloudflare. +function buildInstallMarkdown( + commit: (typeof commitsWithRelease.value)[number] | null, +) { + if (!commit) return ""; + const origin = + typeof window !== "undefined" ? window.location.origin : ""; + const packages: string[] = commit.release.packages ?? []; + return packages + .map((pkg) => { + const shorter = props.repo === pkg; + const repoSegment = shorter ? "" : `/${props.repo}`; + return `\`\`\`\nnpm i ${origin}/${props.owner}${repoSegment}/${pkg}@${commit.abbreviatedOid}\n\`\`\``; + }) + .join("\n\n"); +} diff --git a/packages/app/server/api/repo/commits.get.ts b/packages/app/server/api/repo/commits.get.ts index 28bfaa34..eee5ac8d 100644 --- a/packages/app/server/api/repo/commits.get.ts +++ b/packages/app/server/api/repo/commits.get.ts @@ -1,7 +1,5 @@ import type { H3Event } from "h3"; import { z } from "zod"; -import type { PackageManager } from "@pkg-pr-new/utils"; -import { generateCommitPublishMessage } from "../../utils/markdown"; import { useBinding, useCursorsBucket, @@ -128,30 +126,6 @@ async function getDefaultBranchInfo( }; } -function makeReleaseText( - origin: string, - owner: string, - repo: string, - sha: string, - packages: string[], -) { - return generateCommitPublishMessage( - origin, - {}, - packages, - { - owner, - repo, - sha, - ref: sha, - }, - false, - "npm" satisfies PackageManager, - false, - false, - ).trim(); -} - export default defineEventHandler(async (event) => { try { const query = await getValidatedQuery(event, (data) => @@ -237,7 +211,6 @@ export default defineEventHandler(async (event) => { const nextCursor = hasNextPage ? String(page + 1) : null; const totalCount = releases.length; const totalPages = Math.max(1, Math.ceil(totalCount / perPage)); - const origin = getRequestURL(event).origin; const commitMetadata = await getCommitMetadata( installation, query.owner, @@ -284,13 +257,7 @@ export default defineEventHandler(async (event) => { name: "Continuous Releases", title: "Continuous Releases", summary: `Published ${sortedPackages.length} package(s)`, - text: makeReleaseText( - origin, - query.owner, - query.repo, - row.sha, - sortedPackages, - ), + packages: sortedPackages, detailsUrl: `https://github.com/${query.owner}/${query.repo}/commit/${row.sha}`, url: `https://github.com/${query.owner}/${query.repo}/commit/${row.sha}`, }, From ba6a7acaabc5330d88e275289a7be9a16481373a Mon Sep 17 00:00:00 2001 From: AmirSa12 Date: Sun, 26 Apr 2026 23:24:54 +0330 Subject: [PATCH 4/5] update --- packages/app/app/components/Commits.vue | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packages/app/app/components/Commits.vue b/packages/app/app/components/Commits.vue index fa87a7e9..e4eb7e09 100644 --- a/packages/app/app/components/Commits.vue +++ b/packages/app/app/components/Commits.vue @@ -187,10 +187,6 @@ async function goPrevPage() { } await fetchPage(currentPage.value - 1); } - -// Build install snippet on the client so the URL always uses the real public -// origin (window.location.origin) instead of a host resolved during SSR, which -// can be `localhost` for internal Nitro dispatches on Cloudflare. function buildInstallMarkdown( commit: (typeof commitsWithRelease.value)[number] | null, ) { From b1e06879072fa947560370973a419cf76f23179d Mon Sep 17 00:00:00 2001 From: AmirSa12 Date: Sun, 26 Apr 2026 23:26:34 +0330 Subject: [PATCH 5/5] lint --- packages/app/app/components/Commits.vue | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/app/app/components/Commits.vue b/packages/app/app/components/Commits.vue index e4eb7e09..f2ac3b86 100644 --- a/packages/app/app/components/Commits.vue +++ b/packages/app/app/components/Commits.vue @@ -191,8 +191,7 @@ function buildInstallMarkdown( commit: (typeof commitsWithRelease.value)[number] | null, ) { if (!commit) return ""; - const origin = - typeof window !== "undefined" ? window.location.origin : ""; + const origin = typeof window !== "undefined" ? window.location.origin : ""; const packages: string[] = commit.release.packages ?? []; return packages .map((pkg) => {