fix: Gitlab & Github urls

This commit is contained in:
Andras Bacsai 2022-04-04 11:27:23 +02:00
parent 8cb679711d
commit 38f0546f05
4 changed files with 10 additions and 6 deletions

View File

@ -10,10 +10,13 @@ export default async function ({
workdir, workdir,
githubAppId, githubAppId,
repository, repository,
apiUrl,
htmlUrl,
branch, branch,
buildId buildId
}): Promise<any> { }): Promise<any> {
try { try {
const url = htmlUrl.replace('https://', '').replace('http://', '');
await saveBuildLog({ line: 'GitHub importer started.', buildId, applicationId }); await saveBuildLog({ line: 'GitHub importer started.', buildId, applicationId });
const { privateKey, appId, installationId } = await db.getUniqueGithubApp({ githubAppId }); const { privateKey, appId, installationId } = await db.getUniqueGithubApp({ githubAppId });
const githubPrivateKey = privateKey.replace(/\\n/g, '\n').replace(/"/g, ''); const githubPrivateKey = privateKey.replace(/\\n/g, '\n').replace(/"/g, '');
@ -27,7 +30,7 @@ export default async function ({
algorithm: 'RS256' algorithm: 'RS256'
}); });
const { token } = await got const { token } = await got
.post(`https://api.github.com/app/installations/${installationId}/access_tokens`, { .post(`${apiUrl}/app/installations/${installationId}/access_tokens`, {
headers: { headers: {
Authorization: `Bearer ${jwtToken}`, Authorization: `Bearer ${jwtToken}`,
Accept: 'application/vnd.github.machine-man-preview+json' Accept: 'application/vnd.github.machine-man-preview+json'
@ -40,7 +43,7 @@ export default async function ({
applicationId applicationId
}); });
await asyncExecShell( 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`); const { stdout: commit } = await asyncExecShell(`cd ${workdir}/ && git rev-parse HEAD`);
return commit.replace('\n', ''); return commit.replace('\n', '');

View File

@ -1,16 +1,16 @@
import { asyncExecShell, saveBuildLog } from '$lib/common'; import { asyncExecShell, saveBuildLog } from '$lib/common';
import { ErrorHandler } from '$lib/database';
export default async function ({ export default async function ({
applicationId, applicationId,
debug,
workdir, workdir,
repodir, repodir,
htmlUrl,
repository, repository,
branch, branch,
buildId, buildId,
privateSshKey privateSshKey
}): Promise<any> { }): Promise<any> {
const url = htmlUrl.replace('https://', '').replace('http://', '');
await saveBuildLog({ line: 'GitLab importer started.', buildId, applicationId }); await saveBuildLog({ line: 'GitLab importer started.', buildId, applicationId });
await asyncExecShell(`echo '${privateSshKey}' > ${repodir}/id.rsa`); await asyncExecShell(`echo '${privateSshKey}' > ${repodir}/id.rsa`);
await asyncExecShell(`chmod 600 ${repodir}/id.rsa`); await asyncExecShell(`chmod 600 ${repodir}/id.rsa`);
@ -22,7 +22,7 @@ export default async function ({
}); });
await asyncExecShell( 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`); const { stdout: commit } = await asyncExecShell(`cd ${workdir}/ && git rev-parse HEAD`);
return commit.replace('\n', ''); return commit.replace('\n', '');

View File

@ -117,6 +117,7 @@ export default async function (job) {
branch, branch,
buildId, buildId,
apiUrl: gitSource.apiUrl, apiUrl: gitSource.apiUrl,
htmlUrl: gitSource.htmlUrl,
projectId, projectId,
deployKeyId: gitSource.gitlabApp?.deployKeyId || null, deployKeyId: gitSource.gitlabApp?.deployKeyId || null,
privateSshKey: decrypt(gitSource.gitlabApp?.privateSshKey) || null privateSshKey: decrypt(gitSource.gitlabApp?.privateSshKey) || null

View File

@ -128,7 +128,7 @@
await post(`/applications/${id}/check.json`, { fqdn: application.fqdn, forceSave }); await post(`/applications/${id}/check.json`, { fqdn: application.fqdn, forceSave });
await post(`/applications/${id}.json`, { ...application }); await post(`/applications/${id}.json`, { ...application });
return window.location.reload(); return window.location.reload();
} catch (error) { } catch ({ error }) {
if (error?.startsWith('DNS not set')) { if (error?.startsWith('DNS not set')) {
forceSave = true; forceSave = true;
} }