diff --git a/apps/dokploy/pages/api/providers/gitlab/callback.ts b/apps/dokploy/pages/api/providers/gitlab/callback.ts index 8de9b7fa..e32e0a7a 100644 --- a/apps/dokploy/pages/api/providers/gitlab/callback.ts +++ b/apps/dokploy/pages/api/providers/gitlab/callback.ts @@ -13,7 +13,7 @@ export default async function handler( const gitlab = await findGitlabById(gitlabId as string); - const response = await fetch("https://gitlab.com/oauth/token", { + const response = await fetch(`${gitlab.gitlabUrl}/oauth/token`, { method: "POST", headers: { "Content-Type": "application/x-www-form-urlencoded", diff --git a/packages/server/src/utils/providers/gitlab.ts b/packages/server/src/utils/providers/gitlab.ts index b99e64e3..096f9e28 100644 --- a/packages/server/src/utils/providers/gitlab.ts +++ b/packages/server/src/utils/providers/gitlab.ts @@ -26,7 +26,7 @@ export const refreshGitlabToken = async (gitlabProviderId: string) => { return; } - const response = await fetch("https://gitlab.com/oauth/token", { + const response = await fetch(`${gitlabProvider.gitlabUrl}/oauth/token`, { method: "POST", headers: { "Content-Type": "application/x-www-form-urlencoded", @@ -122,7 +122,7 @@ export const cloneGitlabRepository = async ( const basePath = isCompose ? COMPOSE_PATH : APPLICATIONS_PATH; const outputPath = join(basePath, appName, "code"); await recreateDirectory(outputPath); - const repoclone = `gitlab.com/${gitlabPathNamespace}.git`; + const repoclone = `${gitlab?.gitlabUrl.replace(/^https?:\/\//, "")}/${gitlabPathNamespace}.git`; const cloneUrl = `https://oauth2:${gitlab?.accessToken}@${repoclone}`; try { @@ -218,7 +218,7 @@ export const getGitlabCloneCommand = async ( const basePath = isCompose ? COMPOSE_PATH : APPLICATIONS_PATH; const outputPath = join(basePath, appName, "code"); await recreateDirectory(outputPath); - const repoclone = `gitlab.com/${gitlabPathNamespace}.git`; + const repoclone = `${gitlab?.gitlabUrl.replace(/^https?:\/\//, "")}/${gitlabPathNamespace}.git`; const cloneUrl = `https://oauth2:${gitlab?.accessToken}@${repoclone}`; const cloneCommand = ` @@ -244,7 +244,7 @@ export const getGitlabRepositories = async (gitlabId?: string) => { const gitlabProvider = await findGitlabById(gitlabId); const response = await fetch( - `https://gitlab.com/api/v4/projects?membership=true&owned=true&page=${0}&per_page=${100}`, + `${gitlabProvider.gitlabUrl}/api/v4/projects?membership=true&owned=true&page=${0}&per_page=${100}`, { headers: { Authorization: `Bearer ${gitlabProvider.accessToken}`, @@ -304,7 +304,7 @@ export const getGitlabBranches = async (input: { const gitlabProvider = await findGitlabById(input.gitlabId); const branchesResponse = await fetch( - `https://gitlab.com/api/v4/projects/${input.id}/repository/branches`, + `${gitlabProvider.gitlabUrl}/api/v4/projects/${input.id}/repository/branches`, { headers: { Authorization: `Bearer ${gitlabProvider.accessToken}`, @@ -352,7 +352,7 @@ export const cloneRawGitlabRepository = async (entity: Compose) => { await recreateDirectory(outputPath); const gitlabUrl = gitlabProvider.gitlabUrl; // What happen with oauth in self hosted instances? - const repoclone = `gitlab.com/${gitlabPathNamespace}.git`; + const repoclone = `${gitlabUrl.replace(/^https?:\/\//, "")}/${gitlabPathNamespace}.git`; const cloneUrl = `https://oauth2:${gitlabProvider?.accessToken}@${repoclone}`; try { @@ -392,7 +392,7 @@ export const cloneRawGitlabRepositoryRemote = async (compose: Compose) => { await refreshGitlabToken(gitlabId); const basePath = COMPOSE_PATH; const outputPath = join(basePath, appName, "code"); - const repoclone = `gitlab.com/${gitlabPathNamespace}.git`; + const repoclone = `${gitlabProvider.gitlabUrl.replace(/^https?:\/\//, "")}/${gitlabPathNamespace}.git`; const cloneUrl = `https://oauth2:${gitlabProvider?.accessToken}@${repoclone}`; try { const command = `