diff --git a/AssignmentChecker/package-lock.json b/AssignmentChecker/package-lock.json index 03a6c60547eaea03a3873f80cb79d6e997c4cf84..1c6d4518ed1c096cbeb28313cf2274c2abb51e42 100644 --- a/AssignmentChecker/package-lock.json +++ b/AssignmentChecker/package-lock.json @@ -9,6 +9,7 @@ "version": "3.4.0", "license": "AGPLv3", "dependencies": { + "@gitbeaker/rest": "^40.0.3", "axios": "^1.6.5", "boxen": "^5.1.2", "chalk": "^4.1.2", @@ -252,6 +253,45 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.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": { "version": "0.11.14", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", @@ -1365,6 +1405,24 @@ "node": ">=0.10.0" } }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -1690,6 +1748,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -1835,6 +1909,25 @@ "is-arrayish": "^0.2.1" } }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -2398,7 +2491,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -2429,6 +2521,24 @@ "node": "6.* || 8.* || >= 10.*" } }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", @@ -2538,6 +2648,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -2566,11 +2687,43 @@ "node": ">=8" } }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/hasown": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "dev": true, "dependencies": { "function-bind": "^1.1.2" }, @@ -3363,6 +3516,14 @@ } } }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/object-treeify": { "version": "1.1.33", "resolved": "https://registry.npmjs.org/object-treeify/-/object-treeify-1.1.33.tgz", @@ -3610,6 +3771,17 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/picomatch-browser": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/picomatch-browser/-/picomatch-browser-2.2.6.tgz", + "integrity": "sha512-0ypsOQt9D4e3hziV8O4elD9uN0z/jtUEfxVRtNaAAtXIyUx9m/SzlO020i8YNL2aL/E6blOvvHQcin6HZlFy/w==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/pkg": { "version": "5.8.1", "resolved": "https://registry.npmjs.org/pkg/-/pkg-5.8.1.tgz", @@ -3768,6 +3940,20 @@ "node": ">=6" } }, + "node_modules/qs": { + "version": "6.12.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.1.tgz", + "integrity": "sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -3793,6 +3979,11 @@ "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==" }, + "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": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -4014,6 +4205,22 @@ "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": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -4035,6 +4242,23 @@ "node": ">=8" } }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", @@ -4633,6 +4857,11 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, + "node_modules/xcase": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/xcase/-/xcase-2.0.1.tgz", + "integrity": "sha512-UmFXIPU+9Eg3E9m/728Bii0lAIuoc+6nbrNUKaRPJOFp91ih44qqGlWtxMB6kXFrRD6po+86ksHM5XHCfk6iPw==" + }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", diff --git a/AssignmentChecker/package.json b/AssignmentChecker/package.json index 256854ea321cb74f74e9f1e51f536aa599a64d0e..dad35e5407a89662ccf1968b9b7d2d9754c4ff30 100644 --- a/AssignmentChecker/package.json +++ b/AssignmentChecker/package.json @@ -1,16 +1,16 @@ { - "name" : "dojo_assignment_checker", - "description" : "App that check an assignment of the Dojo project", - "version" : "3.4.0", - "license" : "AGPLv3", - "author" : "Michaël Minelli <dojo@minelli.me>", - "main" : "dist/app.js", - "bin" : { + "name": "dojo_assignment_checker", + "description": "App that check an assignment of the Dojo project", + "version": "3.4.0", + "license": "AGPLv3", + "author": "Michaël Minelli <dojo@minelli.me>", + "main": "dist/app.js", + "bin": { "dirmanager": "./dist/app.js" }, - "pkg" : { + "pkg": { "scripts": [], - "assets" : [ + "assets": [ "node_modules/axios/dist/node/axios.cjs", ".env", "assets/**/*" @@ -20,42 +20,43 @@ "node18-linux-x64" ] }, - "scripts" : { + "scripts": { "dotenv:build": "npx dotenv-vault local build", - "lint" : "npx eslint .", - "genversion" : "npx genversion -s -e src/config/Version.ts", - "build" : "npm run genversion; npx tsc", - "start:dev" : "npm run genversion; npm run lint; npx ts-node src/app.ts", - "test" : "echo \"Error: no test specified\" && exit 1" + "lint": "npx eslint .", + "genversion": "npx genversion -s -e src/config/Version.ts", + "build": "npm run genversion; npx tsc", + "start:dev": "npm run genversion; npm run lint; npx ts-node src/app.ts", + "test": "echo \"Error: no test specified\" && exit 1" }, - "dependencies" : { - "axios" : "^1.6.5", - "boxen" : "^5.1.2", - "chalk" : "^4.1.2", - "dotenv" : "^16.3.1", - "dotenv-expand" : "^10.0.0", - "fs-extra" : "^11.2.0", - "http-status-codes" : "^2.3.0", - "json5" : "^2.2.3", - "ora" : "^5.4.1", - "tar-stream" : "^3.1.6", - "winston" : "^3.11.0", - "yaml" : "^2.3.4", - "zod" : "^3.22.4", + "dependencies": { + "@gitbeaker/rest": "^40.0.3", + "axios": "^1.6.5", + "boxen": "^5.1.2", + "chalk": "^4.1.2", + "dotenv": "^16.3.1", + "dotenv-expand": "^10.0.0", + "fs-extra": "^11.2.0", + "http-status-codes": "^2.3.0", + "json5": "^2.2.3", + "ora": "^5.4.1", + "tar-stream": "^3.1.6", + "winston": "^3.11.0", + "yaml": "^2.3.4", + "zod": "^3.22.4", "zod-validation-error": "^3.0.0" }, "devDependencies": { - "@types/fs-extra" : "^11.0.4", - "@types/js-yaml" : "^4.0.9", - "@types/node" : "^18.19.8", - "@types/tar-stream" : "^3.1.3", + "@types/fs-extra": "^11.0.4", + "@types/js-yaml": "^4.0.9", + "@types/node": "^18.19.8", + "@types/tar-stream": "^3.1.3", "@typescript-eslint/eslint-plugin": "^6.19.0", - "@typescript-eslint/parser" : "^6.19.0", - "dotenv-vault" : "^1.25.0", - "genversion" : "^3.2.0", - "pkg" : "^5.8.1", - "tiny-typed-emitter" : "^2.1.0", - "ts-node" : "^10.9.2", - "typescript" : "^5.3.3" + "@typescript-eslint/parser": "^6.19.0", + "dotenv-vault": "^1.25.0", + "genversion": "^3.2.0", + "pkg": "^5.8.1", + "tiny-typed-emitter": "^2.1.0", + "ts-node": "^10.9.2", + "typescript": "^5.3.3" } } diff --git a/AssignmentChecker/src/app.ts b/AssignmentChecker/src/app.ts index ce2def49eb38eb2c3986d8d373597ebbae29f8ee..c37b00fc6c611738a141f6dd56679593dffa5837 100644 --- a/AssignmentChecker/src/app.ts +++ b/AssignmentChecker/src/app.ts @@ -48,7 +48,7 @@ import Icon from './shared/types/Icon'; success ? resolve() : reject(); }); - assignmentValidator.run(); + assignmentValidator.run(false, true); }); } catch ( error ) { /* empty */ } diff --git a/AssignmentChecker/src/config/Config.ts b/AssignmentChecker/src/config/Config.ts index 94cb8b6e67ed34c99a7046ed25445296059b71af..124a2b2b1ed1be5a1df1a7cb0d7ed0fa7d9405d9 100644 --- a/AssignmentChecker/src/config/Config.ts +++ b/AssignmentChecker/src/config/Config.ts @@ -15,6 +15,10 @@ class Config { } }; + public readonly assignment: { + name: string; secret: string; + }; + constructor() { this.appName = process.env.APP_NAME || ''; @@ -31,6 +35,11 @@ class Config { assignmentChecker: process.env.DOCKERHUB_ASSIGNMENT_CHECKER_REPOSITORY || '' } }; + + this.assignment = { + name : process.env.DOJO_ASSIGNMENT_NAME || '', + secret: process.env.DOJO_ASSIGNMENT_SECRET || '' + }; } private resetResultsVolume(): void { diff --git a/AssignmentChecker/src/managers/HttpManager.ts b/AssignmentChecker/src/managers/HttpManager.ts index 569fff4909696d812628e499d03e04c02fb0e5a6..390d337cd17022b2c0e80593f4272aecaa2a089a 100644 --- a/AssignmentChecker/src/managers/HttpManager.ts +++ b/AssignmentChecker/src/managers/HttpManager.ts @@ -41,7 +41,7 @@ class HttpManager { config.headers['Content-Type'] = 'multipart/form-data'; } - //config.headers.Authorization = `ExerciseSecret ${ Config.exercise.secret }`; + config.headers.assignmentsecret = Config.assignment.secret; config.headers['client'] = 'DojoAssignmentChecker'; config.headers['client-version'] = version; diff --git a/AssignmentChecker/src/shared b/AssignmentChecker/src/shared index 89f3579ca9009f793742170928d808ab4c35d931..bf8d6180e6d86bf97bd8e8b16ee00826172ed287 160000 --- a/AssignmentChecker/src/shared +++ b/AssignmentChecker/src/shared @@ -1 +1 @@ -Subproject commit 89f3579ca9009f793742170928d808ab4c35d931 +Subproject commit bf8d6180e6d86bf97bd8e8b16ee00826172ed287 diff --git a/AssignmentChecker/src/sharedByClients b/AssignmentChecker/src/sharedByClients index 098c6d20f6ed84240c086b979b56afd598fdfea4..3cd3c507acfe4d758fb7d4d3b7c43ad7d8ab4730 160000 --- a/AssignmentChecker/src/sharedByClients +++ b/AssignmentChecker/src/sharedByClients @@ -1 +1 @@ -Subproject commit 098c6d20f6ed84240c086b979b56afd598fdfea4 +Subproject commit 3cd3c507acfe4d758fb7d4d3b7c43ad7d8ab4730 diff --git a/Dockerfile_AssignmentChecker b/Dockerfile_AssignmentChecker index ed1ec60e4ae573a0b443832c51178c7ecf3ab5d1..fd455a8ded999633f18dfc3eaf2c06351d92f5b7 100644 --- a/Dockerfile_AssignmentChecker +++ b/Dockerfile_AssignmentChecker @@ -36,4 +36,6 @@ RUN apk add git ARG BUILD_WORKDIR -COPY --from=builder ${BUILD_WORKDIR}/bin/app /usr/local/bin/dojo_assignment_checker \ No newline at end of file +COPY --from=builder ${BUILD_WORKDIR}/bin/app /usr/local/bin/dojo_assignment_checker + +ADD sonar/ /sonar/ diff --git a/sonar/Dockerfile b/sonar/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..cc163bca27eb2fff8d20660d501ccae283facbf3 --- /dev/null +++ b/sonar/Dockerfile @@ -0,0 +1,28 @@ +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 + diff --git a/sonar/cacerts b/sonar/cacerts new file mode 100644 index 0000000000000000000000000000000000000000..3259ae13ad7391f25b7f093d12f71fb5da333272 Binary files /dev/null and b/sonar/cacerts differ