Files
kandev/apps/web/components/task/changes-diff-target.ts
T

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 };