buddy-bot
Version:
Automated & optimized dependency updates for JavaScript & TypeScript projects. Like Renovate & Dependabot.
162 lines (161 loc) • 6.04 kB
TypeScript
import type { Logger } from './utils/logger';
// Pre-flight validation functions
export declare function runPreflightChecks(): Promise<ValidationResult>;
export declare function analyzeProject(): Promise<ProjectAnalysis>;
export declare function createProgressTracker(totalSteps: number): SetupProgress;
export declare function updateProgress(progress: SetupProgress, stepName: string, completed?: boolean): SetupProgress;
export declare function displayProgress(progress: SetupProgress): void;
export declare function detectRepository(): Promise<RepositoryInfo | null>;
export declare function guideTokenCreation(repoInfo: RepositoryInfo): Promise<void>;
export declare function confirmTokenSetup(): Promise<{ hasCustomToken: boolean, needsGuide: boolean }>;
export declare function guideRepositorySettings(repoInfo: RepositoryInfo): Promise<void>;
export declare function generateConfigFile(repoInfo: RepositoryInfo, hasCustomToken: boolean): Promise<void>;
export declare function generateUnifiedWorkflow(hasCustomToken: boolean): string;
export declare function generateCoreWorkflows(preset: WorkflowPreset, repoInfo: RepositoryInfo, hasCustomToken: boolean, logger: Logger): Promise<void>;
export declare function getWorkflowPreset(useCase: string): WorkflowPreset;
// Enhanced testing and validation functions
export declare function validateWorkflowGeneration(workflowContent: string): Promise<ValidationResult>;
export declare function validateRepositoryAccess(repoInfo: RepositoryInfo): Promise<ValidationResult>;
export declare function displayValidationResults(results: ValidationResult, title: string): void;
export declare function setupCustomWorkflow(preset: WorkflowPreset, _logger: Logger): Promise<void>;
export declare function showFinalInstructions(repoInfo: RepositoryInfo, hasCustomToken: boolean): Promise<void>;
export declare interface RepositoryInfo {
owner: string
name: string
}
export declare interface WorkflowPreset {
name: string
description: string
templates: {
comprehensive?: boolean
daily?: boolean
weekly?: boolean
monthly?: boolean
docker?: boolean
monorepo?: boolean
}
schedules: {
dashboard: string
updates: string
}
strategy: string
autoMerge: boolean
custom: Array<{
name: string
schedule: string
strategy: string
autoMerge: boolean
autoMergeStrategy?: string
}>
}
// New interfaces for enhanced functionality
export declare interface ValidationResult {
success: boolean
errors: string[]
warnings: string[]
suggestions: string[]
}
export declare interface ProjectAnalysis {
type: 'library' | 'application' | 'monorepo' | 'unknown'
packageManager: 'npm' | 'yarn' | 'pnpm' | 'bun' | 'composer' | 'unknown'
hasLockFile: boolean
hasDependencyFiles: boolean
hasGitHubActions: boolean
recommendedPreset: string
recommendations: string[]
}
export declare interface SetupProgress {
currentStep: number
totalSteps: number
stepName: string
completed: string[]
failed?: string
canResume: boolean
startTime: Date
}
// Configuration Migration & Import System
export declare interface MigrationResult {
source: 'renovate' | 'dependabot' | 'greenkeeper' | 'custom'
configFound: boolean
migratedSettings: Partial<any>
warnings: string[]
incompatibleFeatures: string[]
confidence: 'high' | 'medium' | 'low'
}
export declare interface DetectedTool {
name: string
configFile: string
version?: string
active: boolean
}
// Integration Ecosystem & Plugin Architecture
export declare interface SetupPlugin {
name: string
version: string
triggers: SetupTrigger[]
hooks: SetupHook[]
configuration: PluginConfig
enabled: boolean
}
export declare interface SetupTrigger {
event: 'pre_setup' | 'post_setup' | 'step_complete' | 'validation_error' | 'setup_complete'
condition?: string
}
export declare interface SetupHook {
name: string
priority: number
async: boolean
handler: (context: SetupContext) => Promise<void> | void
}
export declare interface PluginConfig {
}
export declare interface SetupContext {
step: string
progress: SetupProgress
config: any
repository: RepositoryInfo
analysis: ProjectAnalysis
plugins: SetupPlugin[]
}
export declare interface IntegrationPoint {
tool: string
endpoint: string
authentication: AuthConfig
dataMapping: Record<string, string>
enabled: boolean
}
export declare interface AuthConfig {
type: 'token' | 'oauth' | 'webhook' | 'api_key'
credentials: Record<string, string>
}
// Configuration Migration Implementation
export declare class ConfigurationMigrator {
detectExistingTools(): Promise<DetectedTool[]>;
private findRenovateConfig(): string;
migrateFromRenovate(configPath: string): Promise<MigrationResult>;
migrateFromDependabot(configPath: string): Promise<MigrationResult>;
private convertRenovateSchedule(schedule: string[]): any;
private convertRenovatePackageRules(packageRules: any[]): any;
private convertDependabotSchedule(interval: string): any;
generateMigrationReport(results: MigrationResult[]): Promise<string>;
private getConfidenceEmoji(confidence: string): string;
}
// Plugin Architecture Implementation
export declare class PluginManager {
private plugins: SetupPlugin[];
private context: SetupContext | null;
discoverPlugins(): Promise<SetupPlugin[]>;
loadPlugin(plugin: SetupPlugin): Promise<void>;
executePluginHooks(trigger: SetupTrigger): Promise<void>;
setContext(context: SetupContext): void;
private hasSlackWebhook(): Promise<boolean>;
private hasJiraIntegration(): Promise<boolean>;
private hasDiscordWebhook(): Promise<boolean>;
private createSlackPlugin(): SetupPlugin;
private createJiraPlugin(): SetupPlugin;
private createDiscordPlugin(): SetupPlugin;
private loadCustomPlugins(): Promise<SetupPlugin[]>;
private sendSlackNotification(context: SetupContext): Promise<void>;
private sendDiscordNotification(context: SetupContext): Promise<void>;
private createJiraTicket(context: SetupContext): Promise<void>;
}