diff --git a/managers/SharedGitlabManager.ts b/managers/SharedGitlabManager.ts index 42039c2b98381f26619b02706a7b8084aee85c5a..1633ec0cbd3b5ba7addf8c2b6b5e4c8d3bcf51c2 100644 --- a/managers/SharedGitlabManager.ts +++ b/managers/SharedGitlabManager.ts @@ -1,10 +1,10 @@ -import axios from 'axios'; -import SharedConfig from '../config/SharedConfig'; -import * as GitlabCore from '@gitbeaker/core'; -import { GitbeakerRequestError } from '@gitbeaker/requester-utils'; -import { Gitlab, PipelineSchema } from '@gitbeaker/rest'; -import GitlabToken from '../types/Gitlab/GitlabToken'; -import { StatusCodes } from 'http-status-codes'; +import axios from 'axios'; +import SharedConfig from '../config/SharedConfig'; +import * as GitlabCore from '@gitbeaker/core'; +import { GitbeakerRequestError } from '@gitbeaker/requester-utils'; +import { Gitlab, PipelineSchema, UserSchema } from '@gitbeaker/rest'; +import GitlabToken from '../types/Gitlab/GitlabToken'; +import { StatusCodes } from 'http-status-codes'; class SharedGitlabManager { @@ -50,6 +50,35 @@ class SharedGitlabManager { return response.data; } + public async getUserById(id: number): Promise<UserSchema | undefined> { + try { + return await this.executeGitlabRequest(async () => { + const user = await this.api.Users.show(id); + + return user.id === id ? user : undefined; + }); + } catch ( e ) { + return undefined; + } + } + + public async getUserByUsername(username: string): Promise<UserSchema | undefined> { + try { + return await this.executeGitlabRequest(async () => { + const user = await this.api.Users.all({ + username: username, + maxPages: 1, + perPage : 1 + }); + + + return user.length > 0 && user[0].username === username ? user[0] : undefined; + }); + } catch ( e ) { + return undefined; + } + } + async getRepositoryPipelines(repoId: number, branch: string = 'main'): Promise<Array<PipelineSchema>> { return await this.executeGitlabRequest(async () => { return await this.api.Pipelines.all(repoId, {