diff --git a/helpers/Dojo/SharedAssignmentHelper.ts b/helpers/Dojo/SharedAssignmentHelper.ts index 5b11a38a668318524787c78c8f1b331eb8d24564..c729540b5ce660f1918ac9078b97652f29027524 100644 --- a/helpers/Dojo/SharedAssignmentHelper.ts +++ b/helpers/Dojo/SharedAssignmentHelper.ts @@ -23,7 +23,7 @@ class SharedAssignmentHelper { const pipelines = await GlobalHelper.sharedGitlabManager.getRepositoryPipelines(repositoryId, 'main'); if ( pipelines.length > 0 ) { const lastPipeline = pipelines[0]; - if ( lastPipeline.status != GitlabPipelineStatus.SUCCESS.valueOf() ) { + if ( lastPipeline.status !== GitlabPipelineStatus.SUCCESS.valueOf() ) { return { isPublishable: false, lastPipeline : lastPipeline, diff --git a/managers/SharedGitlabManager.ts b/managers/SharedGitlabManager.ts index 014ac4007bf64234b51b0b3c36e1c46423d38343..4cea2ee9aa080ca22132aa9b2835b6426b0c8f66 100644 --- a/managers/SharedGitlabManager.ts +++ b/managers/SharedGitlabManager.ts @@ -23,14 +23,14 @@ class SharedGitlabManager { this.setToken(token); } - private async executeGitlabRequest<T>(request: () => Promise<T>): Promise<T> { + private async executeGitlabRequest<T>(request: () => Promise<T>, refreshTokenIfNeeded: boolean = true): Promise<T> { try { return await request(); } catch ( error ) { - if ( this.refreshTokenFunction && error instanceof GitbeakerRequestError && error.cause?.response.status === StatusCodes.UNAUTHORIZED ) { + if ( this.refreshTokenFunction && refreshTokenIfNeeded && error instanceof GitbeakerRequestError && error.cause?.response.status === StatusCodes.UNAUTHORIZED ) { this.setToken(await this.refreshTokenFunction()); - return await request(); + return this.executeGitlabRequest(request, false); } else { throw error; } @@ -84,11 +84,7 @@ class SharedGitlabManager { } async getRepositoryPipelines(repoId: number, branch: string = 'main'): Promise<Array<PipelineSchema>> { - return await this.executeGitlabRequest(async () => { - return await this.api.Pipelines.all(repoId, { - ref: branch - }); - }); + return this.executeGitlabRequest(() => this.api.Pipelines.all(repoId, { ref: branch })); } }