From 38f0546f0511bde68938c9150e5cfc9eec4eb096 Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Mon, 4 Apr 2022 11:27:23 +0200 Subject: [PATCH] fix: Gitlab & Github urls --- src/lib/importers/github.ts | 7 +++++-- src/lib/importers/gitlab.ts | 6 +++--- src/lib/queues/builder.ts | 1 + src/routes/applications/[id]/index.svelte | 2 +- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/lib/importers/github.ts b/src/lib/importers/github.ts index 64fae1fd6..1ab3ca90a 100644 --- a/src/lib/importers/github.ts +++ b/src/lib/importers/github.ts @@ -10,10 +10,13 @@ export default async function ({ workdir, githubAppId, repository, + apiUrl, + htmlUrl, branch, buildId }): Promise { try { + const url = htmlUrl.replace('https://', '').replace('http://', ''); await saveBuildLog({ line: 'GitHub importer started.', buildId, applicationId }); const { privateKey, appId, installationId } = await db.getUniqueGithubApp({ githubAppId }); const githubPrivateKey = privateKey.replace(/\\n/g, '\n').replace(/"/g, ''); @@ -27,7 +30,7 @@ export default async function ({ algorithm: 'RS256' }); const { token } = await got - .post(`https://api.github.com/app/installations/${installationId}/access_tokens`, { + .post(`${apiUrl}/app/installations/${installationId}/access_tokens`, { headers: { Authorization: `Bearer ${jwtToken}`, Accept: 'application/vnd.github.machine-man-preview+json' @@ -40,7 +43,7 @@ export default async function ({ applicationId }); await asyncExecShell( - `git clone -q -b ${branch} https://x-access-token:${token}@github.com/${repository}.git ${workdir}/ && cd ${workdir} && git submodule update --init --recursive && cd ..` + `git clone -q -b ${branch} https://x-access-token:${token}@${url}/${repository}.git ${workdir}/ && cd ${workdir} && git submodule update --init --recursive && cd ..` ); const { stdout: commit } = await asyncExecShell(`cd ${workdir}/ && git rev-parse HEAD`); return commit.replace('\n', ''); diff --git a/src/lib/importers/gitlab.ts b/src/lib/importers/gitlab.ts index fb07dcbf0..07bbf7954 100644 --- a/src/lib/importers/gitlab.ts +++ b/src/lib/importers/gitlab.ts @@ -1,16 +1,16 @@ import { asyncExecShell, saveBuildLog } from '$lib/common'; -import { ErrorHandler } from '$lib/database'; export default async function ({ applicationId, - debug, workdir, repodir, + htmlUrl, repository, branch, buildId, privateSshKey }): Promise { + const url = htmlUrl.replace('https://', '').replace('http://', ''); await saveBuildLog({ line: 'GitLab importer started.', buildId, applicationId }); await asyncExecShell(`echo '${privateSshKey}' > ${repodir}/id.rsa`); await asyncExecShell(`chmod 600 ${repodir}/id.rsa`); @@ -22,7 +22,7 @@ export default async function ({ }); await asyncExecShell( - `git clone -q -b ${branch} git@gitlab.com:${repository}.git --config core.sshCommand="ssh -q -i ${repodir}id.rsa -o StrictHostKeyChecking=no" ${workdir}/ && cd ${workdir}/ && git submodule update --init --recursive && cd ..` + `git clone -q -b ${branch} git@${url}:${repository}.git --config core.sshCommand="ssh -q -i ${repodir}id.rsa -o StrictHostKeyChecking=no" ${workdir}/ && cd ${workdir}/ && git submodule update --init --recursive && cd ..` ); const { stdout: commit } = await asyncExecShell(`cd ${workdir}/ && git rev-parse HEAD`); return commit.replace('\n', ''); diff --git a/src/lib/queues/builder.ts b/src/lib/queues/builder.ts index 9af28504c..0ef207f2a 100644 --- a/src/lib/queues/builder.ts +++ b/src/lib/queues/builder.ts @@ -117,6 +117,7 @@ export default async function (job) { branch, buildId, apiUrl: gitSource.apiUrl, + htmlUrl: gitSource.htmlUrl, projectId, deployKeyId: gitSource.gitlabApp?.deployKeyId || null, privateSshKey: decrypt(gitSource.gitlabApp?.privateSshKey) || null diff --git a/src/routes/applications/[id]/index.svelte b/src/routes/applications/[id]/index.svelte index b792a4cc3..4b7d6b497 100644 --- a/src/routes/applications/[id]/index.svelte +++ b/src/routes/applications/[id]/index.svelte @@ -128,7 +128,7 @@ await post(`/applications/${id}/check.json`, { fqdn: application.fqdn, forceSave }); await post(`/applications/${id}.json`, { ...application }); return window.location.reload(); - } catch (error) { + } catch ({ error }) { if (error?.startsWith('DNS not set')) { forceSave = true; }