UNPKG

renovate

Version:

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

177 lines (176 loc) 6.2 kB
import { EXTERNAL_HOST_ERROR, MISSING_API_CREDENTIALS, REPOSITORY_CLOSED_ONBOARDING, REPOSITORY_DISABLED, REPOSITORY_DISABLED_BY_CONFIG, REPOSITORY_NO_CONFIG, SYSTEM_INSUFFICIENT_DISK_SPACE, TEMPORARY_ERROR, UNKNOWN_ERROR } from "../../constants/error-messages.js"; import { logger } from "../../logger/index.js"; import { ExternalHostError } from "../../types/errors/external-host-error.js"; import { instrument } from "../../instrumentation/index.js"; import { raiseConfigWarningIssue, raiseCredentialsWarningIssue } from "./error-config.js"; //#region lib/workers/repository/error.ts async function handleError(config, err) { return instrument("handleError", async () => { if (err.message === "uninitiated") { logger.info("Repository is uninitiated - skipping"); delete config.branchList; return err.message; } if (err.message === "empty") { logger.info("Repository is empty - skipping"); delete config.branchList; return err.message; } switch (err.message) { case REPOSITORY_CLOSED_ONBOARDING: case REPOSITORY_DISABLED: case REPOSITORY_DISABLED_BY_CONFIG: case REPOSITORY_NO_CONFIG: logger.info("Repository is disabled - skipping"); return err.message; } if (err.message === "archived") { logger.info("Repository is archived - skipping"); delete config.branchList; return err.message; } if (err.message === "mirror") { logger.info("Repository is a mirror - skipping"); delete config.branchList; return err.message; } if (err.message === "renamed") { logger.info("Repository has been renamed - skipping"); delete config.branchList; return err.message; } if (err.message === "blocked") { delete config.branchList; logger.info("Repository is blocked - skipping"); return err.message; } if (err.message === "forbidden") { delete config.branchList; logger.info("Repository is forbidden"); return err.message; } if (err.message === "not-found") { delete config.branchList; logger.error("Repository is not found"); return err.message; } if (err.message === "fork-mode-forked") { logger.info("Repository is a fork and cannot be processed when Renovate is running in fork mode itself"); return err.message; } if (err.message === "fork") { logger.info("Repository is a fork and not manually configured - skipping - did you want to run with --fork-processing=enabled?"); return err.message; } if (err.message === "cannot-fork") { logger.info("Cannot fork repository - skipping"); return err.message; } if (err.message === "fork-missing") { logger.info("Cannot find fork required for fork mode - skipping"); return err.message; } if (err.message === "no-package-files") { logger.info("Repository has no package files - skipping"); return err.message; } if (err.message === "no-vulnerability-alerts") { logger.info("Repository has no vulnerability alerts - skipping"); return err.message; } if (err.message === "repository-changed") { logger.info("Repository has changed during renovation - aborting"); delete config.branchList; return err.message; } if (err.message === "config-validation") { delete config.branchList; if (config.configValidationError) logger.error({ error: err }, "Repository has invalid config"); else logger.warn({ error: err }, "Repository has invalid config"); await raiseConfigWarningIssue(config, err); return err.message; } if (err.message === "missing-api-credentials") { delete config.branchList; logger.info({ error: err }, MISSING_API_CREDENTIALS); await raiseCredentialsWarningIssue(config, err); return err.message; } if (err.message === "config-secrets-exposed") { delete config.branchList; logger.warn({ error: err }, "Repository aborted due to potential secrets exposure"); return err.message; } if (err instanceof ExternalHostError) { logger.warn({ hostType: err.hostType, packageName: err.packageName, err: err.err }, "Host error"); logger.info("External host error causing abort - skipping"); delete config.branchList; return EXTERNAL_HOST_ERROR; } if (err.message.includes("No space left on device") || err.message === "disk-space") { logger.error("Disk space error - skipping"); delete config.branchList; return SYSTEM_INSUFFICIENT_DISK_SPACE; } if (err.message === "rate-limit-exceeded") { logger.warn("Rate limit exceeded - aborting"); delete config.branchList; return err.message; } if (err.message === "out-of-memory") { logger.warn("Insufficient memory - aborting"); delete config.branchList; return err.message; } if (err.message === "bad-credentials") { logger.warn("Bad credentials - aborting"); delete config.branchList; return err.message; } if (err.message === "integration-unauthorized") { logger.warn("Integration unauthorized - aborting"); delete config.branchList; return err.message; } if (err.message === "authentication-error") { logger.warn("Authentication error - aborting"); delete config.branchList; return err.message; } if (err.message === "temporary-error") { logger.info("Temporary error - aborting"); delete config.branchList; return err.message; } if (err.message === "lockfile-error") { delete config.branchList; logger.info("Lock file error - aborting"); delete config.branchList; return err.message; } if (err.message.includes("The requested URL returned error: 5")) { logger.warn({ err }, "Git error - aborting"); delete config.branchList; return EXTERNAL_HOST_ERROR; } if (err.message.includes("remote end hung up unexpectedly") || err.message.includes("access denied or repository not exported")) { logger.warn({ err }, "Git error - aborting"); delete config.branchList; return EXTERNAL_HOST_ERROR; } if (err.message.includes("fatal: not a git repository")) { delete config.branchList; return TEMPORARY_ERROR; } logger.error({ err }, `Repository has unknown error`); delete config.branchList; return UNKNOWN_ERROR; }); } //#endregion export { handleError as default }; //# sourceMappingURL=error.js.map