import { ITGitRequestConfig } from '..'; import { ProjectId, IUser, IReviewer, IPerPageParams, INote } from '../base'; export interface ICommitReview { labels: string[]; title: string; description: string; target_commit: string; target_branch: string; target_project_id: number; source_commit: string; source_branch: string; source_project_id: number; author: IUser; reviewers: IReviewer[]; id: number; project_id: number; reviewable_id: number; reviewable_type: string; state: string; approver_rule: number; necessary_approver_rule: number; push_reset_enabled: boolean; created_at: string; updated_at: string; } export interface ICommitReviews { ( params: { id: ProjectId; author_id?: number; iids?: number[]; /** 评审通过 | 评审中 | 评审被拒绝 | 代码要求修改 */ state?: 'approved' | 'approving' | 'change_required' | 'closed'; labels?: string; /** 排序字段, 允许按 created_at, updated_at 排序(默认 created_at) */ order_by?: 'created_at' | 'updated_at'; /** 排序方式, 允许 asc or desc(默认 desc) */ sort?: 'asc' | 'desc'; } & IPerPageParams, requestOptions?: ITGitRequestConfig, ): Promise; notes: ICommitReviewsNotes; } export type ICommitReviewsNotes = ( params: { id: ProjectId; review_id: number; } & IPerPageParams, requestOptions?: ITGitRequestConfig, ) => Promise; export interface ICommitDiffFile { id: string; commit_date: string; author_name: string; committer_name: string; new_file: boolean; renamed_file: boolean; deleted_file: boolean; too_large: boolean; new_path: string; old_path: string; diff: string; binary: boolean; insertions: number; deletions: number; } export interface ICommitDiff { id: number; target_commit: string; source_commit: string; target_branch: string; source_branch: string; source_project_id: number; title: string; review_state: string; target_project_id: number; description: string; files: ICommitDiffFile[]; } export interface ICommitAdd { id: number | string; title: string; source_branch: string; target_branch: string; target_project_id?: number; description?: string; source_commit?: string; target_commit?: string; labels?: string; reviewer_ids?: string; necessary_reviewer_ids?: string; creator?: string; approver_rule?: number; necessary_approver_rule?: number; workspace_id?: number; tapd_id?: number; tapd_type?: string; tapd_info?: string; } export type ICommitReviewDiff = (params: { id: number | string; review_id: number }) => Promise; export interface ICommitReviewsReview { (params: { id: ProjectId; review_id: number }, requestOptions?: ITGitRequestConfig): Promise; diff: ICommitReviewDiff; get(params: { id: ProjectId; review_id: number }): Promise; invite(params: { id: number | string; review_id: number; reviewer_id?: number | string; necessary_reviewer_id?: number | string; }): Promise; batch_invite(params: { id: number | string; review_id: number; reviewer_ids?: number[] | string[]; necessary_reviewer_ids?: number[]; }): Promise; dismissals(params: { id: number | string; review_id: number; reviewer_id: number }): Promise; add(params: ICommitAdd): Promise; } export interface IReview { labels: string[]; title: string; description: string; commits: ICommit[]; author: IUser; reviewers: IReviewer[]; id: number; project_id: number; reviewable_id: number; reviewable_type: string; state: string; approver_rule: number; necessary_approver_rule: number; push_reset_enabled: boolean; created_at: string; updated_at: string; } export interface ICommit { id: string; commit_date: string; }