UNPKG

buddy-bot

Version:

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

46 lines 3.1 kB
import { DashboardGenerator } from './dashboard/dashboard-generator'; import { GitHubProvider } from './git/github-provider'; import { Logger } from './utils/logger'; import { PackageScanner } from './scanner/package-scanner'; import { RegistryClient } from './registry/registry-client'; import type { BuddyBotConfig, DashboardData, Issue, PackageFile, PackageUpdate, PullRequest, UpdateGroup, UpdateScanResult, } from './types'; export declare class Buddy { readonly private logger: Logger; readonly private scanner: PackageScanner; readonly private registryClient: RegistryClient; readonly private dashboardGenerator: DashboardGenerator; private readonly config: BuddyBotConfig; private readonly projectPath?: string; constructor(config: BuddyBotConfig, projectPath?: string); scanForUpdates(): Promise<UpdateScanResult>; createPullRequests(scanResult: UpdateScanResult): Promise<void>; private shouldRespectVersion(version: string): boolean; private checkDependencyFilesForUpdates(packageFiles: PackageFile[]): Promise<PackageUpdate[]>; private checkGitHubActionsForUpdates(packageFiles: PackageFile[]): Promise<PackageUpdate[]>; private checkDockerfilesForUpdates(packageFiles: PackageFile[]): Promise<PackageUpdate[]>; private getUpdateType(current: string, latest: string): 'major' | 'minor' | 'patch'; private isNewerVersion(current: string, latest: string): boolean; generateAllFileUpdates(updates: PackageUpdate[]): Promise<Array<{ path: string, content: string, type: 'update' }>>; run(): Promise<UpdateScanResult>; checkPackages(packageNames: string[]): Promise<PackageUpdate[]>; checkPackagesWithPattern(pattern: string): Promise<PackageUpdate[]>; private filterUpdatesByStrategy(updates: PackageUpdate[], strategy: 'major' | 'minor' | 'patch' | 'all'): PackageUpdate[]; private groupUpdatesByConfig(updates: PackageUpdate[]): UpdateGroup[]; private getHighestUpdateType(updates: PackageUpdate[]): 'major' | 'minor' | 'patch'; private isSimilarPRTitle(existingTitle: string, newTitle: string): boolean; private checkIfUpdatesMatch(existingPRBody: string, newUpdates: PackageUpdate[]): boolean; private generatePRLabels(group: UpdateGroup): string[]; private shouldAutoClosePR(existingPR: PullRequest, _newUpdates: PackageUpdate[]): boolean; private shouldAutoCloseForRespectLatest(existingPR: PullRequest): boolean; private shouldAutoCloseForIgnorePaths(existingPR: PullRequest): boolean; private shouldAutoCloseForRemovedFiles(existingPR: PullRequest): boolean; private extractFilePathsFromPRBody(prBody: string): string[]; private extractPackagesFromPRBody(prBody: string): string[]; getConfig(): BuddyBotConfig; getProjectPath(): string; checkAndCloseObsoletePRs(gitProvider: GitHubProvider, dryRun?: boolean): Promise<void>; private generateCloseReason(pr: PullRequest): string; createOrUpdateDashboard(): Promise<Issue>; private collectDashboardData(gitProvider: GitHubProvider): Promise<DashboardData>; private findExistingDashboard(gitProvider: GitHubProvider, issueNumber?: number): Promise<Issue | null>; }