renovate/lib/workers/repository/error.js

78 lines
3.2 KiB
JavaScript
Raw Normal View History

const { raiseConfigWarningIssue } = require('./error-config');
const { raiseLockFileIssue } = require('./error-lockfile');
module.exports = {
handleError,
};
async function handleError(config, err) {
if (err.message === 'uninitiated') {
logger.info('Repository is uninitiated - skipping');
delete config.branchList; // eslint-disable-line no-param-reassign
return err.message;
} else if (err.message === 'disabled') {
logger.info('Repository is disabled - skipping');
return err.message;
} else if (err.message === 'archived') {
logger.info('Repository is archived - skipping');
2018-02-04 20:20:28 +00:00
delete config.branchList; // eslint-disable-line no-param-reassign
return err.message;
} else if (err.message === 'renamed') {
logger.info('Repository has been renamed - skipping');
delete config.branchList; // eslint-disable-line no-param-reassign
return err.message;
} else if (err.message === 'blocked') {
delete config.branchList; // eslint-disable-line no-param-reassign
logger.info('Repository is blocked - skipping');
return err.message;
2018-02-05 21:23:50 +00:00
} else if (err.message === 'forbidden') {
delete config.branchList; // eslint-disable-line no-param-reassign
logger.info('Repository is forbidden');
return err.message;
2017-12-31 19:47:46 +00:00
} else if (err.message === 'not-found') {
delete config.branchList; // eslint-disable-line no-param-reassign
logger.error('Repository is not found');
2017-12-31 19:47:46 +00:00
return err.message;
} else if (err.message === 'fork') {
logger.info('Repository is a fork and not manually configured - skipping');
return err.message;
} else if (err.message === 'no-package-files') {
logger.info('Repository has no package files - skipping');
return err.message;
} else if (err.message === 'repository-changed') {
logger.info('Repository has changed during renovation - aborting');
delete config.branchList; // eslint-disable-line no-param-reassign
return err.message;
} else if (err.message === 'config-validation') {
delete config.branchList; // eslint-disable-line no-param-reassign
logger.info({ error: err }, 'Repository has invalid config');
await raiseConfigWarningIssue(config, err);
return err.message;
} else if (err.message === 'registry-failure') {
logger.info('Registry error - skipping');
delete config.branchList; // eslint-disable-line no-param-reassign
return err.message;
} else if (err.message === 'rate-limit-exceeded') {
logger.warn('Rate limit exceeded - aborting');
delete config.branchList; // eslint-disable-line no-param-reassign
return err.message;
} else if (err.message === 'lockfile-error') {
delete config.branchList; // eslint-disable-line no-param-reassign
await raiseLockFileIssue(err);
return err.message;
}
// Swallow this error so that other repositories can be processed
logger.error(
{
err,
message: err.message,
body: err.response ? err.response.body : undefined,
},
`Repository has unknown error`
);
// delete branchList to avoid cleaning up branches
delete config.branchList; // eslint-disable-line no-param-reassign
logger.info({ err, message: err.message }, 'Unknown error');
return 'unknown-error';
}