diff --git a/config/SharedConfig.ts b/config/SharedConfig.ts
index 5e4121f18c6c06225475fe6b481ddb7f4bade1f7..4cbfe893649535c92600a6053d362e28064d5e19 100644
--- a/config/SharedConfig.ts
+++ b/config/SharedConfig.ts
@@ -1,3 +1,6 @@
+import * as process from 'process';
+
+
 class SharedConfig {
     public readonly production: boolean;
     public debug: boolean = false;
@@ -7,13 +10,15 @@ class SharedConfig {
     public sonar: {
         enabled: boolean
         url: string
+        token: string
     }
 
     constructor() {
         this.production = process.env.NODE_ENV === 'production';
         this.sonar = {
             enabled: ['yes', 'true', '1', 'on'].includes(process.env.SONAR_ENABLED?.trim()?.toLowerCase() ?? ''),
-            url: process.env.SONAR_URL || ''
+            url: process.env.SONAR_URL || '',
+            token: process.env.SONAR_TOKEN || ''
         };
 
         this.logsFolder = process.env.LOGS_FOLDER ?? '';
diff --git a/managers/SharedSonarManager.ts b/managers/SharedSonarManager.ts
new file mode 100644
index 0000000000000000000000000000000000000000..51692021a4e10692d6bec76510926473016861c3
--- /dev/null
+++ b/managers/SharedSonarManager.ts
@@ -0,0 +1,27 @@
+import axios        from 'axios';
+import https        from 'https';
+import SharedConfig from '../config/SharedConfig';
+
+
+class SharedSonarManager {
+
+    // Use custom instance to allow self-signed certificates
+    private instance = axios.create({
+        httpsAgent: new https.Agent({
+            rejectUnauthorized: false
+        })
+    });
+    async isSonarSupported(): Promise<boolean> {
+        if (!SharedConfig.sonar.enabled) {
+            return false;
+        }
+        try {
+            const sonar = await this.instance.get(SharedConfig.sonar.url);
+            return sonar.status == 200;
+        } catch ( error ) {
+            return false;
+        }
+    }
+}
+
+export default new SharedSonarManager();
\ No newline at end of file
diff --git a/types/Sonar/SonarProjectCreation.ts b/types/Sonar/SonarProjectCreation.ts
new file mode 100644
index 0000000000000000000000000000000000000000..9c1bde9747eb0528272a3c36503d04db32ad0caf
--- /dev/null
+++ b/types/Sonar/SonarProjectCreation.ts
@@ -0,0 +1,10 @@
+interface SonarProjectCreation {
+    project: {
+        key: string,
+        name: string,
+        qualifier: string,
+        visibility: string
+    }
+}
+
+export default SonarProjectCreation;
\ No newline at end of file
diff --git a/types/Sonar/SonarRoute.ts b/types/Sonar/SonarRoute.ts
new file mode 100644
index 0000000000000000000000000000000000000000..ecfab74c2775e56e0d5f816c8ade9af4794c52d3
--- /dev/null
+++ b/types/Sonar/SonarRoute.ts
@@ -0,0 +1,6 @@
+enum SonarRoute {
+    SET_PAT               = '/api/alm_integrations/set_pat',
+    PROJECT_CREATE_GITLAB = '/api/alm_integrations/import_gitlab_project'
+}
+
+export default SonarRoute;
\ No newline at end of file