diff --git a/managers/SharedGitlabManager.ts b/managers/SharedGitlabManager.ts
index a3a00204ea7a6a5cc761209fbac27a6632271620..e55fbcb7c264c29e433c31f60be53310e210f443 100644
--- a/managers/SharedGitlabManager.ts
+++ b/managers/SharedGitlabManager.ts
@@ -2,6 +2,7 @@ import axios          from 'axios';
 import GitlabPipeline from '../types/Gitlab/GitlabPipeline';
 import GitlabRoute    from '../types/Gitlab/GitlabRoute';
 import SharedConfig   from '../config/SharedConfig';
+import GitlabToken    from '../types/Gitlab/GitlabToken';
 
 
 class GitlabManager {
@@ -9,6 +10,19 @@ class GitlabManager {
         return `${ SharedConfig.gitlab.apiURL }${ route }`;
     }
 
+    async getTokens(codeOrRefresh: string, isRefresh: boolean = false, clientSecret: string = ''): Promise<GitlabToken> {
+        const response = await axios.post<GitlabToken>(`${ SharedConfig.gitlab.URL }/oauth/token`, {
+            client_id    : SharedConfig.login.gitlab.client.id,
+            client_secret: clientSecret,
+            grant_type   : isRefresh ? 'refresh_token' : 'authorization_code',
+            refresh_token: codeOrRefresh,
+            code         : codeOrRefresh,
+            redirect_uri : SharedConfig.login.gitlab.url.redirect
+        });
+
+        return response.data;
+    }
+
     async getRepositoryPipelines(repoId: number, branch: string = 'main'): Promise<Array<GitlabPipeline>> {
         const response = await axios.get<Array<GitlabPipeline>>(this.getApiUrl(GitlabRoute.REPOSITORY_PIPELINES).replace('{{id}}', String(repoId)), {
             params: {
diff --git a/types/Gitlab/GitlabToken.ts b/types/Gitlab/GitlabToken.ts
new file mode 100644
index 0000000000000000000000000000000000000000..c8c647e6285cf626b155d7ff93beb0dd2c7f9d52
--- /dev/null
+++ b/types/Gitlab/GitlabToken.ts
@@ -0,0 +1,11 @@
+interface GitlabToken {
+    access_token: string;
+    token_type: string;
+    expires_in: number;
+    refresh_token: string;
+    scope: string;
+    created_at: number;
+}
+
+
+export default GitlabToken;
\ No newline at end of file