import { BaseResource } from '@gitbeaker/requester-utils'; import { RequestHelper, endpoint } from '../infrastructure'; import type { BaseRequestOptions, GitlabAPIResponse, MappedOmit, PaginationRequestOptions, PaginationTypes, ShowExpanded, Sudo, } from '../infrastructure'; import type { SimpleUserSchema } from './Users'; import type { PipelineSchema } from './Pipelines'; import type { CondensedMergeRequestSchema } from './MergeRequests'; export interface MergeTrainSchema extends Record { id: number; merge_request: CondensedMergeRequestSchema; user: MappedOmit; pipeline: PipelineSchema; created_at: string; updated_at: string; target_branch: string; status: string; merged_at: string; duration: number; } export class MergeTrains extends BaseResource { all( projectId: string | number, options: { targetBranch?: string; scope?: 'active' | 'complete'; sort?: 'asc' | 'desc'; } & PaginationRequestOptions

& BaseRequestOptions, ): Promise> { return RequestHelper.get()( this, endpoint`projects/${projectId}/merge_trains`, options, ); } showStatus( projectId: string | number, mergeRequestIId: number, options?: Sudo & ShowExpanded, ): Promise> { return RequestHelper.get()( this, endpoint`projects/${projectId}/merge_trains/merge_requests/${mergeRequestIId}`, options, ); } addMergeRequest( projectId: string | number, mergeRequestIId: number, options?: { whenPipelineSucceeds?: boolean; sha?: string; squash?: boolean } & Sudo & ShowExpanded, ): Promise> { return RequestHelper.post()( this, endpoint`projects/${projectId}/merge_trains/merge_requests/${mergeRequestIId}`, options, ); } }