import { IMigrationContext } from '../migration-context.js'; import IRepoAdapter, { IEnvironmentVariables, IRepo, RetryMethod } from './base.js'; declare abstract class GitAdapter implements IRepoAdapter { protected migrationContext: IMigrationContext; protected branchName: string; constructor(migrationContext: IMigrationContext); abstract getCandidateRepos(onRetry: RetryMethod): Promise; abstract parseRepo(repo: string): IRepo; abstract reposEqual(repo1: IRepo, repo2: IRepo): boolean; abstract stringifyRepo(repo: IRepo): string; abstract getRepoDir(repo: IRepo): string; abstract getDataDir(repo: IRepo): string; abstract mapRepoAfterCheckout(repo: Readonly): Promise; abstract resetRepoBeforeApply(repo: IRepo, force: boolean): Promise; checkoutRepo(repo: IRepo): Promise; commitRepo(repo: IRepo): Promise; resetChangedFiles(repo: IRepo): Promise; pushRepo(repo: IRepo, force: boolean): Promise; abstract createPullRequest(repo: IRepo, message: string, upstreamOwner: string): Promise; abstract getPullRequestStatus(repo: IRepo): Promise; abstract getBaseBranch(repo: IRepo): string; getEnvironmentVariables(repo: IRepo): Promise; protected abstract getRepositoryUrl(repo: IRepo): string; abstract createIssue(repo: IRepo): Promise; abstract updateIssue(repo: IRepo, issueNumber: number): Promise; protected git(repo: IRepo): any; protected isShepherdCommitMessage(message: string): boolean; } export default GitAdapter;