UNPKG

@atomist/automation-client

Version:

Atomist API for software low-level client

80 lines 2.69 kB
export interface CloneOptions { /** * If this is true, the implementation should keep the directory at least * for the duration of the current process. If it's false, persistence can be treated * in any way. */ keep?: boolean; /** * If this is true, always make a full clone. * If it's false, and we want the master branch, and we're cloning into a transient * place, then clone with `--depth 1` to save time. */ alwaysDeep?: boolean; /** * If we are not doing a deep clone (alwaysDeep is false), * then the default is to clone only one branch. * Set noSingleBranch to true to clone the tips of all branches instead. * This passes `--no-single-branch` to `git clone`. * If alwaysDeep is true, this option has no effect. */ noSingleBranch?: boolean; /** * Set this to the number of commits that should be cloned into the transient * place. This only applies when alwaysDeep is set to false. */ depth?: number; /** * If you really want the SHA, not the tip of the branch that we've checked out, * then request a detached HEAD at that SHA. */ detachHead?: boolean; } export declare const DefaultCloneOptions: CloneOptions; /** * Information about a directory for working with a clone. */ export interface CloneDirectoryInfo { /** * Local file system path to the clone */ path: string; /** * Directory type: either a parent directory into which we can clone, * or a distinct directory */ type: "empty-directory" | "existing-directory"; /** * Call this when you're done with this clone. It lets other people use it * @returns {Promise<void>} */ release: () => Promise<void>; /** * Call this if you think this directory is not working for you. * useful when a standard clone has become corrupted somehow and we should not * use it again. */ invalidate: () => Promise<void>; /** * Will this directory be deleted soon, or might it hang around a while? */ transient: boolean; /** * for debugging, describe how this came to be constructed */ provenance?: string; } /** * SPI strategy interface for managing project storage */ export interface DirectoryManager { /** * Return a clean parent directory for this project to be checked out * @param {string} owner * @param {string} repo * @param {string} branch * @param {CloneOptions} opts */ directoryFor(owner: string, repo: string, branch: string, opts: CloneOptions): Promise<CloneDirectoryInfo>; } //# sourceMappingURL=DirectoryManager.d.ts.map