diff --git a/ExpressAPI/src/config/Config.ts b/ExpressAPI/src/config/Config.ts index beab7cc8a1cc89ed8e148766c2e1207d62a1ec8d..e3a1b78e2926f988b8a6d61675ea78f570987bc3 100644 --- a/ExpressAPI/src/config/Config.ts +++ b/ExpressAPI/src/config/Config.ts @@ -65,7 +65,8 @@ class Config { this.requestClientValidation = JSON5.parse(process.env.REQUEST_CLIENT_VALIDATION || '{"version": {}}'); this.jwtConfig = { - secret: process.env.JWT_SECRET_KEY || '', expiresIn: Number(process.env.SESSION_TIMEOUT || 0) + secret : process.env.JWT_SECRET_KEY || '', + expiresIn: Number(process.env.SESSION_TIMEOUT || 0) }; this.login = { @@ -77,29 +78,49 @@ class Config { }; this.gitlab = { - urls : JSON5.parse(process.env.GITLAB_URLS || '[]'), account: { - id: Number(process.env.GITLAB_DOJO_ACCOUNT_ID || 0), username: process.env.GITLAB_DOJO_ACCOUNT_USERNAME || '', token: process.env.GITLAB_DOJO_ACCOUNT_TOKEN || '' - }, repository: { + urls : JSON5.parse(process.env.GITLAB_URLS || '[]'), + account : { + id : Number(process.env.GITLAB_DOJO_ACCOUNT_ID || 0), + username: process.env.GITLAB_DOJO_ACCOUNT_USERNAME || '', + token : process.env.GITLAB_DOJO_ACCOUNT_TOKEN || '' + }, + repository: { timeoutAfterCreation: Number(process.env.GITLAB_REPOSITORY_CREATION_TIMEOUT || 5000) - }, group : { - root: Number(process.env.GITLAB_GROUP_ROOT_ID || 0), templates: Number(process.env.GITLAB_GROUP_TEMPLATES_ID || 0), assignments: Number(process.env.GITLAB_GROUP_ASSIGNMENTS_ID || 0), exercises: Number(process.env.GITLAB_GROUP_EXERCISES_ID || 0) - }, badges : { + }, + group : { + root : Number(process.env.GITLAB_GROUP_ROOT_ID || 0), + templates : Number(process.env.GITLAB_GROUP_TEMPLATES_ID || 0), + assignments: Number(process.env.GITLAB_GROUP_ASSIGNMENTS_ID || 0), + exercises : Number(process.env.GITLAB_GROUP_EXERCISES_ID || 0) + }, + badges : { pipeline: { - link: process.env.GITLAB_BADGE_PIPELINE_LINK || '', imageUrl: process.env.GITLAB_BADGE_PIPELINE_IMAGE_URL || '' + link : process.env.GITLAB_BADGE_PIPELINE_LINK || '', + imageUrl: process.env.GITLAB_BADGE_PIPELINE_IMAGE_URL || '' } } }; this.assignment = { - default : { - description: process.env.ASSIGNMENT_DEFAULT_DESCRIPTION?.convertWithEnvVars() ?? '', initReadme: process.env.ASSIGNMENT_DEFAULT_INIT_README?.toBoolean() ?? false, sharedRunnersEnabled: process.env.ASSIGNMENT_DEFAULT_SHARED_RUNNERS_ENABLED?.toBoolean() ?? true, visibility: process.env.ASSIGNMENT_DEFAULT_VISIBILITY || GitlabVisibility.PRIVATE, wikiEnabled: process.env.ASSIGNMENT_DEFAULT_WIKI_ENABLED?.toBoolean() ?? false, template: process.env.ASSIGNMENT_DEFAULT_TEMPLATE?.replace('{{USERNAME}}', this.gitlab.account.username).replace('{{TOKEN}}', this.gitlab.account.token) ?? '' - }, baseFiles: JSON5.parse(process.env.ASSIGNMENT_BASE_FILES || '[]'), filename: process.env.ASSIGNMENT_FILENAME || '' + default : { + description : process.env.ASSIGNMENT_DEFAULT_DESCRIPTION?.convertWithEnvVars() ?? '', + initReadme : process.env.ASSIGNMENT_DEFAULT_INIT_README?.toBoolean() ?? false, + sharedRunnersEnabled: process.env.ASSIGNMENT_DEFAULT_SHARED_RUNNERS_ENABLED?.toBoolean() ?? true, + visibility : process.env.ASSIGNMENT_DEFAULT_VISIBILITY || GitlabVisibility.PRIVATE, + wikiEnabled : process.env.ASSIGNMENT_DEFAULT_WIKI_ENABLED?.toBoolean() ?? false, + template : process.env.ASSIGNMENT_DEFAULT_TEMPLATE?.replace('{{USERNAME}}', this.gitlab.account.username).replace('{{TOKEN}}', this.gitlab.account.token) ?? '' + }, + baseFiles: JSON5.parse(process.env.ASSIGNMENT_BASE_FILES || '[]'), + filename : process.env.ASSIGNMENT_FILENAME || '' }; this.exercise = { - maxSameName: Number(process.env.EXERCISE_MAX_SAME_NAME || 0), resultsFolder: process.env.EXERCISE_RESULTS_FOLDER?.convertWithEnvVars() ?? '', pipelineResultsFolder: process.env.EXERCISE_PIPELINE_RESULTS_FOLDER ?? '', //Do not use convertWithEnvVars() because it is used in the exercise creation and muste be interpreted at exercise runtime - default : { - description: process.env.EXERCISE_DEFAULT_DESCRIPTION?.convertWithEnvVars() ?? '', visibility: process.env.EXERCISE_DEFAULT_VISIBILITY || GitlabVisibility.PRIVATE + maxSameName : Number(process.env.EXERCISE_MAX_SAME_NAME || 0), + resultsFolder : process.env.EXERCISE_RESULTS_FOLDER?.convertWithEnvVars() ?? '', + pipelineResultsFolder: process.env.EXERCISE_PIPELINE_RESULTS_FOLDER ?? '', //Do not use convertWithEnvVars() because it is used in the exercise creation and muste be interpreted at exercise runtime + default : { + description: process.env.EXERCISE_DEFAULT_DESCRIPTION?.convertWithEnvVars() ?? '', + visibility : process.env.EXERCISE_DEFAULT_VISIBILITY || GitlabVisibility.PRIVATE } }; }