export type CommitFile = { path: URL; status: "added" | "modified" | "deleted"; }; export type Hash = { long: string; short: string }; export type Contributor = { name: string; email: string; date: Date; }; export type SignatureType = "ssh" | "gpg" | "x509"; export type Commit = { files: CommitFile[]; hash: Hash; author: Contributor; committer: Contributor; signature?: { type: SignatureType; signer: string; key: Hash; rawMessage: string; }; };