Commit graph

560 commits

Author SHA1 Message Date
Rhys Arkins
517de6f545
feat: repositoryUrls (#2221)
Adds config option repositoryUrls which can be used by pip to define an alternate host to pypi.

Closes #2181
2018-07-05 11:33:50 +02:00
Rhys Arkins
24a89a775b
feat(npm): deprecation warnings (#2222)
Raises a deprecation warning issue per-dependency. Uses logic that if latest version is deprecated then the package is deprecated.

Closes #1592
2018-07-05 09:16:53 +02:00
Rhys Arkins
38334fc362 feat: packageRules updateTypes
Adds an `updateTypes` field to `packageRules` that lets you specify rules based on update types such as major, minor, patch, pin, etc.
2018-07-04 09:30:29 +02:00
Rhys Arkins
173a2b7c26 feat: enable pip requirements support by default
Closes #2216
2018-07-04 07:45:36 +02:00
Rhys Arkins
7669dc36d5 chore: fix prettier formatting 2018-07-03 15:05:06 +02:00
Rhys Arkins
9fb25cb434 fix(npm): strip trailing \n from npmToken 2018-07-03 14:45:13 +02:00
Rhys Arkins
1242cc5735 logs: log masked token after decryption 2018-07-03 14:21:29 +02:00
Rhys Arkins
068ff16ec4 fix: Revert "feat: endpoint credentials handling (#2146)"
This reverts commit 04e0ca1f80.
2018-07-02 13:18:37 +02:00
Ayoub Kaanich
04e0ca1f80 feat: endpoint credentials handling (#2146)
Refactors credentials/token handling to rely less on env variables and instead use an endpoints middleware for credentials handling.

First step towards #2105
2018-07-02 10:01:42 +02:00
Rhys Arkins
8da5888ef6 feat: combine branch automergeTypes
This deprecates branch-push and branch-merge-commit automergeTypes and replaces with “branch”, which has the same behaviour as the previous branch-push.

BREAKING CHANGE: branch-merge-commit automergeType behaviour is no longer supported, all branch automerges now use branch push approach.
2018-06-26 14:01:13 +02:00
Rhys Arkins
4d44752847 feat: disable pinDigests by default 2018-06-26 14:01:13 +02:00
Rhys Arkins
cab66158e0 feat: make gitAuthor admin-only
Changes gitAuthor to be an admin-only setting, i.e. configurable by bot admin and not by repo admin.

BREAKING CHANGE: gitAuthor can no longer be configured in repository config and can be set by bot admin only.
2018-06-26 14:01:13 +02:00
Rhys Arkins
47305b975e refactor: add pro pr footer 2018-06-25 11:55:12 +02:00
Rhys Arkins
9d92a958c4 refactor: massage [] or empty string for cli lists 2018-06-21 10:40:55 +02:00
Rhys Arkins
53b6050017
feat: force, forceCli (#2145)
Adds config options force and forceCli. These cover the use case where a certain setting is desired to be forced by the bot admin, regardless of repository config, for example removing all configured schedules in order to force PR creation.

Closes #1731
2018-06-21 10:23:59 +02:00
Rhys Arkins
2decb37a1d refactor: resolve configs immediately 2018-06-21 08:43:19 +02:00
Rhys Arkins
5705ee32fe refactor: enable nuget by default 2018-06-14 16:13:47 +02:00
Sam Neirinck
87575f49a3 feat: nuget support
Adds basic support for renovating C# project files. The scope is initially limited to:

- .Csproj only (no VB.NET / F#)
- SDK style csproj's only (this is the default in .net core anyway)
- Limited to nuget.org support (no custom repository support)

Closes #935, Closes #2050
2018-06-14 11:17:14 +02:00
Ayoub Kaanich
697b80aaf0 feat: composer exact semver support (without lockfile updates) (#1993)
This PR adds the packagist datasource plus basic exact semver Composer support. Composer lockfile updating is not yet supported.
2018-06-08 06:15:13 +02:00
Rhys Arkins
98e9198c8e refactor: replace indexOfs 2018-06-04 20:44:32 +02:00
Connor Brathwaite
398303235b (refactor): delegate generic predicate checking to @sindresorhus/is (#2021)
Closes #1764
2018-06-04 20:07:22 +02:00
Rhys Arkins
d8cb261ecb
refactor: rename version -> value (#2076)
Renames currentVersion to currentValue, newVersion to newValue, newVersionMajor to newMajor, and newVersionMinor to newMinor.
2018-06-04 05:48:20 +02:00
Rhys Arkins
e6c43be773 refactor: simplify Node.js commit message 2018-06-02 18:23:18 +02:00
Rhys Arkins
ba4d9b4f24 fix: use major template for buildkite 2018-06-01 19:50:48 +02:00
Rhys Arkins
3ba49df83d refactor: disable non-offline tests 2018-05-28 16:25:53 +02:00
Dragomir Țurcanu
65b9934a5b tests: remove semver validation (#2027)
Closes #2024
2018-05-27 16:54:11 +02:00
Rhys Arkins
d6cc5b0755 fix: default rangeStrateg to “replace” 2018-05-23 11:17:20 +02:00
Rhys Arkins
7a1d30c8b6 refactor: move semver to lib/versioning 2018-05-21 17:30:55 +02:00
Rhys Arkins
93379c4b79 refactor: separatePatchReleases -> separateMinorPatch
Closes #1952
2018-05-17 07:40:29 +02:00
Rhys Arkins
6c3645d18c refactor: separateMajorReleases -> separateMajorMinor 2018-05-17 07:37:37 +02:00
Rhys Arkins
eaf10143c2 refactor: rename multipleMajorPrs -> separateMultipleMajor 2018-05-17 07:33:59 +02:00
Rhys Arkins
7f4cb4aa57
feat: rangeStrategy (#1954)
This PR replaces the existing `pinVersions`, `upgradeInRange` and `versionStrategy` settings with a single one: `rangeStrategy`.

Previously:
 - `pinVersions` could be `true` or `false`, but defaulted to `null`, which meant that Renovate would decide. `true` meant that Renovate would replace existing ranges like `^1.0.0` with an exact/pinned version such as `1.2.0`.
 - `upgradeInRange` could be true or false, default to false. If `true`, it would mean Renovate would replace an existing range like `^1.0.0` with something like `^1.2.0`
 - `versionStrategy` could be `replace` or `widen` and was mainly used for `peerDependencies` to widen existing ranges, e.g. from `^1.0.0` to `^1.0.0 || ^2.0.0`

It was possible to set conflicting settings, e.g. configuring `pinVersions=true` and `upgradeInRange=true`.

Now, we combine them into a single setting: `rangeStrategy`:
 - `auto` = Renovate decides (this will be done on a manager-by-manager basis)
 - `pin` = convert ranges to exact versions
 - `bump` = same as `upgradeInRange` previously, e.g. bump the range even if the new version satisifies the existing range
 - `replace` = Same as pinVersions === false && upgradeInRange === false, i.e. only replace the range if the new version falls outside it
 - `widen` = Same as previous versionStrategy==='widen'
2018-05-17 07:16:13 +02:00
Rhys Arkins
71a8fb894f fix(docker): update old docs link
Closes #1977
2018-05-16 05:44:43 +02:00
Rhys Arkins
ecdcd9df4f
feat: refactor dependency extraction (#1912)
Rewrite of dependency extraction, particularly for npm. Paves way for easier addition of new package managers.

Closes #1882
2018-05-09 08:03:59 +02:00
Rhys Arkins
9ffd0abda1 refactor: replace stringify/parse with fast-clone 2018-05-07 21:50:40 +02:00
Rhys Arkins
e7ef20d33b refactor: simplify config stages 2018-05-06 11:59:33 +02:00
Rhys Arkins
9e49017456 fix: deep copy in mergeChildConfig 2018-05-06 11:52:53 +02:00
Rhys Arkins
7e5aeacd1d refactor: rename option.parents -> parent 2018-05-06 08:29:38 +02:00
Rhys Arkins
1762ee68a0
feat: automergeComment (#1906)
Adds new option “pr-comment” for `automergeType` and a new option `automergeComment` to use in such a case.
2018-05-04 06:55:01 +02:00
Rhys Arkins
cb570f58f6 fix(templates): skip depType if not present 2018-05-04 06:49:32 +02:00
Rhys Arkins
3a5c3dd908 fix: make ignoreDeps mergeable 2018-05-03 14:14:05 +02:00
Rhys Arkins
626ef3fd92 refactor: add parents for parentRules 2018-05-03 14:11:25 +02:00
Rhys Arkins
3cfbb36577 fix: don’t add options with parents to defaults 2018-05-03 14:07:20 +02:00
Rhys Arkins
64a45bf6dd feat: enable buildkite by default 2018-05-03 09:43:15 +02:00
Rhys Arkins
d5c0729f64
feat: buildkite release notes (#1910)
Adds a link to the latest version notes in the PR body, as well as a source compare link for all commits between the current version and the new version.

Closes #1876
2018-05-03 09:39:12 +02:00
Ayoub Kaanich
0b64cfac3e feat: refactor commits retrieval (#1886)
Refactor changelog (commits) logic to separate sources, and remove the `changelog` dependency. Instead of a full copy/paste of commits, a link is now provided to the source repo.

Closes #381
2018-05-01 11:55:40 +02:00
Rhys Arkins
a94088ba28
feat: deprecate packageFiles (#1898)
This PR deprecates the use of `packageFiles` and migrates it to `includePaths` and `packageRules`.

Closes #1887
2018-05-01 09:21:15 +02:00
Rhys Arkins
43742467f6
feat: includePaths (#1896)
Adds a config option `includePaths` that allows the user to specify one or more paths to include in renovation and the rest will be excluded.
2018-04-30 16:13:32 +02:00
Rhys Arkins
c356bb0349
feat: custom filenames for package files (#1894)
Renovate now comes with a variety of package managers supported, each with their own filename pattern(s). These patterns are now exposed for user configuration through the new `fileMatch` list/array configuration option, which has been added to each manager (npm, bazel, docker-compose, etc). `fileMatch` is defined as a mergeable list, meaning that users can add to the default pattern to extend the files being detected.

Closes #799
2018-04-30 13:18:51 +02:00
Rhys Arkins
9306297338 fix(config): massage \\n in env to \n 2018-04-30 10:07:59 +02:00
Rhys Arkins
d13d6a0495
feat: deprecate deptypes and migrate to packageRules (#1892)
Rules for dep types (e.g. dependencies, devDependencies, peerDependencies, optionalDependencies) should now be done with `packageRules` and the `depTypeList` selector
2018-04-30 08:21:48 +02:00
Rhys Arkins
23051355fb fix: properly migrate pathRules 2018-04-29 23:07:39 +02:00
Rhys Arkins
72742f99f9 fix: drop parentManager from definitions 2018-04-29 22:02:49 +02:00
Rhys Arkins
122fffea99
Fix pathRules migration (#1885)
Fix pathRules migration
2018-04-29 14:05:45 +02:00
Ayoub Kaanich
c8ae853d58 feat: python requirements.txt support (#1858)
This PR adds basic support for requirements.txt. Currently it works on fully specified (pinned) versions only, so is disabled by default. Enable it by setting `pip_requirements.enabled = true` in config.
2018-04-28 20:39:07 +02:00
Rhys Arkins
898b913f3b
feat: deprecate pathRules (#1881)
pathRules are now migrated to packageRules.

Closes #1880
2018-04-28 14:05:39 +02:00
Rhys Arkins
757154ded4
feat: add paths selector to packageRules (#1879) 2018-04-28 08:56:15 +02:00
Rhys Arkins
f618b30633 refactor: sort errors and warnings alphabetically 2018-04-28 08:48:12 +02:00
Rhys Arkins
4349a21484
feat: buildkite plugin renovation (#1874)
This PR adds initial support for buildkite plugin renovation.

It supports `plugin-name` or `my/plugin-name` plugins, and fully specified semver versions only (e.g. `v1.3.2`). Currently it will always propose an upgrade to the latest version available, e.g. if current version is v1.3.1 and both v1.3.2 and v2.0.0 exist then v2.0.0 will be proposed. Looks for any yml file in the `.buildkite/` directory.

Closes #1869
2018-04-27 19:54:44 +02:00
Țurcanu Dragomir
305f094bd4 Added matchCurrentVersion selector to packageRules (#1835)
The matchCurrentVersion option sets a range of versions that a package update can be in. If the package's current version doesn't satisfy the matchCurrentVersion range, it won't match the rule.

Closes #1771
2018-04-27 05:45:22 +02:00
Rhys Arkins
6415833a4b refactor: renovateapp.com -> renovatebot.com 2018-04-24 13:59:42 +02:00
Rhys Arkins
1564150d9f refactor: streamline debug logging 2018-04-18 21:19:00 +02:00
Rhys Arkins
04c239e07a fix: add space after semantic prefix colon in migration 2018-04-17 14:40:00 +02:00
Rhys Arkins
693738024b refactor: remove engines groupName 2018-04-17 14:10:18 +02:00
Rhys Arkins
c0878fa8be fix: escape templates with triple handlebars 2018-04-17 12:49:59 +02:00
Rhys Arkins
2bb4276d41 fix: lock file maintenance commit message and pr title 2018-04-17 12:22:11 +02:00
Rhys Arkins
8d439ffc5e fix: migrate semanticPrefix to semanticCommitType/semantiCommitScope 2018-04-17 12:09:34 +02:00
Rhys Arkins
c26e1226e9 fix: Use v prefix for all major npm upgrades 2018-04-17 10:56:58 +02:00
Rhys Arkins
b10ee7c5dd fix: don’t strip semanticPrefix when migrating 2018-04-17 10:37:48 +02:00
Rhys Arkins
9753f9dcba
feat: modular branchName/prTitle/commitMessage templating (#1760)
This PR refactors `branchName`, `commitMessage` and `prTitle` so that they are more easily editable and hopefully more understandable. By breaking each up into subsections, users can modify one part without needing to copy/paste the entire string.

Directly editing any of these fields will now be deprecated and a warning issued.
2018-04-17 08:39:26 +02:00
Rhys Arkins
d4163fe2fb fix: test for unsafe regex and warn 2018-04-13 06:52:08 +02:00
Țurcanu Dragomir
6c46ddf20e feat: validate packageRules selectors (#1810)
packageRules selectors should only ever be inside a packageRule object, or at the top level of a preset. This feature enforces this rule with a validation check.

Closes #1773
2018-04-12 12:13:39 +02:00
Rhys Arkins
1bdc548876 feat: print full config path in validation errors 2018-04-11 21:38:31 +02:00
Rhys Arkins
cc7c6dc191
fix: remove logger lines from validator code
Remove logger.* statements as this can be called from the CLI validator which has no logger defined.

Closes #1816
2018-04-11 16:20:11 +02:00
Rhys Arkins
50b3b195c0 fix: check discovered length, not manually configured length
Closes #1823
2018-04-11 12:03:38 +02:00
Rhys Arkins
523b02fbc8
refactor: npm and semver (#1817) 2018-04-10 05:20:46 +02:00
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
Rhys Arkins
eeefc3c8f3
feat: stop and raise error if repository is misconfigured (#1302)
This PR updates Renovate to detect config validation problems and (1) stop processing, and (2) either raise an Issue if already onboarded, or (2) update the onboarding PR to reflect the error if still onboarding.

Closes #1300
2017-12-18 09:39:52 +01:00
Rhys Arkins
c5a420711b fix: Revert "feat: support mergeable strings in config for npmrc"
This reverts commit 4f65356ba4.

I will attempt to merge npmrc configs a different way, as npm itself does not support merging cascaded configs (it finds the most specific one and just uses it).
2017-12-15 09:15:20 +01:00
Rhys Arkins
c98faa2b34 refactor: default bazel to enabled 2017-12-14 13:19:30 +01:00
Rhys Arkins
b5b714d4b5
fix: writeToken -> forkToken (#1295)
Rename writeToken to forkToken to make it clearer. This enables GitHub API to use one token for all reads, and another token just for writing to the forked repository.
2017-12-14 11:47:00 +01:00
Rhys Arkins
4f65356ba4 feat: support mergeable strings in config for npmrc 2017-12-14 09:56:52 +01:00
Rhys Arkins
4a2fdd0477 refactor: use _auth= when migrating npm tokens 2017-12-14 09:49:50 +01:00
Rhys Arkins
794e149179 refactor: ignore bower_components by default 2017-12-14 06:35:12 +01:00
Rhys Arkins
bbb700c54d feat: add github writeToken capability in github wrapper 2017-12-12 14:54:09 +01:00
Rhys Arkins
18c41df5c1
refactor: fix up config definitions (#1291)
- Remove duplicate autodiscover (fixes #1290)
- Remove npm.pin.automerge=true
2017-12-11 22:26:59 +01:00
Rhys Arkins
cb8fd6b4ed
feat: fork mode (#1287)
This PR adds the capability to run Renovate in a new "fork mode". This new mode must be configured by the Renovate admin, and cannot be configured within repositories themselves (for now). Example use: `renovate --autodiscover --fork-mode`

In this mode: 
* Renovate will fork the repository if necessary (first run only)
* If the fork already existed, Renovate will ensure that its base branch is up to date with the source repository's
 * Branches will be created within the fork, PRs will be created in the source
2017-12-11 19:14:51 +01:00
Rhys Arkins
5036360658
feat: gitPrivateKey for signed git commits (#1282)
This feature enables signing of git commits on GitHub. To achieve this, Renovate must be configured with a gitPrivateKey in format supported by openpgp. There must also be a gitAuthor configured to enable this feature.

Closes #897
2017-12-09 17:56:23 +01:00
Rhys Arkins
70c95add5a
feat: custom git commit author (#1280)
This PR adds the capability to specify a custom author for git commits on GitHub. Setting this field will mean GitHub uses this value for author and commit instead of the token’s identity. For instance if you are running hosted mode you may set the gitAuthor to “Renovate Bot <bot@renovate.com>” to have commits appear as coming from the renovate-bot account.
2017-12-09 17:09:31 +01:00
DJ Madeira
e212093aa9 fix: find config path in cwd when installed globally (#1277)
Fixes #1182
2017-12-07 20:16:51 +01:00
Rhys Arkins
d2f54ba763
fix: do not escape unlinked depNames in pr bodies (#1275) 2017-12-07 13:57:30 +01:00
Rhys Arkins
c499790d94 refactor: add unstablePattern to list of ignored preset keys 2017-12-07 09:50:14 +01:00
Rhys Arkins
987891ba2e
feat: bazel WORKSPACE support (#1268)
This PR adds support for bazel WORKSPACE package files, as suggested https://github.com/alexeagle/angular-bazel-example/issues/17#issuecomment-349167982

Renovate will:
1. Detect `WORKSPACE` files anywhere in the repository
2. Look for all `git_repository()` sections in the file
3. Extract any dependencies with name, remote and tag values
4. Look up any dependencies that (a) have a github https remote, and (b) a valid semver as tag
5. Update the tag to the latest available
2017-12-07 09:22:10 +01:00
renovate[bot]
73506f9043 chore(deps): update dependency prettier to v1.9.0 (#1267)
* chore(deps): update dependency prettier to v1.9.0

* run prettier
2017-12-05 11:50:16 +01:00
Rhys Arkins
b8dadb718d
feat: travis.yml node_js versions support (#1243)
This PR adds support for renovating the `node_js` versions in `.travis.yml` configuration files. Important notes:
- Functionality is disabled by default and hence opt-in via configuration
- Added a new manager type `node` because it is anticipated to support more than just Travis in future, with mostly unified logic
- Added the config option "policy" with supported values: lts, active, current, lts_latest and lts_active
- Policy is actually an array, to allow additive combining, e.g. `["lts_latest", "current"]`
- Actual node versions are *hardcoded*. There is no perfect metadata source for this and they change infrequently enough that it is definitely not a problem for now (next change will be in April 2018)
- If node versions need updating, they are listed from newest to oldest
- Replacing function attempts to detect the indention (spacing) in file and use that

To enable, configure `node.enabled=true` and optionally `node.policy=["<policy>"]` if you want something other than `lts`.

Closes #1208
2017-12-05 07:50:16 +01:00
Rhys Arkins
5e68613150
refactor: add extends config massage (#1256) 2017-12-01 07:16:17 +01:00
JYC
ab3372d33c feat: copy local packages (#1244)
If we have in a package.json links to some local lib file:../path/to/folder
Then the local lib package.json will be copied to the tmp folder to be able to generate the right yarn lock file. This is not working with tgz files, only folder reference.

Closes #1215
2017-11-30 06:43:56 +01:00
Rhys Arkins
779ca36bc1
refactor: use semanticCommitType chore for pin/digest (#1234) 2017-11-24 10:58:44 +01:00
Rhys Arkins
65a5e90bb7
feat: split semanticPrefix into type and scope 2017-11-24 07:14:58 +01:00
Rhys Arkins
d0a08734e5
fix: remove semanticPrefix override from pin.group to pin (#1231) 2017-11-23 19:49:14 +01:00
JYC
8e1dfa111c feat: VSTS - Add Reviewers & Assignees (#1200) 2017-11-22 05:12:19 +01:00