From d3c7657648df9d394eb986e2f3ad068e43e31cb1 Mon Sep 17 00:00:00 2001 From: mist8kengas Date: Mon, 25 Jul 2022 03:00:18 +0400 Subject: [PATCH] [Fix] Updated readCiCdExec error response --- package-lock.json | 4 ++-- package.json | 2 +- src/server/routes/webhook.ts | 9 ++++++--- src/utils/readCiCdExec.ts | 15 +++++++++++++-- 4 files changed, 22 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5531678..7cb8351 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "helmsman", - "version": "1.1.0", + "version": "1.1.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "helmsman", - "version": "1.1.0", + "version": "1.1.1", "license": "GPL-3.0", "dependencies": { "body-parser": "^1.20.0", diff --git a/package.json b/package.json index cce5fe6..93f32f4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "helmsman", - "version": "1.1.0", + "version": "1.1.1", "description": "CI/CD from GitHub to your own servers", "main": "dist/index.js", "scripts": { diff --git a/src/server/routes/webhook.ts b/src/server/routes/webhook.ts index a3e05d5..4d1b931 100644 --- a/src/server/routes/webhook.ts +++ b/src/server/routes/webhook.ts @@ -4,7 +4,10 @@ const router = Router(); import 'colors'; import { exec } from 'child_process'; import { createHmac, timingSafeEqual } from 'crypto'; -import readCiCdExec from '../../utils/readCiCdExec.js'; +import readCiCdExec, { + EXEC_RESPONSE, + EXEC_RESPONSE_MAP, +} from '../../utils/readCiCdExec.js'; import logger from '../../utils/logger.js'; // import .env @@ -57,8 +60,8 @@ router.post('/', (req, _, next) => { ); const repositoryBranchStr = `${payloadBody.repository.full_name}: ${payloadBody.ref}`; if (ciCdExec) { - if (ciCdExec == 'bad_config') { - const logMessage = `An error occurred while executing the ${githubEvent} command for "${repositoryBranchStr}" (${githubDelivery}): ${ciCdExec}`; + if (typeof ciCdExec != 'string') { + const logMessage = `An error occurred while executing the ${githubEvent} command for "${repositoryBranchStr}" (${githubDelivery}): ${EXEC_RESPONSE_MAP[ciCdExec]}`; console.error('[server:post]'.red, '/webhook'.gray, logMessage); logger(logMessage, 'error'); return next(500); diff --git a/src/utils/readCiCdExec.ts b/src/utils/readCiCdExec.ts index c28acda..5b9580f 100644 --- a/src/utils/readCiCdExec.ts +++ b/src/utils/readCiCdExec.ts @@ -1,11 +1,19 @@ import { readFileSync } from 'fs'; import logger from './logger.js'; +enum EXEC_RESPONSE { + BAD_CONFIG = 1 << 0, +} +const EXEC_RESPONSE_MAP: { [index: number]: string } = { + 1: 'bad_config', +}; +type execResponse = EXEC_RESPONSE; + export default function readCiCdExec( repository: string, ref: string, type: string -): string | undefined { +): string | EXEC_RESPONSE | undefined { const jsonPath = './var/config/ci_cd.json'; let ciCd = undefined; @@ -16,7 +24,7 @@ export default function readCiCdExec( const message = 'An error occured while trying to parse "./var/config/ci_cd.json", check for invalid syntax and run the program again. (Check error logs)'; console.log('[helmsman]'.red, message, error); - return 'bad_config'; + return EXEC_RESPONSE.BAD_CONFIG; } const [, branch] = /refs\/heads\/(.*)$/.exec(ref) || []; const repositoryBranch = `${repository}/${branch}`; @@ -29,3 +37,6 @@ export default function readCiCdExec( ? ciCd[repositoryBranch][type] : undefined; } + +export { EXEC_RESPONSE, EXEC_RESPONSE_MAP }; +export type { execResponse };