@@ -152,7 +152,7 @@ export const acceptMergeRequest = async (gitlabApi: GitlabApi, mergeRequest: Mer
152152
153153 let currentPipeline : MergeRequestPipeline | null = mergeRequestInfo . pipeline ;
154154
155- if ( currentPipeline === null || currentPipeline . sha !== mergeRequestInfo . sha ) {
155+ if ( currentPipeline !== null && currentPipeline . sha !== mergeRequestInfo . sha ) {
156156 const pipelines = await gitlabApi . getMergeRequestPipelines ( mergeRequest . project_id , mergeRequest . iid ) ;
157157 const currentPipelineCandidate = pipelines . find ( ( pipeline ) => pipeline . sha === mergeRequestInfo . sha ) ;
158158
@@ -178,37 +178,39 @@ export const acceptMergeRequest = async (gitlabApi: GitlabApi, mergeRequest: Mer
178178 currentPipeline = currentPipelineCandidate ;
179179 }
180180
181- if ( currentPipeline . status === PipelineStatus . Running || currentPipeline . status === PipelineStatus . Pending ) {
182- if ( ! containsLabel ( mergeRequestInfo . labels , BotLabels . WaitingForPipeline ) ) {
183- tasks . push (
184- gitlabApi . updateMergeRequest ( mergeRequest . project_id , mergeRequest . iid , {
185- labels : [ ...filterBotLabels ( mergeRequestInfo . labels ) , BotLabels . WaitingForPipeline ] . join ( ',' ) ,
186- } ) ,
187- ) ;
188- }
181+ if ( currentPipeline !== null ) {
182+ if ( currentPipeline . status === PipelineStatus . Running || currentPipeline . status === PipelineStatus . Pending ) {
183+ if ( ! containsLabel ( mergeRequestInfo . labels , BotLabels . WaitingForPipeline ) ) {
184+ tasks . push (
185+ gitlabApi . updateMergeRequest ( mergeRequest . project_id , mergeRequest . iid , {
186+ labels : [ ...filterBotLabels ( mergeRequestInfo . labels ) , BotLabels . WaitingForPipeline ] . join ( ',' ) ,
187+ } ) ,
188+ ) ;
189+ }
189190
190- console . log ( `[MR] Waiting for CI. Current status: ${ currentPipeline . status } ` ) ;
191- await Promise . all ( tasks ) ;
192- continue ;
193- }
191+ console . log ( `[MR] Waiting for CI. Current status: ${ currentPipeline . status } ` ) ;
192+ await Promise . all ( tasks ) ;
193+ continue ;
194+ }
194195
195- if ( currentPipeline . status === PipelineStatus . Canceled ) {
196- console . log ( `[MR] pipeline is canceled calling retry` ) ;
197- await gitlabApi . retryPipeline ( mergeRequest . project_id , currentPipeline . id ) ;
198- numberOfPipelineValidationRetries = defaultPipelineValidationRetries ;
199- continue ;
200- }
196+ if ( currentPipeline . status === PipelineStatus . Canceled ) {
197+ console . log ( `[MR] pipeline is canceled calling retry` ) ;
198+ await gitlabApi . retryPipeline ( mergeRequest . project_id , currentPipeline . id ) ;
199+ numberOfPipelineValidationRetries = defaultPipelineValidationRetries ;
200+ continue ;
201+ }
201202
202- if ( currentPipeline . status === PipelineStatus . Failed ) {
203- return {
204- kind : AcceptMergeRequestResultKind . FailedPipeline ,
205- mergeRequestInfo,
206- pipeline : currentPipeline ,
207- } ;
208- }
203+ if ( currentPipeline . status === PipelineStatus . Failed ) {
204+ return {
205+ kind : AcceptMergeRequestResultKind . FailedPipeline ,
206+ mergeRequestInfo,
207+ pipeline : currentPipeline ,
208+ } ;
209+ }
209210
210- if ( currentPipeline . status !== PipelineStatus . Success && currentPipeline . status !== PipelineStatus . Skipped ) {
211- throw new Error ( `Unexpected pipeline status: ${ currentPipeline . status } ` ) ;
211+ if ( currentPipeline . status !== PipelineStatus . Success && currentPipeline . status !== PipelineStatus . Skipped ) {
212+ throw new Error ( `Unexpected pipeline status: ${ currentPipeline . status } ` ) ;
213+ }
212214 }
213215
214216 console . log ( '[MR] Calling merge request' ) ;
0 commit comments