43 lines
1.1 KiB
TypeScript
43 lines
1.1 KiB
TypeScript
import type { GitChangeLayer } from "@/lib/state/slices/session-runtime/types";
|
|
|
|
export type DiffSource = "uncommitted" | "committed" | "pr";
|
|
export type ChangeLayer = GitChangeLayer;
|
|
|
|
export type LocalCommitDetailTarget = {
|
|
source: "local";
|
|
sha: string;
|
|
/** Multi-repo local repository subpath, omitted for the workspace root. */
|
|
repo?: string;
|
|
};
|
|
|
|
export type GitHubCommitDetailTarget = {
|
|
source: "github";
|
|
sha: string;
|
|
workspaceId: string;
|
|
owner: string;
|
|
repo: string;
|
|
/** Local display/group identity for the linked repository. */
|
|
repositoryName?: string;
|
|
};
|
|
|
|
export type CommitDetailTarget = LocalCommitDetailTarget | GitHubCommitDetailTarget;
|
|
|
|
export type OpenDiffOptions = {
|
|
source?: DiffSource;
|
|
repositoryName?: string;
|
|
prKey?: string;
|
|
changeLayer?: ChangeLayer;
|
|
};
|
|
|
|
export type DiffSheetMode =
|
|
| { kind: "all" }
|
|
| {
|
|
kind: "file";
|
|
path: string;
|
|
sourceFilter?: "all" | DiffSource;
|
|
repositoryName?: string;
|
|
prKey?: string;
|
|
changeLayer?: ChangeLayer;
|
|
}
|
|
| { kind: "commit"; target: CommitDetailTarget };
|