UNPKG

renovate

Version:

Automated dependency updates. Flexible so you don't need to be.

104 lines (103 loc) 2.69 kB
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; }