renovate
Version:
Automated dependency updates. Flexible so you don't need to be.
104 lines (103 loc) • 2.69 kB
TypeScript
import type { PlatformCommitOptions } from '../../config/types';
import type { GitOptions } from '../../types/git';
export type { DiffResult, StatusResult } from 'simple-git';
export interface GitAuthor {
name?: string | null;
address?: string;
}
export type GitNoVerifyOption = 'commit' | 'push';
/**
* We want to make sure this is a long sha of 40 characters and not just any string
*/
export type LongCommitSha = string & {
__longCommitSha: never;
};
export interface StorageConfig {
currentBranch?: string;
defaultBranch?: string;
url: string;
upstreamUrl?: string | undefined;
extraCloneOpts?: GitOptions;
cloneSubmodules?: boolean;
cloneSubmodulesFilter?: string[];
fullClone?: boolean;
}
export interface LocalConfig extends StorageConfig {
additionalBranches: string[];
currentBranch: string;
currentBranchSha: LongCommitSha;
branchCommits: Record<string, LongCommitSha>;
branchIsModified: Record<string, boolean>;
commitBranches: Record<string, string[]>;
ignoredAuthors: string[];
gitAuthorName?: string | null;
gitAuthorEmail?: string;
writeGitDone?: boolean;
}
export interface FileAddition {
/**
* Addition creates new file or modifies existing one
*/
type: 'addition';
/**
* Relative file path
*/
path: string;
/**
* File contents
*/
contents: string | Buffer | null;
/**
* The executable bit
*/
isExecutable?: boolean;
isSymlink?: boolean;
}
export interface FileDeletion {
/**
* Deletion removes the file
*/
type: 'deletion';
/**
* Relative file path
*/
path: string;
}
export type FileChange = FileAddition | FileDeletion;
export interface CommitFilesConfig {
baseBranch?: string;
branchName: string;
files: FileChange[];
message: string | string[];
force?: boolean;
platformCommit?: PlatformCommitOptions;
/** Only needed by Gerrit platform */
prTitle?: string;
/** Only needed by Gerrit platform */
autoApprove?: boolean;
}
export interface PushFilesConfig {
sourceRef: string;
targetRef?: string;
files: FileChange[];
}
export type BranchName = string;
export interface CommitResult {
parentCommitSha: LongCommitSha;
commitSha: LongCommitSha;
files: FileChange[];
}
export interface TreeItem {
path: string;
mode: string;
type: string;
sha: LongCommitSha;
}
/**
* Represents a git authentication rule in the form of e.g.:
* git config --global url."https://api@github.com/".insteadOf "https://github.com/"
*/
export interface AuthenticationRule {
url: string;
insteadOf: string;
}