From 9e52b722f08c284b33fd4f56885f343f65e2107a Mon Sep 17 00:00:00 2001 From: Mauricio Siu Date: Fri, 3 Apr 2026 15:23:00 -0600 Subject: [PATCH] fix(git-provider): use internal URLs for Gitea and GitLab repository cloning - Updated the repository cloning functions to prioritize internal URLs for Gitea and GitLab, enhancing security and access control. - Ensured fallback to external URLs if internal ones are not available. --- packages/server/src/utils/providers/gitea.ts | 2 +- packages/server/src/utils/providers/gitlab.ts | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/server/src/utils/providers/gitea.ts b/packages/server/src/utils/providers/gitea.ts index 46dc5381b..20c86a589 100644 --- a/packages/server/src/utils/providers/gitea.ts +++ b/packages/server/src/utils/providers/gitea.ts @@ -170,7 +170,7 @@ export const cloneGiteaRepository = async ({ const repoClone = `${giteaOwner}/${giteaRepository}.git`; const cloneUrl = buildGiteaCloneUrl( - giteaProvider.giteaUrl, + giteaProvider.giteaInternalUrl || giteaProvider.giteaUrl, giteaProvider.accessToken!, giteaOwner!, giteaRepository!, diff --git a/packages/server/src/utils/providers/gitlab.ts b/packages/server/src/utils/providers/gitlab.ts index e8e4af2a5..a14067fba 100644 --- a/packages/server/src/utils/providers/gitlab.ts +++ b/packages/server/src/utils/providers/gitlab.ts @@ -90,12 +90,14 @@ const getGitlabRepoClone = ( gitlab: GitlabInfo, gitlabPathNamespace: string | null, ) => { - const repoClone = `${gitlab?.gitlabUrl.replace(/^https?:\/\//, "")}/${gitlabPathNamespace}.git`; + const url = gitlab?.gitlabInternalUrl || gitlab?.gitlabUrl; + const repoClone = `${url?.replace(/^https?:\/\//, "")}/${gitlabPathNamespace}.git`; return repoClone; }; const getGitlabCloneUrl = (gitlab: GitlabInfo, repoClone: string) => { - const isSecure = gitlab?.gitlabUrl.startsWith("https://"); + const url = gitlab?.gitlabInternalUrl || gitlab?.gitlabUrl; + const isSecure = url?.startsWith("https://"); const cloneUrl = `http${isSecure ? "s" : ""}://oauth2:${gitlab?.accessToken}@${repoClone}`; return cloneUrl; };