import { Category } from "../constants/category.js"; import { PlatformId } from "../constants/platforms.js"; import { LogLevelRemap } from "../logger/types.js"; import { ManagerName } from "../manager-list.generated.js"; import { ConstraintName, ToolName } from "../util/exec/types.js"; import { Timestamp } from "../util/timestamp.js"; import { GitNoVerifyOption } from "../util/git/types.js"; import { RepoSortMethod, SortMethod } from "../modules/platform/types.js"; import { MergeConfidence } from "../util/merge-confidence/types.js"; import { HostRule } from "../types/host-rules.js"; import { SkipReason, StageName } from "../types/skip-reason.js"; import { RangeStrategy } from "../types/versioning.js"; import { AutoMergeType, Nullish } from "../types/index.js"; import { CustomManager } from "../modules/manager/custom/types.js"; //#region lib/config/types.d.ts type RenovateConfigStage = 'global' | 'inherit' | 'repository' | 'package' | 'branch' | 'pr'; type RenovateSplit = 'init' | 'onboarding' | 'extract' | 'lookup' | 'update'; type RepositoryCacheConfig = 'disabled' | 'enabled' | 'reset'; type RepositoryCacheType = 'local' | (string & {}); type DryRunConfig = 'extract' | 'lookup' | 'full'; type RequiredConfig = 'required' | 'optional' | 'ignored'; interface GroupConfig extends Record { branchName?: string; branchTopic?: string; } type RecreateWhen = 'auto' | 'never' | 'always'; type PlatformCommitOptions = 'auto' | 'disabled' | 'enabled'; type BinarySource = 'docker' | 'global' | 'install' | 'hermit'; /** * Any configuration that could be used either top-level in a repository config (or Global, Inherited or Shareable Preset configuration), or: * * - in a datasource-specific configuration * - in a manager-specific configuration * - in a Package Rule * * @see RenovateConfig for the superset of all configuration allowed in a given repository * */ interface RenovateSharedConfig { $schema?: string; abandonmentThreshold?: Nullish; addLabels?: string[]; assignAutomerge?: boolean; autoApprove?: boolean; autoReplaceGlobalMatch?: boolean; automerge?: boolean; automergeSchedule?: string[]; automergeStrategy?: MergeStrategy; automergeType?: AutoMergeType; azureWorkItemId?: number; branchName?: string; branchNameStrict?: boolean; branchPrefix?: string; branchPrefixOld?: string; bumpVersions?: BumpVersionConfig[]; commitBody?: string; commitBodyTable?: boolean; commitMessage?: string; commitMessageAction?: string; commitMessageExtra?: string; commitMessageLowerCase?: 'auto' | 'never'; commitMessagePrefix?: string; commitMessageTopic?: string; confidential?: boolean; configValidationError?: boolean; changelogUrl?: string; dependencyDashboardApproval?: boolean; draftPR?: boolean; enabled?: boolean; enabledManagers?: string[]; encrypted?: Record; extends?: string[]; extractVersion?: string; managerFilePatterns?: string[]; followTag?: string; force?: RenovateConfig; gitIgnoredAuthors?: string[]; group?: GroupConfig; groupName?: string; groupSlug?: string; hashedBranchLength?: number; ignoreDeps?: string[]; ignorePaths?: string[]; ignoreTests?: boolean; ignoreUnstable?: boolean; includePaths?: string[]; internalChecksAsSuccess?: boolean; internalChecksFilter?: 'strict' | 'flexible' | 'none'; keepUpdatedLabel?: string; labels?: string[]; manager?: string; milestone?: number; minimumReleaseAge?: Nullish; npmrc?: string; npmrcMerge?: boolean; npmToken?: string; pinDigests?: boolean; platformAutomerge?: boolean; platformCommit?: PlatformCommitOptions; postUpgradeTasks?: PostUpgradeTasks; prBodyColumns?: string[]; prBodyDefinitions?: Record; prBodyHeadingDefinitions?: Record; prBodyNotes?: string[]; prCreation?: 'immediate' | 'not-pending' | 'status-success' | 'approval'; prFooter?: string; prHeader?: string; prPriority?: number; prTitle?: string; prTitleStrict?: boolean; productLinks?: Record; pruneBranchAfterAutomerge?: boolean; rangeStrategy?: RangeStrategy; rebaseLabel?: string; rebaseWhen?: string; recreateClosed?: boolean; recreateWhen?: RecreateWhen; repository?: string; repositoryCache?: RepositoryCacheConfig; repositoryCacheType?: RepositoryCacheType; respectLatest?: boolean; rollbackPrs?: boolean; schedule?: string[]; semanticCommitScope?: string | null; semanticCommitType?: string; semanticCommits?: 'auto' | 'enabled' | 'disabled'; separateMajorMinor?: boolean; separateMinorPatch?: boolean; separateMultipleMajor?: boolean; separateMultipleMinor?: boolean; skipArtifactsUpdate?: boolean; stopUpdatingLabel?: string; suppressNotifications?: string[]; timezone?: string; unicodeEmoji?: boolean; updateNotScheduled?: boolean; versioning?: string; versionCompatibility?: string; } /** * Contains all options with globalOnly=true && inheritConfigSupport=true */ interface GlobalInheritableConfig { bbUseDevelopmentBranch?: boolean; configFileNames?: string[]; onboarding?: boolean; onboardingAutoCloseAge?: number; onboardingBranch?: string; onboardingCommitMessage?: string; onboardingConfig?: RenovateConfig; onboardingConfigFileName?: string; onboardingNoDeps?: 'auto' | 'enabled' | 'disabled'; onboardingPrTitle?: string; requireConfig?: RequiredConfig; } /** @deprecated use `RepoGlobalConfig` instead **/ interface GlobalOnlyConfigLegacy { autodiscover?: boolean; autodiscoverFilter?: string[] | string; autodiscoverNamespaces?: string[]; autodiscoverProjects?: string[]; autodiscoverTopics?: string[]; baseDir?: string; cacheDir?: string; containerbaseDir?: string; detectHostRulesFromEnv?: boolean; dockerCliOptions?: string; endpoint?: string; forceCli?: boolean; gitNoVerify?: GitNoVerifyOption[]; gitPrivateKey?: string; gitPrivateKeyPassphrase?: string; globalExtends?: string[]; mergeConfidenceDatasources?: string[]; mergeConfidenceEndpoint?: string; platform?: PlatformId; processEnv?: Record; prCommitsPerRunLimit?: number; privateKey?: string; privateKeyOld?: string; privateKeyPath?: string; privateKeyPathOld?: string; redisPrefix?: string; redisUrl?: string; repositories?: RenovateRepository[]; useCloudMetadataServices?: boolean; deleteConfigFile?: boolean; deleteAdditionalConfigFile?: boolean; } /** * Any global-only configuration set by self-hosted administrators. * * Used within the repository worker. * * Should only contain config options where globalOnly=true. */ interface RepoGlobalConfig extends GlobalInheritableConfig { allowedCommands?: string[]; allowCustomCrateRegistries?: boolean; allowPlugins?: boolean; allowScripts?: boolean; allowShellExecutorForPostUpgradeCommands?: boolean; allowedEnv?: string[]; allowedHeaders?: string[]; binarySource?: BinarySource; cacheDir?: string; cacheHardTtlMinutes?: number; cacheTtlOverride?: Record; containerbaseDir?: string; customEnvVariables?: Record; dockerChildPrefix?: string; dockerCliOptions?: string; dockerSidecarImage?: string; dockerUser?: string; dryRun?: DryRunConfig; encryptedWarning?: string; endpoint?: string; executionTimeout?: number; exposeAllEnv?: boolean; gitTimeout?: number; githubTokenWarn?: boolean; includeMirrors?: boolean; localDir?: string; migratePresets?: Record; platform?: PlatformId; prCacheSyncMaxPages?: number; presetCachePersistence?: boolean; httpCacheTtlDays?: number; autodiscoverRepoSort?: RepoSortMethod; autodiscoverRepoOrder?: SortMethod; userAgent?: string; dockerMaxPages?: number; s3Endpoint?: string; s3PathStyle?: boolean; cachePrivatePackages?: boolean; repositoryCacheForceLocal?: boolean; configFileNames?: string[]; ignorePrAuthor?: boolean; allowedUnsafeExecutions?: AllowedUnsafeExecution[]; onboardingAutoCloseAge?: number; toolSettings?: ToolSettingsOptions; } /** * Those options are global only but still passed into the repository worker config. * * @deprecated https://github.com/renovatebot/renovate/issues/39693 */ interface LegacyAdminConfig { baseDir?: string; localDir?: string; logContext?: string; onboarding?: boolean; onboardingBranch?: string; onboardingNoDeps?: 'auto' | 'enabled' | 'disabled'; onboardingRebaseCheckbox?: boolean; onboardingConfig?: RenovateConfig; onboardingConfigFileName?: string; optimizeForDisabled?: boolean; persistRepoData?: boolean; prCommitsPerRunLimit?: number; requireConfig?: RequiredConfig; useCloudMetadataServices?: boolean; writeDiscoveredRepos?: string; } type ExecutionMode = 'branch' | 'update'; interface PostUpgradeTasks { commands?: string[]; workingDirTemplate?: string; dataFileTemplate?: string; fileFilters?: string[]; executionMode: ExecutionMode; installTools?: Partial>>; } type UpdateConfig = Partial>; type RenovateRepository = string | (RenovateConfig & { repository: string; }); type UseBaseBranchConfigType = 'merge' | 'none'; type ConstraintsFilter = 'strict' | 'none'; type MinimumReleaseAgeBehaviour = 'timestamp-required' | 'timestamp-optional'; declare const allowedStatusCheckStrings: readonly ["minimumReleaseAge", "mergeConfidence", "configValidation", "artifactError"]; type StatusCheckKey = (typeof allowedStatusCheckStrings)[number]; type UserEnv = Record; /** * Computed properties, for internal use only */ interface RenovateInternalConfig { /** computed base branch from patterns - for internal use only */ baseBranches?: string[]; currentCompatibility?: string; datasource?: string; hasBaseBranches?: boolean; isFork?: boolean; isVulnerabilityAlert?: boolean; /** What is this used for? */ remediations?: unknown; /** What is this used for? */ vulnerabilityAlertsOnly?: boolean; } /** * Configuration that could be used either top-level in a repository config (or Global, Inherited or Shareable Preset configuration). * * This is a superset of any configuration that a Renovate user (not self-hosted administrator) can set. */ interface RenovateConfig extends LegacyAdminConfig, RenovateSharedConfig, UpdateConfig, AssigneesAndReviewersConfig, ConfigMigration, RenovateInternalConfig { s3Endpoint?: string; s3PathStyle?: boolean; reportFormatting?: boolean; reportPath?: string; reportType?: 'logging' | 'file' | 's3' | null; depName?: string; /** user configurable base branch patterns*/ baseBranchPatterns?: string[]; useBaseBranchConfig?: UseBaseBranchConfigType; baseBranch?: string; defaultBranch?: string; branchList?: string[]; cloneSubmodules?: boolean; cloneSubmodulesFilter?: string[]; description?: string | string[]; detectGlobalManagerConfig?: boolean; errors?: ValidationMessage[]; forkModeDisallowMaintainerEdits?: boolean; forkProcessing?: 'auto' | 'enabled' | 'disabled'; forkToken?: string; gitAuthor?: string; hostRules?: HostRule[]; inheritConfig?: boolean; inheritConfigFileName?: string; inheritConfigRepoName?: string; inheritConfigStrict?: boolean; ignorePresets?: string[]; fileList?: string[]; configWarningReuseIssue?: boolean; dependencyDashboard?: boolean; dependencyDashboardAutoclose?: boolean; dependencyDashboardChecks?: Record; dependencyDashboardIssue?: number; dependencyDashboardTitle?: string; dependencyDashboardHeader?: string; dependencyDashboardFooter?: string; dependencyDashboardLabels?: string[]; dependencyDashboardOSVVulnerabilitySummary?: 'none' | 'all' | 'unresolved'; dependencyDashboardReportAbandonment?: boolean; mode?: 'silent' | 'full'; packageFile?: string; packageRules?: PackageRule[]; postUpdateOptions?: string[]; branchConcurrentLimit?: number | null; parentOrg?: string; prConcurrentLimit?: number; commitHourlyLimit?: number; prHourlyLimit?: number; printConfig?: boolean; pruneStaleBranches?: boolean; defaultRegistryUrls?: string[]; registryUrls?: string[] | null; registryAliases?: Record; /** * What is this used for? * @deprecated */ renovateJsonPresent?: boolean; repoIsOnboarded?: boolean; repoIsActivated?: boolean; topLevelOrg?: string; updateInternalDeps?: boolean; updateType?: UpdateType; warnings?: ValidationMessage[]; vulnerabilityAlerts?: RenovateSharedConfig; osvVulnerabilityAlerts?: boolean; vulnerabilitySeverity?: string; customManagers?: CustomManager[]; customDatasources?: Record; fetchChangeLogs?: FetchChangeLogsOptions; secrets?: Record; variables?: Record; constraints?: Partial>; skipInstalls?: boolean | null; constraintsFiltering?: ConstraintsFilter; checkedBranches?: string[]; customizeDashboard?: Record; statusCheckNames?: Record; /** * User configured environment variables that Renovate uses when executing package manager commands */ env?: UserEnv; logLevelRemap?: LogLevelRemap[]; branchTopic?: string; additionalBranchPrefix?: string; sharedVariableName?: string; minimumGroupSize?: number; configFileNames?: string[]; minimumReleaseAgeBehaviour?: MinimumReleaseAgeBehaviour; toolSettings?: ToolSettingsOptions; } declare const CustomDatasourceFormats: readonly ["html", "json", "plain", "toml", "yaml"]; type CustomDatasourceFormats = (typeof CustomDatasourceFormats)[number]; interface CustomDatasourceConfig { defaultRegistryUrlTemplate?: string; format?: CustomDatasourceFormats; transformTemplates?: string[]; } /** * The superset of all configuration that a self-hosted administrator can set, alongside all repository-level configuration. * */ interface AllConfig extends RenovateConfig, GlobalOnlyConfigLegacy, RepoGlobalConfig { password?: string; token?: string; username?: string; } interface AssigneesAndReviewersConfig { assigneesFromCodeOwners?: boolean; expandCodeOwnersGroups?: boolean; assignees?: string[]; assigneesSampleSize?: number; ignoreReviewers?: string[]; reviewersFromCodeOwners?: boolean; reviewers?: string[]; reviewersSampleSize?: number; additionalReviewers?: string[]; filterUnavailableUsers?: boolean; } type UpdateType = 'major' | 'minor' | 'patch' | 'pin' | 'digest' | 'pinDigest' | 'lockFileMaintenance' | 'lockfileUpdate' | 'rollback' | 'bump' | 'replacement'; declare const UpdateTypesOptions: readonly ["major", "minor", "patch", "pin", "digest", "pinDigest", "lockFileMaintenance", "rollback", "replacement"]; type UpdateTypeOptions = (typeof UpdateTypesOptions)[number]; type FetchChangeLogsOptions = 'off' | 'branch' | 'pr'; type MatchStringsStrategy = 'any' | 'recursive' | 'combination'; type MergeStrategy = 'auto' | 'fast-forward' | 'merge-commit' | 'rebase' | 'rebase-merge' | 'squash'; type AllowedUnsafeExecution = 'bazelModDeps' | 'goGenerate' | 'gradleWrapper'; interface PackageRule extends RenovateSharedConfig, RenovateInternalConfig, UpdateConfig { allowedVersions?: string; description?: string | string[]; matchBaseBranches?: string[]; matchCategories?: string[]; matchConfidence?: MergeConfidence[]; matchCurrentAge?: string; matchCurrentValue?: string; matchCurrentVersion?: string; matchDatasources?: string[]; matchDepNames?: string[]; matchDepTypes?: string[]; matchFileNames?: string[]; matchManagers?: string[]; matchNewValue?: string; matchPackageNames?: string[]; matchRepositories?: string[]; matchSourceUrls?: string[]; matchRegistryUrls?: string[]; matchUpdateTypes?: UpdateType[]; matchJsonata?: string[]; overrideDatasource?: string; overrideDepName?: string; overridePackageName?: string; registryUrls?: string[] | null; replacementName?: string; replacementVersion?: string; sourceUrl?: string; sourceDirectory?: string; vulnerabilitySeverity?: string; vulnerabilityFixVersion?: string; } interface ValidationMessage { topic: string; message: string; } type AllowedParents = '.' | 'bumpVersions' | 'customDatasources' | 'customManagers' | 'hostRules' | 'logLevelRemap' | 'packageRules' | 'postUpgradeTasks' | 'vulnerabilityAlerts' | 'toolSettings' | ManagerName | UpdateTypeOptions; interface RenovateOptionBase { /** * If true, the option can only be configured by people with access to the Renovate instance. * Furthermore, the option should be documented in docs/usage/self-hosted-configuration.md. */ globalOnly?: boolean; inheritConfigSupport?: boolean; allowedValues?: string[]; allowString?: boolean; cli?: boolean; description: string; env?: false | string; /** * Do not validate object children */ freeChoice?: boolean; mergeable?: boolean; autogenerated?: boolean; name: string; parents?: AllowedParents[]; stage?: RenovateConfigStage; experimental?: boolean; experimentalDescription?: string; experimentalIssues?: number[]; advancedUse?: boolean; /** * This is used to add a deprecation message in the docs */ deprecationMsg?: string; /** * For internal use only: add it to any config option that supports regex or glob matching */ patternMatch?: boolean; /** * For internal use only: add it to any config option of type integer that supports negative integers */ allowNegative?: boolean; /** * Managers which support this option, leave undefined if all managers support it. */ supportedManagers?: string[]; /** * Platforms which support this option, leave undefined if all platforms support it. */ supportedPlatforms?: PlatformId[]; /** * Conditions that must be met for this option to be required. */ requiredIf?: RenovateRequiredOption[]; } interface RenovateRequiredOption { siblingProperties: { property: string; value: string; }[]; } interface RenovateArrayOption = Record> extends RenovateOptionBase { default?: T[] | null; mergeable?: boolean; type: 'array'; subType?: 'string' | 'object' | 'number'; } interface RenovateStringArrayOption extends RenovateArrayOption { format?: 'regex'; subType: 'string'; } interface RenovateNumberArrayOption extends RenovateArrayOption { subType: 'number'; } interface RenovateBooleanOption extends RenovateOptionBase { default?: boolean | null; type: 'boolean'; } interface RenovateIntegerOption extends RenovateOptionBase { default?: number | null; type: 'integer'; } interface RenovateStringOption extends RenovateOptionBase { default?: string | null; format?: 'regex'; replaceLineReturns?: boolean; type: 'string'; } interface RenovateObjectOption extends RenovateOptionBase { default?: any; additionalProperties?: Record | boolean; mergeable?: boolean; type: 'object'; } type RenovateOptions = RenovateStringOption | RenovateNumberArrayOption | RenovateStringArrayOption | RenovateIntegerOption | RenovateBooleanOption | RenovateArrayOption | RenovateObjectOption; interface PackageRuleInputConfig extends RenovateConfig { versioning?: string; packageFile?: string; lockFiles?: string[]; depType?: string; depTypes?: string[]; depName?: string; packageName?: string | null; newValue?: string | null; currentValue?: string | null; currentVersion?: string; lockedVersion?: string; updateType?: UpdateType; mergeConfidenceLevel?: MergeConfidence | undefined; isBump?: boolean; sourceUrl?: string | null; categories?: string[]; baseBranch?: string; manager?: string; datasource?: string; packageRules?: (PackageRule & PackageRuleInputConfig)[]; releaseTimestamp?: Timestamp | null; repository?: string; currentVersionAgeInDays?: number; currentVersionTimestamp?: string; enabled?: boolean; skipReason?: SkipReason; skipStage?: StageName; } interface ConfigMigration { configMigration?: boolean; } interface MigratedConfig { /** * Indicates whether there was a migration applied to the configuration. * * @returns * `false` if the configuration does not need migrating, and `migratedConfig` can be ignored * `true` if the configuration was migrated, and if so, `migratedConfig` should be used instead of the provided config */ isMigrated: boolean; migratedConfig: RenovateConfig; } interface MigratedRenovateConfig extends RenovateConfig { endpoints?: HostRule[]; pathRules: PackageRule[]; packages: PackageRule[]; node?: RenovateConfig; travis?: RenovateConfig; gradle?: RenovateConfig; } interface ManagerConfig extends RenovateConfig { manager: string; categories?: Category[]; } interface ValidationResult { errors: ValidationMessage[]; warnings: ValidationMessage[]; } interface BumpVersionConfig { bumpType?: string; filePatterns: string[]; matchStrings: string[]; name?: string; } interface ToolSettingsOptions { jvmMaxMemory?: number; jvmMemory?: number; nodeMaxMemory?: number; } //#endregion export { AllConfig, AllowedParents, AllowedUnsafeExecution, AssigneesAndReviewersConfig, BinarySource, BumpVersionConfig, ConfigMigration, ConstraintsFilter, CustomDatasourceConfig, CustomDatasourceFormats, DryRunConfig, ExecutionMode, FetchChangeLogsOptions, GlobalInheritableConfig, GlobalOnlyConfigLegacy, GroupConfig, LegacyAdminConfig, ManagerConfig, MatchStringsStrategy, MergeStrategy, MigratedConfig, MigratedRenovateConfig, MinimumReleaseAgeBehaviour, PackageRule, PackageRuleInputConfig, PlatformCommitOptions, PostUpgradeTasks, RecreateWhen, RenovateArrayOption, RenovateBooleanOption, RenovateConfig, RenovateConfigStage, RenovateIntegerOption, RenovateInternalConfig, RenovateNumberArrayOption, RenovateObjectOption, RenovateOptionBase, RenovateOptions, RenovateRepository, RenovateRequiredOption, RenovateSharedConfig, RenovateSplit, RenovateStringArrayOption, RenovateStringOption, RepoGlobalConfig, RepositoryCacheConfig, RepositoryCacheType, RequiredConfig, StatusCheckKey, ToolSettingsOptions, UpdateConfig, UpdateType, UpdateTypeOptions, UpdateTypesOptions, UseBaseBranchConfigType, ValidationMessage, ValidationResult, allowedStatusCheckStrings }; //# sourceMappingURL=types.d.ts.map