renovate
Version:
Automated dependency updates. Flexible so you don't need to be.
154 lines (153 loc) • 3.13 kB
TypeScript
import { GitOptions } from "../../types/git.js";
import { PlatformCommitOptions } from "../../config/types.js";
import { StatusResult } from "simple-git";
//#region lib/util/git/types.d.ts
type GitNoVerifyOption = 'commit' | 'push';
/**
* We want to make sure this is a long sha of 40 characters and not just any string
*/
type LongCommitSha = string & {
__longCommitSha: never;
};
interface StorageConfig {
currentBranch?: string;
defaultBranch?: string;
url: string;
upstreamUrl?: string | undefined;
extraCloneOpts?: GitOptions;
cloneSubmodules?: boolean;
cloneSubmodulesFilter?: string[];
fullClone?: boolean;
}
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;
}
interface FileDeletion {
/**
* Deletion removes the file
*/
type: 'deletion';
/**
* Relative file path
*/
path: string;
}
type FileChange = FileAddition | FileDeletion;
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;
}
interface PushFilesConfig {
sourceRef: string;
targetRef?: string;
files: FileChange[];
pushOptions?: string[];
}
interface CommitResult {
parentCommitSha: LongCommitSha;
commitSha: LongCommitSha;
files: FileChange[];
}
type GitObjectType = 'blob' | 'tree' | 'commit';
interface DiffTreeItem {
path: string;
mode: string;
type: GitObjectType;
sha: LongCommitSha | null;
}
type GitOperationType =
/**
* The `git clone` sub-command.
*/
'clone'
/**
* The `git reset` sub-command.
*/
| 'reset'
/**
* The `git checkout` sub-command.
*/
| 'checkout'
/**
* The `git fetch` sub-command.
*/
| 'fetch'
/**
* The `git pull` sub-command.
*/
| 'pull'
/**
* The `git push` sub-command.
*/
| 'push'
/**
* The `git clean` sub-command.
*/
| 'clean'
/**
* The `git merge` sub-command.
*/
| 'merge'
/**
* The `git submodule` sub-command.
*/
| 'submodule'
/**
* The `git commit` sub-command.
*/
| 'commit'
/**
* The `git branch` sub-command.
*/
| 'branch'
/**
* Any internal "plumbing" commands
*
* - `git update-index`
*
* See also: https://git-scm.com/book/en/v2/Git-Internals-Plumbing-and-Porcelain
*/
| 'plumbing'
/**
* Any other operations i.e.
*
* - `git add`
* - `git branch`
* - `git config`
* - `git diff`
* - `git log`
* - `git ls-remote`
* - `git remote`
* - `git rev-parse`
* - `git status`
*
* See also: https://git-scm.com/book/en/v2/Git-Internals-Plumbing-and-Porcelain
*/
| 'other';
//#endregion
export { CommitFilesConfig, CommitResult, DiffTreeItem, FileChange, GitNoVerifyOption, GitOperationType, LongCommitSha, PushFilesConfig, type StatusResult, StorageConfig };
//# sourceMappingURL=types.d.ts.map