Commit graph

384 commits

Author SHA1 Message Date
Rhys Arkins
ea447cfa0d
feat: depTypeList in packageRules (#1815)
Adds a field `depTypeList` to `packageRules`, enabling rules for packages to be applied for any `depType`. Config objects `dependencies`, `devDependencies` and `peerDependencies` will be deprecated in favour of this new approach.

Closes #1807
2018-04-09 16:10:34 +02:00
Rhys Arkins
b974d2f116 fix: don’t resolve onboardingConfig 2018-04-09 13:29:47 +02:00
Rhys Arkins
865ac3ea47 fix: mergeChildConfig should support nested mergeable=true 2018-04-09 13:19:23 +02:00
Steven Hargrove
02e52a8c79 feat: merge configured repositories with autodiscovered
Merges any static config from config.js with repositories list that is autodiscovered.

BREAKING CHANGE: Repositories in config.js will have their config combined with the autodiscover list and a warning if any statically configured repositories are not found.
2018-04-09 09:24:37 +02:00
Rhys Arkins
1f63173194 fix: remove enabled=true requirement from managers
Simplify manager definitions by removing need for explicit enabled=true
2018-04-09 08:23:59 +02:00
Rhys Arkins
662828ab1b fix: default pinVersions to false
Change default of pinVersions from null (autodetect) to false. Note: The preset “config:base” still reverts this to null/autodetect.

BREAKING CHANGE: pinVersions defaults to false. To switch back to autodetect, use preset “:autodetectPinVersions”, which is already included within “config:base”.
2018-04-09 07:43:08 +02:00
Rhys Arkins
756954efcd fix: remove semanticCommitType=fix default from dependencies
Removes hardcoded “fix” commitType from dependencies. Doing so allows for easier overriding without requiring complicated/deep presets or config.

BREAKING CHANGE: dependencies default semantic commit type now uses main config commit type (chore)
2018-04-09 07:33:20 +02:00
Rhys Arkins
0904588c3d feat: empty onboarding config
Changes the default onboarding config from `{ extends: [‘config:base’] }` to `{}` (empty). Self-hosted bot users can add it back by configuring `onboardingConfig` in `config.js` or env. Doing this makes the bot less “opinionated” by default and more convenient for self-hosted users, who can configured everything in config.js or env now.

Closes #1554

BREAKING CHANGE: onboarding config now defaults to empty config instead of config:base. Self-hosted users need to add it back if they with to retain it as default suggested config.
2018-04-09 07:25:24 +02:00
David
3afc78dab5 chore: renamed "user name" to "username" in definitions.js (#1805)
Changed `user name` to `username` in description to clarify we want a login name and not the user's actual name.
2018-04-07 09:26:29 +02:00
Steven Hargrove
4c3401cc34 refactor: simply repositories autodiscover 2018-04-04 14:13:19 +02:00
Rhys Arkins
0d92defb7d fix: resolve presets in config.js
Closes #1080
2018-04-04 14:08:10 +02:00
Steven Hargrove
393dcf58c8 fix: pasrse cli and env integers 2018-04-04 13:34:22 +02:00
Steven Hargrove
7b0ae535ab refactor: module.exports => exports 2018-04-04 13:26:05 +02:00
ikisialeu
484ef0cbcd feat: validate user regex (#1766)
Validate that user-inputted regex for package patterns are valid RegExp().

Closes #1450
2018-04-04 09:23:59 +02:00
Rhys Arkins
a2fab232b4 fix: raise config error issue for nested presets 2018-03-31 06:13:35 +02:00
Rhys Arkins
b15909f8df
feat: enabledManagers (#1755)
feat: enabledManagers
2018-03-30 17:00:51 +02:00
Rhys Arkins
974e210bd3 fix: set mergeable and cli options in manager definitions 2018-03-30 06:34:20 +02:00
Rhys Arkins
fb71523e7f fix: use Docker not Dockerfile in templates 2018-03-29 15:03:32 +02:00
Rhys Arkins
9d192ff075 feat: enable docker-compose by default
Flips Docker Compose config from default disabled to default enabled.
2018-03-29 14:20:05 +02:00
Rhys Arkins
94a5240858
feat: CircleCI docker image support (#1732)
Adds support for renovating docker image definitions in CircleCI 2 config files (`.circleci/config.yml`).

Closes #1714
2018-03-28 20:12:56 +02:00
Rhys Arkins
b724a411da
feat: Docker Compose support (#1729)
Adds support for renovating Docker Compose files (e.g. `docker-compose.yml`). Functionality is essentially the same as the existing `Dockerfile` capabilities, so config for `docker` is shared with `docker-compose` but may also be overridden.

Merging as disabled by default - will wait for some opt-in testing before turning it on by default.

Closes #832
2018-03-28 15:24:42 +02:00
Rhys Arkins
906c6273c7 fix: raise config errors for package rules missing selectors 2018-03-28 15:13:32 +02:00
Rhys Arkins
b89f448946
feat: validate packageRule selectors (#1728)
Validates that each packageRule must contain at least one selector. Resolves the rule first to allow for presets.

Closes #1345, Closes #1693
2018-03-28 10:04:07 +02:00
Rhys Arkins
2611b52489 refactor: move extends validation inside list validation 2018-03-28 09:37:19 +02:00
Rhys Arkins
37035480f1 refactor: validate list only if non-empty 2018-03-28 09:36:09 +02:00
Rhys Arkins
41072f3d42 log: drop Found presets log 2018-03-28 09:25:22 +02:00
Rhys Arkins
9ab4e55bc5 chore: reduce logger.debug volume 2018-03-27 21:57:02 +02:00
Rhys Arkins
9e44b33f27 chore: log decryptConfig 2018-03-25 22:47:47 +02:00
Rhys Arkins
3acda0e524 chore: log massageConfig as config 2018-03-22 13:14:28 +01:00
Rhys Arkins
3a4a0cb029
feat: updateLockFiles (#1703)
Adds an option “updateLockFiles” which defaults to true. Setting to false means that updating lock files (e.g. package-lock.json, yarn.lock and shrinkwrap.yaml) will be skipped. The main reason for doing this is for repositories that use a dependency we can’t resolve, so that they can keep updating the package.json without lock file.
2018-03-22 10:41:26 +01:00
Rhys Arkins
ee3240908b
feat: requireConfig (#1695)
Adds option to bot owners to require a renovate config be in place.

Closes #1694
2018-03-21 10:08:55 +01:00
Rhys Arkins
fa523846ab fix: make nvm config mergeable 2018-03-21 06:03:06 +01:00
Rhys Arkins
2364efdb39 fix: improve lockfile maintenance deletion logic
Set lock file branches to always rebase stale, and delete if there’s no work to do.
2018-03-20 06:48:27 +01:00
Rhys Arkins
e50d9c1f05 feat: mirrorMode
adds feature mirrorMode, aimed for “shadowing” a target repository.
2018-03-17 06:07:39 +01:00
Rhys Arkins
2f6aac0ba6 fix: handle baseBranch array instead of string 2018-03-14 19:00:18 +01:00
Rhys Arkins
d0e76b9d51 fix: validate :timezone preset value 2018-03-13 21:47:08 +01:00
Rhys Arkins
e62aa89a6c
feat: customisable prFooter (#1648) 2018-03-12 13:35:15 +01:00
ikisialeu
c0f87172fa fix: validate timezones (#1638)
`Adds a config validation check for timezone, checking it against the list in moment-timezome.js`. Configs with invalid timezones will raise a configuration error.

Closes #1483
2018-03-12 04:24:45 +01:00
Rhys Arkins
cd97792e7c
fix: allow rebaseStalePrs=false to take priority over repo settings (#1624)
fix: allow rebaseStalePrs=false to take priority over repo settings
2018-03-09 06:58:40 +01:00
Rhys Arkins
21a5af01c7 fix: add try/catch logging to migrate and validate code
This reverts commit 97ea483f7e.
2018-03-08 07:28:06 +01:00
Rhys Arkins
97ea483f7e fix: Revert "fix: add try/catch logging to migrate and validate code"
This reverts commit 9b44e34fa7.
2018-03-08 07:12:31 +01:00
Rhys Arkins
9b44e34fa7 fix: add try/catch logging to migrate and validate code 2018-03-08 06:02:16 +01:00
Rhys Arkins
7874188cb5 refactor: better debug migrateAndValidate 2018-03-07 15:13:37 +01:00
Rhys Arkins
308ed432db
feat: upgradeInRange (#1608)
Upgrade ranges to latest version even if latest version satisfies existing range.

| name    | value   |
| ------- | ------- |
| type    | boolean |
| default | false   |

By default, Renovate assumes that if you are using ranges then it's because you want them to be wide/open. As such, Renovate won't deliberately "narrow" the range by increasing the semver value inside.

For example, if your `package.json` specifies a value for `left-pad` of `^1.0.0` and the latest version on npmjs is `1.2.0`, then Renovate won't change anything. If instead you'd prefer to be updated to `^1.2.0` in cases like this, then set `upgradeInRange` to `true` in your Renovate config.

This feature supports simple caret (`^`) and tilde (`~`) ranges only, like `^1.0.0` and `~1.0.0`. It is not compatible with `pinVersions=true`.

Closes #1607
2018-03-07 07:41:10 +01:00
Hutson Betts
d9f9e4692f docs(node): improve documentation clarity (#1606) 2018-03-06 21:42:47 +01:00
Rhys Arkins
453ce13278 fix: Revert "refactor: array concatenation (#1601)"
This reverts commit dd26a018c5.
2018-03-06 15:54:39 +01:00
AndreiMargineanu
dd26a018c5 refactor: array concatenation (#1601)
Refactors all instances of .concat() to use array spread operators instead

Closes #1459
2018-03-06 12:34:39 +01:00
Rhys Arkins
a924ad3715 fix: add package.json > engines > node to “node.js” group
This is so that the upgrade is combined with travis and nvm
2018-03-06 11:15:04 +01:00
Rhys Arkins
dde5756488
feat: .nvmrc files (#1582)
Adds initial support for `.nvmrc` renovation. If the existing value is a fully-specified semver version then it will be upgraded, otherwise left alone.

Closes #1270
2018-03-04 15:52:06 +01:00
Rhys Arkins
f398fa19aa fix: Revert "refactor: improve migration scripts"
This reverts commit c6be31543d.

Closes #1584
2018-03-04 14:36:45 +01:00
Rhys Arkins
74a7242081 fix: node-travis migration 2018-03-04 14:20:04 +01:00
Rhys Arkins
c6be31543d refactor: improve migration scripts 2018-03-04 07:35:18 +01:00
Rhys Arkins
a2c4ecefda fix: delete empty errors and warnings from migrated config 2018-03-04 07:12:02 +01:00
Rhys Arkins
dae287b62b
refactor: node-travis definitions (#1583)
Retains the "node" configuration object but moves enabling/disabling to "travis". Also removes the default `supportPolicy` from config.
2018-03-04 07:08:19 +01:00
Rhys Arkins
05c8af7e55 fix: add depType to group prBody 2018-03-03 22:25:06 +01:00
Rhys Arkins
faa4cc6171 fix: travis metadata and formatting
Updates travis config and logic to use same variables as for other managers. This fixes the onboarding PR.

Fixes #1551
2018-03-03 20:53:54 +01:00
Rhys Arkins
7f9d73a318 feat: allowedVersions
A semver range defining allowed versions for dependencies

| name | value  |
| ---- | ------ |
| type | string |

Use this - usually within a packageRule - to limit how far to upgrade a dependency. For example, if you wish to upgrade to angular v1.5 but not to `angular` v1.6 or higher, you could defined this to be `<= 1.5` or `< 1.6.0`:

```
  "packageRules": [{
    "packageNames": ["angular"],
    "allowedVersions": "<=1.5"
  }]
```
2018-03-03 06:35:11 +01:00
Rhys Arkins
3fd090f3ef feat: prBanner
Enables a “banner” at the top of PRs. Must be set inside a config.js to work.
2018-03-01 17:35:11 +01:00
Rhys Arkins
f95058d66b refactor: move npm registry to datasource 2018-02-27 10:49:24 +01:00
Rhys Arkins
1fd83139ed
feat: configurable onboarding config (#1543)
Adds configuration option `onboardingConfig` that allows the default onboarding config to be extended or replaced via `config.js` or env configuration.

Closes #1521
2018-02-21 19:50:58 +01:00
Rhys Arkins
116939ffb5
feat: renovate node engine in package.json (#1519)
Adds support for upgrading `node` version in `package.json` > `engines` if the current version is pinned.
- Does not convert from range to pin
- Ignores ranges
- Does not upgrade major versions
2018-02-19 14:21:45 +01:00
Rhys Arkins
dd0a436fb2 fix: set prNotPendingHours to 25
Removes race condition between prNotPendingHours and unPublishSafe features.

Closes #1498
2018-02-12 07:55:08 +01:00
Rhys Arkins
94bcca0e8c fix: use details/summary for non-group Release Notes 2018-02-07 09:48:39 +01:00
Luca
95289592a0 chore: add -v parameter to cli (#1489)
NOTE: 
I followed this doc as from what I've seen in the discussion the desired arguments would be `--version` and `-v`, while `commander` uses `-V` as default. This is their suggested way of overwriting it.

https://github.com/tj/commander.js#version-option

Fixes #1469
2018-02-06 07:09:54 +01:00
Rhys Arkins
cecc606674 refactor: default endpoint to null 2018-02-03 07:23:24 +01:00
Rhys Arkins
c70c72f14b
feat: release notes in pull requests (sourced from github releases) (#1465)
Detects and embeds release notes found on GitHub when an npm dependency specifies a GitHub repository as its source and that repository has made use of the "Releases" feature.
2018-02-02 12:37:16 +01:00
Rhys Arkins
7afb693151 fix: update all pr body templates to use h1 headings 2018-02-02 10:56:40 +01:00
Rhys Arkins
360a640e40 fix: use v prefix for versions in PR bodies 2018-02-02 10:55:52 +01:00
Rhys Arkins
a008b1f1cd refactor: use h1 for pr headings 2018-02-02 10:49:27 +01:00
Rhys Arkins
e24aab2c04 fix: include release headings in pr body only if it has commits (group) 2018-02-02 10:45:20 +01:00
Rhys Arkins
139d6b237e fix: include release headings in pr body only if it has commits 2018-02-02 10:41:33 +01:00
Rhys Arkins
e533f96185 fix: escape depName as code in pr bodies 2018-02-01 08:30:44 +01:00
Rhys Arkins
e13e1abab7 fix: don’t escape versions in group pr body 2018-02-01 07:25:37 +01:00
Rhys Arkins
ad4b9feb92 feat: prConcurrentLimit
Adds a new feature to limit the number of concurrent branches/PRs to have open at any one time. Defaults to 0 (disabled), set it to a positive integer to enforce that limit.
2018-01-30 11:43:16 +01:00
Rhys Arkins
a09e9527ce fix: default peerDependencies to not pin Versions 2018-01-28 14:46:05 +01:00
Rhys Arkins
d66dea7ec3
feat: verify status check (GitHub) (#1444)
Adds a `renovate/verify` status check for those migrating and looking for familiarity. Better to check the GPG verified commit, as mentioned in the associated doc.
2018-01-25 13:36:21 +01:00
ctaepper
280e74fa9f feat: expose env to npmrc and npm/yarn/pnpm (#1407)
Adds a config option to bot administrators called `exposeEnv`, for cases where repositories are trusted. If set to true, the bot's full `process.env` can be used for `.npmrc` variable substitution and is passed to child processes when generating lock files. Disabled by default, including in the App.
2018-01-25 10:38:30 +01:00
Rhys Arkins
0925f59262
feat: versionStrategy (#1439)
Adds new config option `versionStrategy` that allows config to override Renovate’s autodetection of when to “widen” an existing semver range, and when to “replace”.
2018-01-24 15:26:37 +01:00
Rhys Arkins
1aad8ec053
feat: peerDependencies support (#1438)
Enables peerDependencies renovation by default, now that complex semver ranges can be upgraded.
2018-01-24 11:39:29 +01:00
Rhys Arkins
9504fb8abb
refactor: use handlebars triple escapes in templates (#1434)
This stops HTML substitution from occurring
2018-01-24 07:18:11 +01:00
otofu-square
f251969fab fix: correct typos in templates (#1423) 2018-01-22 11:17:00 +01:00
Rhys Arkins
3b13591ebc refactor: Add warning to Pin PRs that upgrade PRs will be held up
Closes #1380
2018-01-20 16:20:50 +01:00
Rhys Arkins
b72bfdf4ba
feat: bumpVersion (#1413)
Adds a new configuration option that allows you to bump the version number in the package.json being updated. e.g. you might configure Renovate to bump a patch every time, or maybe for dependencies only and not devDependencies. e.g. if you configure `"bumpVersion": "patch"` then a Renovate PR updating a `package.json` that used to be version `1.2.1` will now see it updated to `1.2.2` (in addition to the dependency version(s) being updated too). Thanks to @gunar for the feature suggestion.

Closes #861
2018-01-20 09:27:05 +01:00
Rhys Arkins
0204da0f97 chore: fix lint 2018-01-16 08:02:08 +01:00
Rhys Arkins
f56a0b5af8
fix: add repository to ignored validation fields 2018-01-16 07:58:58 +01:00
Rhys Arkins
b5db28b242 fix: propagate registry-failure errors to avoid config validation warnings
We don’t want npmjs 5xx errors to cause config validation Issues in repositories.

Closes #1388
2018-01-14 18:58:49 +01:00
Rhys Arkins
dba574950b
feat: baseBranches (multi-branch) support (#1379)
This PR adds the capability to renovate more than one base branch at a time. For instance, a project may have their released `3.x` version on `master`, while an upcoming `4.x` is being prepared using branch `next`. `4.x` might have a quite different set of dependencies (e.g. some removed or some added) so it's not appropriate to only target `master` and keep rebasing, as it will get messy. Instead, it's necessary to target both `master` and `next` to keep both updated.

Closes #1279
2018-01-12 07:47:18 +01:00
Rhys Arkins
2dcb2a70d8 feat: prHourlyLimit
Adds a feature to enforce an hourly limit on PR creations.

Closes #1363
2018-01-11 11:56:16 +01:00
Rhys Arkins
2925c0d9a7 feat: automatically group @types companion packages
By stripping ‘types/ from the branch name, package x and @types/x then become automatically combined in the same PR. We then massage it a little to ensure the decription for the non-types package is used, and a note added saying that types is included.

Closes #1365
2018-01-10 15:35:14 +01:00
Rhys Arkins
72745b6b13 fix: add full npmjs scope when migrating npmToken
commit 7e15d3d488c927df2f11f728f35d493e2821477d
Author: Rhys Arkins <rhys@arkins.net>
Date:   Wed Jan 10 14:26:44 2018 +0100

    Revert "refactor: use _auth= when migrating npm tokens"

    This reverts commit 4a2fdd0477.
2018-01-10 14:27:19 +01:00
Rhys Arkins
ba029d55e3 fix: set pathRules to be mergeable 2017-12-29 15:13:50 +01:00
Rhys Arkins
f8a10a9f4c feat: pathRules
Adds new configuration option “pathRules”. pathRules is an array of path rules. Each rule should contain a “paths” array which uses string or glob matching like the existing ignorePaths. If any of the paths in a rule matches a packageFile then the remaining configuration from the rule is applied to the packageFile.
2017-12-29 15:06:28 +01:00
Rhys Arkins
35d7a63d00 docs: add warning about config.js and extends 2017-12-26 06:28:28 +01:00
Rhys Arkins
6c49ba177e docs: correlate website configuration documentation with source code
This PR adds new checks that:
- Website configuration options are listed in alphabetical order
- Every relevant configuration option in source code is documented on the website
Website docs have been updated accordingly to pass.

Closes #543, Closes #1310
2017-12-26 05:40:14 +01:00
Rhys Arkins
2720688f4c feat: commit body
This PR adds the configuration option “commitMessageBody”. The contents of this will be appended to the commitMessage, separated by two line returns.
2017-12-25 20:37:14 +01:00
Rhys Arkins
4ec85ad818
feat: use version in pr title for synchronised groups (#1333)
Now, if every upgrade in a group has the same new version, then the PR title will include this version.

Closes #1332
2017-12-24 11:14:34 +01:00
Rhys Arkins
1e4bebe627 refactor: use update instead of renovate prefix in group pr titles and commit messages
Closes #1314
2017-12-20 21:15:30 +01:00
Ed Morley
709a68c7ae fix: increase prNotPendingHours default to 24 hours (#1316)
To prevent PRs being opened prior to the `unpublishSafe` check having
transitioned from `pending` to `success`, when using `not-pending`
mode.

Fixes #1312.
2017-12-20 06:47:20 +01:00
Ed Morley
312e164746 fix: remove duplicate 'onboarding' config definition (#1309)
Since it's already defined higher up in the file:
48a2d2de8e/lib/config/definitions.js (L67-L73)
2017-12-18 16:00:09 +01:00
Rhys Arkins
5243c01230 fix: don’t use v prefix in commit message if range 2017-12-18 12:39:59 +01:00