From 1c25eb7b4e0dd8d5e18b8defeaab3f18f31633b7 Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@keylocation.sg> Date: Thu, 19 Jan 2017 10:27:31 +0100 Subject: [PATCH] Support enabled boolean configuration Closes #60 --- docs/configuration.md | 5 +++-- lib/config/default.js | 1 + lib/worker.js | 14 +++++++++++++- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/docs/configuration.md b/docs/configuration.md index e41edaee9a..2c42c39065 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -24,7 +24,7 @@ Using a configuration file gives you very granular configuration options. For in ```javascript module.exports = { - labels: ['defaults'], + labels: ['upgrade'], depTypes: ['dependencies', 'devDependencies'], repositories: [ { @@ -33,7 +33,7 @@ module.exports = { 'package.json', { fileName: 'frontend/package.json', - labels: ['frontend'] + labels: ['upgrade', 'frontend'] }, ], }, @@ -101,6 +101,7 @@ Obviously, you can't set repository or package file location with this method. | Option | Description | Default value | File | Environment | CLI | |---------------------|---------------------------------------------------------|-----------------------------------------------------------|---------------------------|--------------------------|---------------------------| | Token | GitHub Personal Access Token | | `token` | `GITHUB_TOKEN` | `--token` | +| Enabled | Enable/Disable renovate for this repo or file | true | `enabled` | | | | Repositories | List of Repositories | | `repositories` | `RENOVATE_REPOS` | Space-delimited arguments | | Package Files | Package file location(s) | `[]` | `repository.packageFiles` | `RENOVATE_PACKAGE_FILES` | `--package-files` | | Dependency Types | Sections of package.json to renovate | `dependencies`, `devDependencies`, `optionalDependencies` | `depTypes` | `RENOVATE_DEP_TYPES` | `--dep-types` | diff --git a/lib/config/default.js b/lib/config/default.js index 0681749e5f..91ac5d9866 100644 --- a/lib/config/default.js +++ b/lib/config/default.js @@ -1,4 +1,5 @@ module.exports = { + enabled: true, packageFiles: [], // Autodiscover depTypes: ['dependencies', 'devDependencies', 'optionalDependencies'], ignoreDeps: [], diff --git a/lib/worker.js b/lib/worker.js index a6f58bee8e..391f944349 100644 --- a/lib/worker.js +++ b/lib/worker.js @@ -22,6 +22,7 @@ function renovate(repoName, packageFile, setConfig) { // Start the chain return github.getFileJson(packageFile) .then(checkforRenovateConfig) + .then(checkIfEnabled) .then(contents => packageJson.extractDependencies(contents, config.depTypes)) .then(filterIgnoredDependencies) .then(findUpgrades) @@ -30,7 +31,9 @@ function renovate(repoName, packageFile, setConfig) { logger.info(`${repoName} ${packageFile} done`); }) .catch((error) => { - logger.error(`renovate caught error: ${error}`); + if (error !== 'renovate disabled') { + logger.error(`renovate caught error: ${error}`); + } }); } @@ -43,6 +46,15 @@ function checkforRenovateConfig(packageContent) { return packageContent; } +// Rejects promise if config.enabled = false +function checkIfEnabled(packageContent) { + if (!config.enabled) { + logger.info('Config is disabled. Skipping'); + return Promise.reject('renovate disabled'); + } + return packageContent; +} + // Remove any dependencies that are on the ignore list function filterIgnoredDependencies(dependencies) { return dependencies.filter(dependency => config.ignoreDeps.indexOf(dependency.depName) === -1); -- GitLab