diff --git a/ExpressAPI/src/helpers/GlobalHelper.ts b/ExpressAPI/src/helpers/GlobalHelper.ts
index 9f6f131a11c0291555018ea8cfad65e35cf6e44b..8d4068b28192d622b55319ea22a0f0b53157afad 100644
--- a/ExpressAPI/src/helpers/GlobalHelper.ts
+++ b/ExpressAPI/src/helpers/GlobalHelper.ts
@@ -1,17 +1,13 @@
-import express             from 'express';
-import logger              from '../shared/logging/WinstonLogger';
-import GitlabManager       from '../managers/GitlabManager';
-import { AxiosError }      from 'axios';
-import { StatusCodes }     from 'http-status-codes';
-import DojoStatusCode      from '../shared/types/Dojo/DojoStatusCode';
-import SharedGitlabManager from '../shared/managers/SharedGitlabManager';
-import Config              from '../config/Config';
-import * as Gitlab         from '@gitbeaker/rest';
+import express         from 'express';
+import logger          from '../shared/logging/WinstonLogger';
+import GitlabManager   from '../managers/GitlabManager';
+import { AxiosError }  from 'axios';
+import { StatusCodes } from 'http-status-codes';
+import DojoStatusCode  from '../shared/types/Dojo/DojoStatusCode';
+import * as Gitlab     from '@gitbeaker/rest';
 
 
 class GlobalHelper {
-    readonly sharedGitlabManager = new SharedGitlabManager(Config.gitlab.account.token);
-
     async repositoryCreationError(message: string, error: unknown, req: express.Request, res: express.Response, gitlabError: DojoStatusCode, internalError: DojoStatusCode, repositoryToRemove?: Gitlab.ProjectSchema): Promise<void> {
         logger.error(message);
         logger.error(error);
diff --git a/ExpressAPI/src/helpers/Prisma/Extensions/UserResultExtension.ts b/ExpressAPI/src/helpers/Prisma/Extensions/UserResultExtension.ts
index 15d6cb8f4c583a10e083d2a0dc3ffaf2f634633b..af63f05ed484cf5de6bd45421f484627a6845e63 100644
--- a/ExpressAPI/src/helpers/Prisma/Extensions/UserResultExtension.ts
+++ b/ExpressAPI/src/helpers/Prisma/Extensions/UserResultExtension.ts
@@ -1,7 +1,7 @@
 import { Prisma, UserRole } from '@prisma/client';
 import LazyVal              from '../../../shared/helpers/LazyVal';
 import * as Gitlab          from '@gitbeaker/rest';
-import GlobalHelper         from '../../GlobalHelper';
+import GitlabManager        from '../../../managers/GitlabManager';
 
 
 export default Prisma.defineExtension(client => {
@@ -26,7 +26,7 @@ export default Prisma.defineExtension(client => {
                                        },
                                        gitlabProfile  : {
                                            compute(user) {
-                                               return new LazyVal<Gitlab.UserSchema | undefined>(() => GlobalHelper.sharedGitlabManager.getUserById(user.id));
+                                               return new LazyVal<Gitlab.UserSchema | undefined>(() => GitlabManager.getUserById(user.id));
                                            }
                                        }
                                    }
diff --git a/ExpressAPI/src/managers/GitlabManager.ts b/ExpressAPI/src/managers/GitlabManager.ts
index f5e45ad18ccf37302e43b5de47bfa295bd4cc28e..7f4ff711221842819321a8b5b164c683d3567b50 100644
--- a/ExpressAPI/src/managers/GitlabManager.ts
+++ b/ExpressAPI/src/managers/GitlabManager.ts
@@ -6,21 +6,20 @@ import SharedConfig
 import { CommitSchema, ExpandedUserSchema, Gitlab, MemberSchema, ProjectBadgeSchema, ProjectSchema, ReleaseSchema, RepositoryFileExpandedSchema, RepositoryFileSchema, RepositoryTreeSchema } from '@gitbeaker/rest';
 import logger                                                                                                                                                                                 from '../shared/logging/WinstonLogger';
 import { AccessLevel, EditProjectOptions, ProjectVariableSchema, ProtectedBranchAccessLevel, ProtectedBranchSchema }                                                                          from '@gitbeaker/core';
-import GlobalHelper                                                                                                                                                                           from '../helpers/GlobalHelper';
 import DojoStatusCode                                                                                                                                                                         from '../shared/types/Dojo/DojoStatusCode';
+import SharedGitlabManager                                                                                                                                                                    from '../shared/managers/SharedGitlabManager';
 
 
-class GitlabManager {
-    private readonly api = new Gitlab({
-                                          host : SharedConfig.gitlab.URL,
-                                          token: Config.gitlab.account.token
-                                      });
+class GitlabManager extends SharedGitlabManager {
+    constructor() {
+        super(Config.gitlab.account.token);
+    }
 
     public async getUserProfile(token: string): Promise<ExpandedUserSchema | undefined> {
         try {
             const profileApi = new Gitlab({
-                                              host : SharedConfig.gitlab.URL,
-                                              token: token
+                                              host      : SharedConfig.gitlab.URL,
+                                              oauthToken: token
                                           });
 
             return await profileApi.Users.showCurrentUser();
@@ -108,7 +107,7 @@ class GitlabManager {
     async checkTemplateAccess(projectIdOrNamespace: string, req: express.Request, res?: express.Response): Promise<boolean> {
         // Get the Gitlab project and check if it have public or internal visibility
         try {
-            const project: ProjectSchema = await GlobalHelper.sharedGitlabManager.getRepository(projectIdOrNamespace);
+            const project: ProjectSchema = await this.getRepository(projectIdOrNamespace);
 
             if ( [ 'public', 'internal' ].includes(project.visibility) ) {
                 req.session.sendResponse(res, StatusCodes.OK);
diff --git a/ExpressAPI/src/routes/SessionRoutes.ts b/ExpressAPI/src/routes/SessionRoutes.ts
index e1b1a24b2f13b7de5d2aba56c7a7426395fe92a4..b4f223e664ed675c40f2648a96ca4e42daf8d610 100644
--- a/ExpressAPI/src/routes/SessionRoutes.ts
+++ b/ExpressAPI/src/routes/SessionRoutes.ts
@@ -9,7 +9,6 @@ import GitlabManager             from '../managers/GitlabManager';
 import UserManager               from '../managers/UserManager';
 import DojoStatusCode            from '../shared/types/Dojo/DojoStatusCode';
 import Config                    from '../config/Config';
-import GlobalHelper              from '../helpers/GlobalHelper';
 
 
 class SessionRoutes implements RoutesManager {
@@ -64,7 +63,7 @@ class SessionRoutes implements RoutesManager {
                 refreshToken: string
             } = req.body;
 
-            const gitlabTokens = await GlobalHelper.sharedGitlabManager.getTokens(params.refreshToken, true, Config.login.gitlab.client.secret);
+            const gitlabTokens = await GitlabManager.getTokens(params.refreshToken, true, Config.login.gitlab.client.secret);
 
             req.session.sendResponse(res, StatusCodes.OK, gitlabTokens);
         } catch ( error ) {