import { ITGitRequestConfig } from '..'; import { ProjectId, ICommit, IUser, ICommitStatus, IPerPageParams } from '../base'; export interface ICommits { ( params: { id: ProjectId; ref_name?: string; path?: string; since?: string; until?: string; } & IPerPageParams, requestOptions?: ITGitRequestConfig, ): Promise; get: ICommitsGet; status: ICommitsStatus; statuses: ICommitsStatuses; comments: ICommitsComments; refs: ICommitsRefs; } export type ICommitsGet = ( params: { id: ProjectId; sha: string; }, requestOptions?: ITGitRequestConfig, ) => Promise; export type ICommitsStatus = ( params: { id: ProjectId; ref: string; page?: number; per_page?: number; }, requestOptions?: ITGitRequestConfig, ) => Promise<{ state: ICommitStatus; block: boolean; statuses: { id: ProjectId; state: ICommitStatus; target_url: string; description: string; context: string; created_at: string; updated_at: string; block: boolean; }[]; sha: string; total_count: number; }>; export interface ICommitsStatuses { ( params: { id: ProjectId; sha: string; state: ICommitStatus; target_url?: string; description?: string; context?: string; block?: boolean; }, requestOptions?: ITGitRequestConfig, ): Promise<{ id: number; state: ICommitStatus; target_url: string; description: string; context: string; created_at: string; updated_at: string; block: boolean; }>; get: ICommitsStatusesGet; } export type ICommitsStatusesGet = ( params: { id: ProjectId; ref: string; page?: number; per_page?: number; }, requestOptions?: ITGitRequestConfig, ) => Promise< { id: ProjectId; state: ICommitStatus; target_url: string; description: string; context: string; created_at: string; updated_at: string; block: boolean; }[] >; export interface ICommitsComments { add: ICommitsCommentsAdd; } export type ICommitsCommentsAdd = ( params: { id: ProjectId; sha: string; note: string; path?: string; line?: string; line_type?: 'old' | 'new'; }, requestOptions?: ITGitRequestConfig, ) => Promise<{ note: string; author: IUser; created_at: string; }>; export type ICommitsRefs = ( params: { id: ProjectId; sha: string; type: 'branch' | 'tag' | 'all'; } & IPerPageParams, requestOptions?: ITGitRequestConfig, ) => Promise< { type: 'branch' | 'tag'; name: string; }[] >;