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
TypeScript
/**
* 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