UNPKG

pr-sizewise

Version:

A CLI tool that measures and reports pull request sizes for GitHub and GitLab, helping teams maintain manageable code changes.

130 lines 2.85 kB
/** * Configuration thresholds for different merge request sizes */ export interface SizeThresholds { files: number; lines: number; directories: number; } /** * Configuration for PR/MR commenting feature */ export interface CommentConfig { enabled: boolean; template?: string; updateExisting?: boolean; } /** * Configuration for PR/MR labeling feature */ export interface LabelConfig { enabled: boolean; prefix?: string; } /** * Configuration for logging verbosity */ export interface LoggingConfig { verbose: boolean; } /** * Configuration for the sizewise analyzer */ export interface SizewiseConfig { thresholds: Record<string, SizeThresholds>; excludePatterns: string[]; comment?: CommentConfig; label?: LabelConfig; logging?: LoggingConfig; } /** * CLI command options */ export interface CliOptions { prId?: string; mrId?: string; projectId?: string; token?: string; host?: string; platform?: 'gitlab' | 'github'; gitlabToken?: string; gitlabHost?: string; config?: string; verbose?: boolean; json?: boolean; exitCode?: boolean; } /** * CLI Environment variables interface */ export interface CliEnvironment { GITLAB_TOKEN?: string; GITLAB_HOST?: string; CI_PROJECT_ID?: string; CI_MERGE_REQUEST_IID?: string; CI_JOB_TOKEN?: string; CI_SERVER_URL?: string; GITHUB_TOKEN?: string; GITHUB_SERVER_URL?: string; GITHUB_REPOSITORY?: string; GITHUB_EVENT_NUMBER?: string; GITHUB_ACTIONS?: string; GH_TOKEN?: string; PR_NUMBER?: string; } /** * Validation result for CLI inputs */ export interface ValidationResult { isValid: boolean; errors: string[]; warnings: string[]; } /** * Metrics collected from analyzing a pull/merge request */ export interface PullRequestMetrics { filesChanged: number; linesAdded: number; linesRemoved: number; totalLines: number; directoriesAffected: number; renamedFiles: number; newFiles: number; deletedFiles: number; } export interface MergeRequestMetrics extends PullRequestMetrics { } /** * Analysis result interface */ export interface AnalysisResult { size: string; details: string[]; metrics: { filesChanged: number; linesAdded: number; linesRemoved: number; totalLines: number; directoriesAffected: number; newFiles: number; deletedFiles: number; renamedFiles: number; }; thresholds: Record<string, { files: number; lines: number; directories: number; }>; } /** * CLI output format for JSON mode */ export interface CliJsonOutput { success: boolean; data?: AnalysisResult; error?: string; timestamp: string; version: string; } //# sourceMappingURL=types.d.ts.map