UNPKG

buddy-bot

Version:

Automated & optimized dependency updates for JavaScript & TypeScript projects. Like Renovate & Dependabot.

162 lines (161 loc) 6.04 kB
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>; }