@struktoai/mirage-core
Version:
A Unified Virtual Filesystem For AI Agents
55 lines • 3.59 kB
TypeScript
import type { GitHubAccount } from '../../../../accessor/github.ts';
import type { CommandFnResult, Context } from '../../../config.ts';
import type { PathSpec } from '../../../../types.ts';
export declare const REPO_FIELDS: readonly string[];
/**
* gh's own text view of a repository: two tab-separated header lines and
* then the README verbatim, with the `--` separator omitted entirely when
* there is no README. Probed against gh 2.85, whose description line is
* present and empty for a repository that has none.
*/
export declare function summary(repo: unknown, readme: string | null): string;
/**
* `gh repo view`. With `--json` it asks GraphQL for exactly the fields named,
* the way gh does, so every field gh accepts is answered in gh's own shape;
* the text view reads the REST object and the README.
*/
export declare function view(accessor: GitHubAccount, _paths: PathSpec[], texts: string[], ctx: Context): Promise<CommandFnResult>;
/** `gh repo list`, over GraphQL for `--json` as `view` is. */
export declare function listCmd(accessor: GitHubAccount, _paths: PathSpec[], texts: string[], ctx: Context): Promise<CommandFnResult>;
export declare function createCmd(accessor: GitHubAccount, _paths: PathSpec[], texts: string[], ctx: Context): Promise<CommandFnResult>;
/**
* `gh repo clone`: mirage's `git clone` of the repository. As gh does, the
* words after the repository that are not gh's own flags go to git: the first
* one, when it has no leading dash, is the directory, put after the URL unless
* it is empty, and the rest go before the URL. The token rides only as the
* request's Authorization, never on the line, in the config or in the output,
* and only when git clones from the install's origin, as gh's credential
* helper is scoped to it; a fork's `upstream` remote is not added.
*/
export declare function cloneCmd(accessor: GitHubAccount, _paths: PathSpec[], texts: string[], ctx: Context): Promise<CommandFnResult>;
/**
* `gh repo fork`. gh clones a fork, or adds a remote for one, into the local
* checkout, which a workspace does not have: `--clone` is refused, and so is
* `--remote` without a repository, where it would name that checkout. gh
* ignores `--remote` beside a repository, and `--clone=false` or
* `--remote=false` asks for what this fork does anyway.
*/
export declare function fork(accessor: GitHubAccount, _paths: PathSpec[], texts: string[], ctx: Context): Promise<CommandFnResult>;
export declare function rename(accessor: GitHubAccount, _paths: PathSpec[], texts: string[], ctx: Context): Promise<CommandFnResult>;
/**
* `gh repo edit`: the settings named on the line in one `PATCH`, and topics
* read and replaced whole when `--add-topic` or `--remove-topic` changes
* them. With nothing to edit gh would prompt, so it refuses instead, and a
* visibility change needs `--accept-visibility-change-consequences`. Like gh
* writing to anything but a terminal, success prints nothing.
*/
export declare function editCmd(accessor: GitHubAccount, _paths: PathSpec[], texts: string[], ctx: Context): Promise<CommandFnResult>;
/**
* `gh repo delete REPO --yes`. A name with no owner is the viewer's, as gh
* reads it. The current repository is never deleted by default: gh ignores
* `--yes` there and prompts, so without a terminal it refuses. `--confirm`
* is gh's deprecated spelling of `--yes`, and it warns the way cobra does.
*/
export declare function deleteCmd(accessor: GitHubAccount, _paths: PathSpec[], texts: string[], ctx: Context): Promise<CommandFnResult>;
//# sourceMappingURL=repo.d.ts.map