This commit is contained in:
MichalFidor
2024-01-12 10:28:42 +01:00
parent 1b6309b3b7
commit ef1b11cf11
4 changed files with 227 additions and 12 deletions
+8 -8
View File
@@ -6,14 +6,14 @@ export class GitHubRepoUtils {
private baseURL = 'https://api.github.com';
private token: string;
private repo: string;
private subFolderName: string;
private subfolderName: string;
constructor(token: string, repo: string) {
this.token = token;
this.repo = repo;
}
async downloadRepoAndUnpackRepository(owner: string, branch = 'main'): Promise<void> {
async downloadAndUnpackRepository(owner: string, branch = 'main'): Promise<void> {
const url = `${this.baseURL}/repos/${owner}/${this.repo}/zipball/${branch}`;
const headers = {
Authorization: `token ${this.token}`,
@@ -26,10 +26,10 @@ export class GitHubRepoUtils {
responseType: 'arraybuffer',
headers,
});
const repoZipped = new AdmZip(response.data);
this.subFolderName = (repoZipped.getEntries().find(entry => entry.entryName.includes(owner))).entryName;
const zippedRepo = new AdmZip(response.data);
this.subfolderName = (zippedRepo.getEntries().find(entry => entry.entryName.includes(owner))).entryName;
new AdmZip(response.data).extractAllTo(this.repo, /** overwrite **/ true);
new AdmZip(response.data).extractAllTo(this.repo, true);
} catch (error) {
throw new Error(`Failed to download repository: ${error}`);
@@ -40,12 +40,12 @@ export class GitHubRepoUtils {
const pathToZip = path.resolve(`${process.cwd()}/${this.repo}`, `${appName}.zip`);
try {
const zip = new AdmZip();
zip.addLocalFolder(`${process.cwd()}/${this.repo}/${this.subFolderName}${appName}`);
zip.addLocalFolder(`${process.cwd()}/${this.repo}/${this.subfolderName}${appName}`);
await zip.writeZipPromise(pathToZip);
return pathToZip;
} catch (e) {
console.log(`Error during zipping app ${e}`)
throw Error(`Error during zipping app ${e}`)
}
return pathToZip;
}
}
+1 -2
View File
@@ -98,7 +98,6 @@ async function healthCheck(nameService: string) {
*/
async function getApplications(): Promise<{ list: { entries: any[] } }> {
const url = `${args.host}/deployment-service/v1/applications`;
logger.info(url)
const pathParams = {};
const queryParams = {};
const headerParams = {};
@@ -501,7 +500,7 @@ async function checkIfAppIsReleased(missingApps: any[], envs: any) {
let noError = true;
const gitHubRepoUtils = new GitHubRepoUtils(envs.ghToken, envs.appsRepository);
await gitHubRepoUtils.downloadRepoAndUnpackRepository('HylandSoftware', envs.branch);
await gitHubRepoUtils.downloadAndUnpackRepository('HylandSoftware', envs.branch);
for (let i = 0; i < missingApps.length; i++) {
noError = true;
+216 -1
View File
@@ -156,7 +156,8 @@
"tsconfig-paths": "^4.1.1",
"typescript": "4.7.4",
"webdriver-manager": "12.1.9",
"webpack": "^5.88.2"
"webpack": "^5.88.2",
"webpack-cli": "^5.1.2"
},
"engines": {
"node": ">=6.0.0"
@@ -24554,6 +24555,50 @@
"@xtuc/long": "4.2.2"
}
},
"node_modules/@webpack-cli/configtest": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz",
"integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==",
"dev": true,
"engines": {
"node": ">=14.15.0"
},
"peerDependencies": {
"webpack": "5.x.x",
"webpack-cli": "5.x.x"
}
},
"node_modules/@webpack-cli/info": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz",
"integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==",
"dev": true,
"engines": {
"node": ">=14.15.0"
},
"peerDependencies": {
"webpack": "5.x.x",
"webpack-cli": "5.x.x"
}
},
"node_modules/@webpack-cli/serve": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz",
"integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==",
"dev": true,
"engines": {
"node": ">=14.15.0"
},
"peerDependencies": {
"webpack": "5.x.x",
"webpack-cli": "5.x.x"
},
"peerDependenciesMeta": {
"webpack-dev-server": {
"optional": true
}
}
},
"node_modules/@wry/context": {
"version": "0.7.3",
"resolved": "https://registry.npmjs.org/@wry/context/-/context-0.7.3.tgz",
@@ -30595,6 +30640,18 @@
"node": ">=6"
}
},
"node_modules/envinfo": {
"version": "7.11.0",
"resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.0.tgz",
"integrity": "sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==",
"dev": true,
"bin": {
"envinfo": "dist/cli.js"
},
"engines": {
"node": ">=4"
}
},
"node_modules/err-code": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz",
@@ -34449,6 +34506,89 @@
"node": ">=8"
}
},
"node_modules/import-local": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz",
"integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==",
"dev": true,
"dependencies": {
"pkg-dir": "^4.2.0",
"resolve-cwd": "^3.0.0"
},
"bin": {
"import-local-fixture": "fixtures/cli.js"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/import-local/node_modules/find-up": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
"integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
"dev": true,
"dependencies": {
"locate-path": "^5.0.0",
"path-exists": "^4.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/import-local/node_modules/locate-path": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
"integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
"dev": true,
"dependencies": {
"p-locate": "^4.1.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/import-local/node_modules/p-limit": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
"integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"dev": true,
"dependencies": {
"p-try": "^2.0.0"
},
"engines": {
"node": ">=6"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/import-local/node_modules/p-locate": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
"integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
"dev": true,
"dependencies": {
"p-limit": "^2.2.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/import-local/node_modules/pkg-dir": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
"integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
"dev": true,
"dependencies": {
"find-up": "^4.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/import-meta-resolve": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-3.0.0.tgz",
@@ -47159,6 +47299,18 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/resolve-cwd": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
"integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
"dev": true,
"dependencies": {
"resolve-from": "^5.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/resolve-from": {
"version": "5.0.0",
"license": "MIT",
@@ -52601,6 +52753,69 @@
}
}
},
"node_modules/webpack-cli": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.2.tgz",
"integrity": "sha512-RI4KfVpjX1qdy5Sq4A1ycCxgTZ2rLLtrTJDBYh3A3DpSSDZ+WP4oBlj/CuD70oXz4wB1WqVjg+lMxH/MPYWb5g==",
"dev": true,
"dependencies": {
"@discoveryjs/json-ext": "^0.5.0",
"@webpack-cli/configtest": "^2.1.1",
"@webpack-cli/info": "^2.0.2",
"@webpack-cli/serve": "^2.0.5",
"colorette": "^2.0.14",
"commander": "^10.0.1",
"cross-spawn": "^7.0.3",
"envinfo": "^7.7.3",
"fastest-levenshtein": "^1.0.12",
"import-local": "^3.0.2",
"interpret": "^3.1.1",
"rechoir": "^0.8.0",
"webpack-merge": "^5.7.3"
},
"bin": {
"webpack-cli": "bin/cli.js"
},
"engines": {
"node": ">=14.15.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/webpack"
},
"peerDependencies": {
"webpack": "5.x.x"
},
"peerDependenciesMeta": {
"@webpack-cli/generators": {
"optional": true
},
"webpack-bundle-analyzer": {
"optional": true
},
"webpack-dev-server": {
"optional": true
}
}
},
"node_modules/webpack-cli/node_modules/commander": {
"version": "10.0.1",
"resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
"integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
"dev": true,
"engines": {
"node": ">=14"
}
},
"node_modules/webpack-cli/node_modules/interpret": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz",
"integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==",
"dev": true,
"engines": {
"node": ">=10.13.0"
}
},
"node_modules/webpack-dev-middleware": {
"version": "5.3.3",
"dev": true,
+2 -1
View File
@@ -206,7 +206,8 @@
"tsconfig-paths": "^4.1.1",
"typescript": "4.7.4",
"webdriver-manager": "12.1.9",
"webpack": "^5.88.2"
"webpack": "^5.88.2",
"webpack-cli": "^5.1.2"
},
"license": "Apache-2.0",
"bundlesize": [