Skip to content
Snippets Groups Projects
Commit 8f98eaac authored by joel.vonderwe's avatar joel.vonderwe Committed by michael.minelli
Browse files

Implement sonar for backend

parent 162d44ac
No related branches found
No related tags found
No related merge requests found
...@@ -743,6 +743,45 @@ ...@@ -743,6 +743,45 @@
"node": ">=18.20.0" "node": ">=18.20.0"
} }
}, },
"node_modules/@gitbeaker/core": {
"version": "40.0.3",
"resolved": "https://registry.npmjs.org/@gitbeaker/core/-/core-40.0.3.tgz",
"integrity": "sha512-MzeY4oCtoa9zmPIkQIdC2KU8cGmHIXwnAi0L6jjjouqjy6kcA4BydZf8W5Xsj27Rw5iiyhfj8YC1/O3CgrzvCQ==",
"dependencies": {
"@gitbeaker/requester-utils": "^40.0.3",
"qs": "^6.11.2",
"xcase": "^2.0.1"
},
"engines": {
"node": ">=18.0.0"
}
},
"node_modules/@gitbeaker/requester-utils": {
"version": "40.0.3",
"resolved": "https://registry.npmjs.org/@gitbeaker/requester-utils/-/requester-utils-40.0.3.tgz",
"integrity": "sha512-L8JpuMIsvXTHfu/2wXzkc5QyfQJSWg4XyEPStHq1ig5SAcbxxqbBoe8ed27eUXLah+PcGrPInMK4cCMxhQm41g==",
"dependencies": {
"picomatch-browser": "^2.2.6",
"qs": "^6.11.2",
"rate-limiter-flexible": "^4.0.0",
"xcase": "^2.0.1"
},
"engines": {
"node": ">=18.0.0"
}
},
"node_modules/@gitbeaker/rest": {
"version": "40.0.3",
"resolved": "https://registry.npmjs.org/@gitbeaker/rest/-/rest-40.0.3.tgz",
"integrity": "sha512-ihaA0GX3yCo4oUWbISkcjFMIw+WxDAC9L+bEYq2irz4wpv/0EpAU/0jKjggPzY4cGWL9VAyPhew77VeACv4YWw==",
"dependencies": {
"@gitbeaker/core": "^40.0.3",
"@gitbeaker/requester-utils": "^40.0.3"
},
"engines": {
"node": ">=18.0.0"
}
},
"node_modules/@humanwhocodes/config-array": { "node_modules/@humanwhocodes/config-array": {
"version": "0.13.0", "version": "0.13.0",
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz",
...@@ -4650,6 +4689,11 @@ ...@@ -4650,6 +4689,11 @@
"integrity": "sha512-2/dGHpDFpeA0+755oUkW+EKyklqLS9lu0go9pDsbhqQjZcxfRyJ6LA4JI0+HAdZ2bemD/oOjUeZQB2lCZqXQfQ==", "integrity": "sha512-2/dGHpDFpeA0+755oUkW+EKyklqLS9lu0go9pDsbhqQjZcxfRyJ6LA4JI0+HAdZ2bemD/oOjUeZQB2lCZqXQfQ==",
"license": "ISC" "license": "ISC"
}, },
"node_modules/rate-limiter-flexible": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/rate-limiter-flexible/-/rate-limiter-flexible-4.0.1.tgz",
"integrity": "sha512-2/dGHpDFpeA0+755oUkW+EKyklqLS9lu0go9pDsbhqQjZcxfRyJ6LA4JI0+HAdZ2bemD/oOjUeZQB2lCZqXQfQ=="
},
"node_modules/rc": { "node_modules/rc": {
"version": "1.2.8", "version": "1.2.8",
"resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
...@@ -4912,6 +4956,22 @@ ...@@ -4912,6 +4956,22 @@
"node": ">=10" "node": ">=10"
} }
}, },
"node_modules/set-function-length": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
"integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
"dependencies": {
"define-data-property": "^1.1.4",
"es-errors": "^1.3.0",
"function-bind": "^1.1.2",
"get-intrinsic": "^1.2.4",
"gopd": "^1.0.1",
"has-property-descriptors": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/shebang-command": { "node_modules/shebang-command": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
......
...@@ -8,9 +8,9 @@ ...@@ -8,9 +8,9 @@
"bin" : { "bin" : {
"dirmanager": "./dist/app.js" "dirmanager": "./dist/app.js"
}, },
"pkg" : { "pkg": {
"scripts": [], "scripts": [],
"assets" : [ "assets": [
"node_modules/axios/dist/node/axios.cjs", "node_modules/axios/dist/node/axios.cjs",
"config.env", "config.env",
".env", ".env",
......
...@@ -40,7 +40,7 @@ import SharedAssignmentHelper from './shared/helpers/Dojo/SharedAssignmen ...@@ -40,7 +40,7 @@ import SharedAssignmentHelper from './shared/helpers/Dojo/SharedAssignmen
success ? resolve() : reject(); success ? resolve() : reject();
}); });
assignmentValidator.run(); assignmentValidator.run(false, true);
}); });
} catch ( error ) { /* empty */ } } catch ( error ) { /* empty */ }
......
...@@ -13,19 +13,26 @@ class Config { ...@@ -13,19 +13,26 @@ class Config {
project: string; resultsVolume: string; resultsDojo: string; resultsExercise: string; project: string; resultsVolume: string; resultsDojo: string; resultsExercise: string;
}; };
public readonly assignment: { public readonly assignment!: {
name: string; secret: string; name: string; secret: string;
}; };
public readonly dockerhub: { public readonly dockerhub!: {
repositories: { repositories: {
assignmentChecker: string assignmentChecker: string
} }
}; };
public readonly assignment!: {
name: string; secret: string;
};
constructor() { } constructor() { }
async init() { async init() {
this.appName = process.env.APP_NAME || '';
const apiUrl = process.env.API_URL ?? ''; const apiUrl = process.env.API_URL ?? '';
await ClientsSharedConfig.init(apiUrl); await ClientsSharedConfig.init(apiUrl);
...@@ -53,6 +60,11 @@ class Config { ...@@ -53,6 +60,11 @@ class Config {
assignmentChecker: getEnvVar('DOCKERHUB_ASSIGNMENT_CHECKER_REPOSITORY', '') assignmentChecker: getEnvVar('DOCKERHUB_ASSIGNMENT_CHECKER_REPOSITORY', '')
} }
}; };
this.assignment = {
name : process.env.DOJO_ASSIGNMENT_NAME || '',
secret: process.env.DOJO_ASSIGNMENT_SECRET || ''
};
} }
private resetResultsVolume(): void { private resetResultsVolume(): void {
......
...@@ -36,4 +36,6 @@ RUN apk add git ...@@ -36,4 +36,6 @@ RUN apk add git
ARG BUILD_WORKDIR ARG BUILD_WORKDIR
COPY --from=builder ${BUILD_WORKDIR}/bin/app /usr/local/bin/dojo_assignment_checker COPY --from=builder ${BUILD_WORKDIR}/bin/app /usr/local/bin/dojo_assignment_checker
\ No newline at end of file
ADD sonar/ /sonar/
FROM gcc:14
ARG SONAR_HOST_URL=https://isc-sonar.edu.hesge.ch
RUN apt update && apt install -y curl unzip build-essential make g++ clang && apt clean
# Download sonar tools
RUN mkdir -p /sonar && \
curl -sSLo sonar-scanner.zip https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-5.0.1.3006-linux.zip && \
unzip -o sonar-scanner.zip -d /sonar && \
mv /sonar/sonar-scanner-5.0.1.3006-linux/* /sonar/ && \
ln -s /sonar/bin/sonar-scanner /usr/local/bin/sonar-scanner && \
curl --insecure -sSLo build-wrapper-linux-x86.zip "$SONAR_HOST_URL/static/cpp/build-wrapper-linux-x86.zip" && \
unzip -o build-wrapper-linux-x86.zip -d /tmp && \
mv /tmp/build-wrapper-linux-x86/* /usr/local/bin/ && \
rm build-wrapper-linux-x86.zip sonar-scanner.zip
COPY ./cacerts /tmp/cacerts
ENV SONAR_SCANNER_OPTS="-Djavax.net.ssl.trustStore=/tmp/cacerts"
RUN mkdir -p /usr/src && \
useradd -m sonar && \
chown sonar:sonar /usr/src && \
chmod 744 /tmp/cacerts
USER sonar
WORKDIR /usr/src
File added
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment