UNPKG

fake-it-til-you-git

Version:

A modern CLI tool to generate fake Git commit history for your GitHub/GitLab profile

103 lines 3.56 kB
/** * Commit generation and distribution algorithms * This module handles the logic for distributing commits across date ranges * using different distribution strategies. */ import type { Config } from './config.js'; import { GitOperations } from './git.js'; export interface CommitPlan { date: Date; count: number; messages: string[]; } export interface DistributionParams { totalDays: number; maxPerDay: number; seed?: string; } export interface GaussianDistributionParams extends DistributionParams { mean?: number; stdDev?: number; } export interface CustomDistributionParams extends DistributionParams { pattern?: number[]; weights?: number[]; } export interface PatternDistributionParams extends DistributionParams { patternConfig: import('./config.js').PatternConfig; } /** * Generate commits using uniform distribution * Distributes commits evenly across the date range */ export declare function generateUniformDistribution(dateRange: Date[], params: DistributionParams): CommitPlan[]; /** * Generate commits using random distribution * Each day has a random chance of having commits, with random counts */ export declare function generateRandomDistribution(dateRange: Date[], params: DistributionParams): CommitPlan[]; /** * Generate commits using Gaussian (normal) distribution * Concentrates commits around a central period with natural falloff */ export declare function generateGaussianDistribution(dateRange: Date[], params: GaussianDistributionParams): CommitPlan[]; /** * Generate commits using custom distribution * Allows for custom patterns and day-of-week weights */ export declare function generateCustomDistribution(dateRange: Date[], params: CustomDistributionParams): CommitPlan[]; /** * Generate commits using pattern distribution * Creates visual patterns in the GitHub contribution graph */ export declare function generatePatternDistribution(dateRange: Date[], params: PatternDistributionParams): CommitPlan[]; /** * Generate commit plan based on configuration * Main entry point for commit generation */ export declare function generateCommitPlan(config: Config): CommitPlan[]; /** * Calculate statistics for a commit plan */ export declare function calculateCommitStats(plans: CommitPlan[]): { totalCommits: number; totalDays: number; activeDays: number; averagePerDay: number; maxPerDay: number; minPerDay: number; }; /** * Result of commit creation process */ export interface CommitCreationResult { success: boolean; totalCommits: number; successfulCommits: number; failedCommits: number; errors: string[]; commitHashes: string[]; duration: number; } /** * Populate commit plan with actual messages based on style */ export declare function populateCommitMessages(plans: CommitPlan[], config: Config): CommitPlan[]; /** * Create actual commits based on the populated commit plan */ export declare function createCommitsFromPlan(plans: CommitPlan[], config: Config, gitOps: GitOperations): Promise<CommitCreationResult>; /** * Main function to generate and create commits based on configuration * This is the main entry point for Step 5.2 */ export declare function generateAndCreateCommits(config: Config, gitOps: GitOperations): Promise<CommitCreationResult>; /** * Validate commit plan before execution */ export declare function validateCommitPlan(plans: CommitPlan[], config: Config): { valid: boolean; errors: string[]; warnings: string[]; }; //# sourceMappingURL=commits.d.ts.map