From 0bd545359ed2799add07d56eee8f7742a191f020 Mon Sep 17 00:00:00 2001 From: msukkari Date: Sat, 25 Oct 2025 21:57:13 -0700 Subject: [PATCH] fix bug with octokit url for github cloud --- packages/backend/src/ee/repoPermissionSyncer.ts | 5 +++-- packages/backend/src/github.ts | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/backend/src/ee/repoPermissionSyncer.ts b/packages/backend/src/ee/repoPermissionSyncer.ts index 2393561a..1e7ec815 100644 --- a/packages/backend/src/ee/repoPermissionSyncer.ts +++ b/packages/backend/src/ee/repoPermissionSyncer.ts @@ -6,7 +6,7 @@ import { Job, Queue, Worker } from 'bullmq'; import { Redis } from 'ioredis'; import { PERMISSION_SYNC_SUPPORTED_CODE_HOST_TYPES } from "../constants.js"; import { env } from "../env.js"; -import { createOctokitFromToken, getRepoCollaborators } from "../github.js"; +import { createOctokitFromToken, getRepoCollaborators, GITHUB_CLOUD_HOSTNAME } from "../github.js"; import { Settings } from "../types.js"; import { getAuthCredentialsForRepo } from "../utils.js"; @@ -164,9 +164,10 @@ export class RepoPermissionSyncer { const userIds = await (async () => { if (repo.external_codeHostType === 'github') { + const isGitHubCloud = credentials.hostUrl ? new URL(credentials.hostUrl).hostname === GITHUB_CLOUD_HOSTNAME : false; const { octokit } = await createOctokitFromToken({ token: credentials.token, - url: credentials.hostUrl, + url: isGitHubCloud ? undefined : credentials.hostUrl, }); // @note: this is a bit of a hack since the displayName _might_ not be set.. diff --git a/packages/backend/src/github.ts b/packages/backend/src/github.ts index 19752914..ee26a024 100644 --- a/packages/backend/src/github.ts +++ b/packages/backend/src/github.ts @@ -11,8 +11,8 @@ import { env } from "./env.js"; import { GithubAppManager } from "./ee/githubAppManager.js"; import { hasEntitlement } from "@sourcebot/shared"; +export const GITHUB_CLOUD_HOSTNAME = "github.com"; const logger = createLogger('github'); -const GITHUB_CLOUD_HOSTNAME = "github.com"; export type OctokitRepository = { name: string, @@ -44,9 +44,10 @@ const isHttpError = (error: unknown, status: number): boolean => { } export const createOctokitFromToken = async ({ token, url }: { token?: string, url?: string }): Promise<{ octokit: Octokit, isAuthenticated: boolean }> => { + const isGitHubCloud = url ? new URL(url).hostname === GITHUB_CLOUD_HOSTNAME : false; const octokit = new Octokit({ auth: token, - ...(url ? { + ...(url && !isGitHubCloud ? { baseUrl: `${url}/api/v3` } : {}), });