@aaswe/codebase-ai
Version:
AI-Assisted Software Engineering (AASWE) - Rich codebase context for IDE LLMs
80 lines • 2.38 kB
TypeScript
/**
* Git Service
* Handles Git repository operations, monitoring, and change detection
*/
import { StatusResult } from 'simple-git';
import { EventEmitter } from 'events';
import { Repository, GitCommit, GitFileChange, RepositoryConfig } from './types';
export declare class GitService extends EventEmitter {
private repositories;
private monitoringIntervals;
constructor();
/**
* Initialize Git service and load existing repositories
*/
initialize(): Promise<void>;
/**
* Add a new repository for monitoring
*/
addRepository(config: {
name: string;
path: string;
url?: string;
branch?: string;
config?: Partial<RepositoryConfig>;
}): Promise<Repository>;
/**
* Remove a repository from monitoring
*/
removeRepository(repositoryId: string): Promise<void>;
/**
* Start monitoring a repository for changes
*/
startMonitoring(repositoryId: string): Promise<void>;
/**
* Stop monitoring a repository
*/
stopMonitoring(repositoryId: string): Promise<void>;
/**
* Check for changes in a repository
*/
checkForChanges(repositoryId: string): Promise<void>;
/**
* Get commits since a specific commit hash
*/
getCommitsSince(repository: Repository, sinceCommit?: string): Promise<GitCommit[]>;
/**
* Get file changes between two commits
*/
getFileChanges(repositoryId: string, fromCommit: string, toCommit: string): Promise<GitFileChange[]>;
/**
* Get repository status
*/
getRepositoryStatus(repositoryId: string): Promise<StatusResult>;
/**
* Get all repositories
*/
getRepositories(): Repository[];
/**
* Get repository by ID
*/
getRepository(repositoryId: string): Repository | undefined;
/**
* Update repository configuration
*/
updateRepositoryConfig(repositoryId: string, config: Partial<RepositoryConfig>): Promise<Repository>;
/**
* Cleanup resources
*/
cleanup(): Promise<void>;
private loadRepositories;
private saveRepositories;
/**
* Auto-detect and add the current project as a repository
*/
private autoDetectCurrentProject;
private generateRepositoryId;
private mapGitStatus;
}
export default GitService;
//# sourceMappingURL=GitService.d.ts.map