deliverybot
Version:
Controls and configures deployments using the GitHub API.
34 lines (33 loc) • 1.29 kB
TypeScript
import { Target } from "./types";
import { PayloadRepository } from "@octokit/webhooks";
export interface LockStore {
lock(key: string, handler: () => {}): Promise<void>;
lockEnv(repoId: number, env: string): Promise<void>;
unlockEnv(repoId: number, env: string): Promise<void>;
isLockedEnv(repoId: number, env: string): Promise<boolean>;
}
export interface Watch {
repository: PayloadRepository;
id: string;
target: string;
targetVal: Target;
sha: string;
ref: string;
}
export interface WatchStore {
addWatch(repoId: number, watch: Watch): Promise<void>;
delWatch(repoId: number, watch: Watch): Promise<void>;
listWatchBySha(repoId: number, sha: string): Promise<Watch[]>;
}
export declare class InMemStore implements LockStore, WatchStore {
private locks;
private watches;
clear(): void;
addWatch(repoId: number, watch: Watch): Promise<void>;
delWatch(repoId: number, watch: Watch): Promise<void>;
listWatchBySha(repoId: number, sha: string): Promise<Watch[]>;
lockEnv(repoId: number, env: string): Promise<void>;
unlockEnv(repoId: number, env: string): Promise<void>;
isLockedEnv(repoId: number, env: string): Promise<boolean>;
lock(key: string, handler: () => Promise<void>): Promise<void>;
}