diff --git a/packages/server/src/services/preview-deployment.ts b/packages/server/src/services/preview-deployment.ts index 20f64259bc..cc3d3dc020 100644 --- a/packages/server/src/services/preview-deployment.ts +++ b/packages/server/src/services/preview-deployment.ts @@ -17,7 +17,7 @@ import { manageDomain } from "../utils/traefik/domain"; import { findApplicationById } from "./application"; import { removeDeploymentsByPreviewDeploymentId } from "./deployment"; import { createDomain } from "./domain"; -import { type Github, getIssueComment } from "./github"; +import { findGithubById, getIssueComment } from "./github"; import { getWebServerSettings } from "./web-server-settings"; export type PreviewDeployment = typeof previewDeployments.$inferSelect; @@ -142,7 +142,17 @@ export const createPreviewDeployment = async ( org?.ownerId || "", ); - const octokit = authGithub(application?.github as Github); + if (!application.githubId) { + throw new TRPCError({ + code: "NOT_FOUND", + message: "Github Account not configured correctly", + }); + } + + // `findApplicationById` redacts `githubPrivateKey` from the `github` + // relation, so the provider must be refetched to authenticate. + const githubProvider = await findGithubById(application.githubId); + const octokit = authGithub(githubProvider); const runningComment = getIssueComment( application.name,