renovate
Version:
Automated dependency updates. Flexible so you don't need to be.
162 lines (161 loc) • 4.42 kB
TypeScript
import type { RepositoryCacheConfig, RepositoryCacheType, UpdateType } from '../../../config/types';
import type { PackageFile } from '../../../modules/manager/types';
import type { RepoInitConfig } from '../../../workers/repository/init/types';
import type { ExtractResult } from '../../../workers/repository/process/extract-update';
import type { PrBlockedBy } from '../../../workers/types';
export interface BaseBranchCache {
revision?: number;
sha: string;
configHash: string;
extractionFingerprints: Record<string, string | undefined>;
packageFiles: Record<string, PackageFile[]>;
}
export interface BranchUpgradeCache {
currentDigest?: string;
currentValue?: string;
datasource?: string;
depName?: string;
depType?: string;
displayPending?: unknown;
fixedVersion?: string;
currentVersion?: string;
packageName?: string;
newDigest?: string;
newValue?: string;
newVersion?: string;
sourceUrl?: string;
packageFile?: string;
remediationNotPossible?: unknown;
updateType?: UpdateType;
}
export interface OnboardingBranchCache {
defaultBranchSha: string;
onboardingBranchSha: string;
isConflicted: boolean;
isModified: boolean;
configFileName?: string;
configFileParsed?: string;
}
export interface ReconfigureBranchCache {
reconfigureBranchSha: string;
isConfigValid: boolean;
extractResult?: ExtractResult;
}
export interface PrCache {
/**
* Fingerprint of the PR body
*/
fingerprint?: string;
bodyFingerprint: string;
/**
* last PR modified ISO timestamp
*/
lastEdited: string;
}
export interface BranchCache {
/**
* Whether this branch has automerge enabled
*/
automerge?: boolean;
/**
* Name of base branch
*/
baseBranch?: string;
/**
* The base branch's most recent commit SHA
*/
baseBranchSha?: string | null;
/**
* Hash of the manager fingerprints and the filtered update branch config
*/
branchFingerprint?: string;
commitFingerprint?: string;
/**
* Branch name
*/
branchName: string;
/**
* Whether the update branch is behind base branch
*/
isBehindBase?: boolean;
/**
* Whether the update branch is in conflict with base branch
*/
isConflicted?: boolean;
/**
* Whether a person not listed in gitIgnoredAuthors updated the branch.
*/
isModified?: boolean;
/**
*
*/
pristine?: boolean;
/**
* Pr number of PR created from this branch
*/
prNo: number | null;
/**
* The branch's most recent commit SHA
*/
sha?: string | null;
/**
* Details on the dependency upgrades that have been applied in this branch
*/
upgrades: BranchUpgradeCache[];
/**
* Object that has PR info
*/
prCache?: PrCache | null;
/**
* Dependency dashboard information
*/
prBlockedBy?: PrBlockedBy;
prTitle?: string;
result?: string;
}
export interface RepoCacheData {
configFileName?: string;
httpCache?: Record<string, unknown>;
semanticCommits?: 'enabled' | 'disabled';
branches?: BranchCache[];
init?: RepoInitConfig;
scan?: Record<string, BaseBranchCache>;
lastPlatformAutomergeFailure?: string;
platform?: {
gitea?: {
pullRequestsCache?: unknown;
};
github?: {
/**
* To avoid circular dependency problem, we use `unknown` type here.
*/
pullRequestsCache?: unknown;
graphqlPageCache?: unknown;
issuesCache?: Record<number, unknown>;
};
bitbucket?: {
pullRequestsCache?: unknown;
};
gitlab?: {
pullRequestsCache?: unknown;
};
bitbucketServer?: {
pullRequestsCache?: unknown;
};
};
prComments?: Record<number, Record<string, string>>;
onboardingBranchCache?: OnboardingBranchCache;
reconfigureBranchCache?: ReconfigureBranchCache;
}
export interface RepoCache {
load(): Promise<void>;
save(): Promise<void>;
getData(): RepoCacheData;
isModified(): boolean | undefined;
}
export interface RepoCacheConfig {
repository?: string;
repositoryCache?: RepositoryCacheConfig;
repositoryCacheType?: RepositoryCacheType;
repoFingerprint: string;
}