export interface IRepo { [key: string]: any; } export interface IssueTracker { [key: string]: any; } export interface IEnvironmentVariables { [key: string]: string; } export type RetryMethod = (opts: number) => any; interface IRepoAdapter { getCandidateRepos(onRetry: RetryMethod): Promise; parseRepo(repo: string): IRepo; reposEqual(repo1: IRepo, repo2: IRepo): boolean; stringifyRepo(repo: IRepo): string; mapRepoAfterCheckout(repo: Readonly): Promise; checkoutRepo(repo: IRepo): Promise; resetChangedFiles(repo: IRepo): Promise; resetRepoBeforeApply(repo: IRepo, force: boolean): Promise; commitRepo(repo: IRepo): Promise; pushRepo(repo: IRepo, force: boolean): Promise; createPullRequest(repo: IRepo, message: string, upstreamOwner: string): Promise; getPullRequestStatus(repo: IRepo): Promise; getRepoDir(repo: IRepo): string; getDataDir(repo: IRepo): string; getBaseBranch(repo: IRepo): string; getEnvironmentVariables(repo: IRepo): Promise; createIssue(repo: IRepo): Promise; updateIssue(repo: IRepo, issueNumber: number): Promise; } export default IRepoAdapter;