Skip to content
Snippets Groups Projects
Commit db01ec74 authored by joel.vonderwe's avatar joel.vonderwe
Browse files

Add sonar project creation for exercises

parent 8c513c13
No related branches found
No related tags found
No related merge requests found
Pipeline #30982 canceled
...@@ -2,12 +2,9 @@ import express from 'express'; ...@@ -2,12 +2,9 @@ import express from 'express';
import GitlabRepository from '../shared/types/Gitlab/GitlabRepository'; import GitlabRepository from '../shared/types/Gitlab/GitlabRepository';
import logger from '../shared/logging/WinstonLogger'; import logger from '../shared/logging/WinstonLogger';
import GitlabManager from '../managers/GitlabManager'; import GitlabManager from '../managers/GitlabManager';
import axios, { AxiosError } from 'axios';
import { StatusCodes } from 'http-status-codes'; import { StatusCodes } from 'http-status-codes';
import DojoStatusCode from '../shared/types/Dojo/DojoStatusCode'; import DojoStatusCode from '../shared/types/Dojo/DojoStatusCode';
import SharedConfig from '../shared/config/SharedConfig'; import { AxiosError } from 'axios';
import * as https from 'https';
class GlobalHelper { class GlobalHelper {
async repositoryCreationError(message: string, error: unknown, req: express.Request, res: express.Response, gitlabError: DojoStatusCode, internalError: DojoStatusCode, repositoryToRemove?: GitlabRepository): Promise<void> { async repositoryCreationError(message: string, error: unknown, req: express.Request, res: express.Response, gitlabError: DojoStatusCode, internalError: DojoStatusCode, repositoryToRemove?: GitlabRepository): Promise<void> {
......
...@@ -169,7 +169,6 @@ class AssignmentRoutes implements RoutesManager { ...@@ -169,7 +169,6 @@ class AssignmentRoutes implements RoutesManager {
try { try {
sonarProject = await SonarManager.createProjectFromGitlab(repository.id); sonarProject = await SonarManager.createProjectFromGitlab(repository.id);
} catch ( error ) { } catch ( error ) {
console.log(JSON.stringify(error));
logger.error("Sonar project creation error"); logger.error("Sonar project creation error");
logger.error(error); logger.error(error);
return GlobalHelper.repositoryCreationError('Sonar error', error, req, res, DojoStatusCode.ASSIGNMENT_CREATION_SONAR_ERROR, DojoStatusCode.ASSIGNMENT_CREATION_INTERNAL_ERROR, repository); return GlobalHelper.repositoryCreationError('Sonar error', error, req, res, DojoStatusCode.ASSIGNMENT_CREATION_SONAR_ERROR, DojoStatusCode.ASSIGNMENT_CREATION_INTERNAL_ERROR, repository);
......
...@@ -31,6 +31,8 @@ import DojoStatusCode from '../shared/types/Dojo/DojoStatusCode'; ...@@ -31,6 +31,8 @@ import DojoStatusCode from '../shared/types/Dojo/DojoStatusCode';
import GlobalHelper from '../helpers/GlobalHelper'; import GlobalHelper from '../helpers/GlobalHelper';
import { IFileDirStat } from '../shared/helpers/recursiveFilesStats/RecursiveFilesStats'; import { IFileDirStat } from '../shared/helpers/recursiveFilesStats/RecursiveFilesStats';
import ExerciseManager from '../managers/ExerciseManager'; import ExerciseManager from '../managers/ExerciseManager';
import SonarProjectCreation from '../shared/types/Sonar/SonarProjectCreation';
import SonarManager from '../managers/SonarManager';
class ExerciseRoutes implements RoutesManager { class ExerciseRoutes implements RoutesManager {
...@@ -167,6 +169,18 @@ class ExerciseRoutes implements RoutesManager { ...@@ -167,6 +169,18 @@ class ExerciseRoutes implements RoutesManager {
} }
})); }));
// Create Sonar project
let sonarProject: SonarProjectCreation | undefined = undefined;
if (assignment.useSonar) {
try {
sonarProject = await SonarManager.createProjectFromGitlab(repository.id);
} catch ( error ) {
logger.error("Sonar project creation error");
logger.error(error);
return GlobalHelper.repositoryCreationError('Sonar error', error, req, res, DojoStatusCode.EXERCISE_CREATION_SONAR_ERROR, DojoStatusCode.ASSIGNMENT_CREATION_INTERNAL_ERROR, repository);
}
}
const exercise: Exercise = await db.exercise.create({ const exercise: Exercise = await db.exercise.create({
data: { data: {
id : exerciseId, id : exerciseId,
...@@ -178,6 +192,8 @@ class ExerciseRoutes implements RoutesManager { ...@@ -178,6 +192,8 @@ class ExerciseRoutes implements RoutesManager {
gitlabCreationInfo: repository as unknown as Prisma.JsonObject, gitlabCreationInfo: repository as unknown as Prisma.JsonObject,
gitlabLastInfo : repository as unknown as Prisma.JsonObject, gitlabLastInfo : repository as unknown as Prisma.JsonObject,
gitlabLastInfoDate: new Date(), gitlabLastInfoDate: new Date(),
sonarKey : sonarProject?.project.key,
sonarCreationInfo : sonarProject?.project,
members : { members : {
connectOrCreate: [ ...params.members.map(gitlabUser => { connectOrCreate: [ ...params.members.map(gitlabUser => {
return { return {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment