UNPKG

repoweaver

Version:

A GitHub App that skillfully weaves multiple templates together to create and update repositories with intelligent merge strategies

101 lines 2.76 kB
export interface TemplateRepository { url: string; name: string; branch?: string; subDirectory?: string; } export interface RepositoryConfig { name: string; path: string; templates: TemplateRepository[]; gitRemote?: string; excludePatterns?: string[]; mergeStrategy?: 'overwrite' | 'merge' | 'skip'; } export interface BootstrapOptions { targetPath: string; templates: TemplateRepository[]; repositoryName: string; initGit?: boolean; addRemote?: string; mergeStrategy?: 'overwrite' | 'merge' | 'skip'; excludePatterns?: string[]; } export interface TemplateProcessingResult { success: boolean; template: TemplateRepository; filesProcessed: number; errors: string[]; pullRequestNumber?: number; } export interface BootstrapResult { success: boolean; repositoryPath: string; templateResults: TemplateProcessingResult[]; totalFilesProcessed: number; errors: string[]; } export interface MergeStrategyConfig { type: 'overwrite' | 'merge' | 'skip' | 'custom' | 'plugin'; implementation?: string; options?: Record<string, any>; } export interface FilePatternMergeStrategy { patterns: string[]; strategy: MergeStrategyConfig; priority?: number; } export interface WeaverConfig { name?: string; description?: string; templates: (string | TemplateRepository)[]; mergeStrategy?: 'overwrite' | 'merge' | 'skip' | MergeStrategyConfig; mergeStrategies?: FilePatternMergeStrategy[]; excludePatterns?: string[]; includePatterns?: string[]; autoUpdate?: boolean; createRepository?: boolean; privateRepository?: boolean; initGit?: boolean; addRemote?: string; hooks?: { preTemplate?: string[]; postTemplate?: string[]; preBootstrap?: string[]; postBootstrap?: string[]; }; variables?: Record<string, string>; plugins?: string[]; } export interface WeaverIgnoreConfig { patterns: string[]; includePatterns?: string[]; } export interface MergeContext { filePath: string; templateName: string; existingContent: string; newContent: string; options?: Record<string, any>; } export interface MergeResult { success: boolean; content: string; conflicts?: string[]; warnings?: string[]; metadata?: Record<string, any>; } export interface MergeStrategy { name: string; description: string; merge(context: MergeContext): Promise<MergeResult>; } export interface MergePlugin { name: string; version: string; description: string; strategies: MergeStrategy[]; initialize?(options?: Record<string, any>): Promise<void>; cleanup?(): Promise<void>; } //# sourceMappingURL=types.d.ts.map