Commit graph

1848 commits

Author SHA1 Message Date
Rhys Arkins
8c27d97d5d
feat: rebase stale pin branches (#1099) 2017-11-03 20:15:44 +01:00
Rhys Arkins
14883f818b
refactor: automerge npm pins (#1096) 2017-11-03 12:07:12 +01:00
Rhys Arkins
543d93c520
refactor: move migrate-validate to config/ (#1090) 2017-11-03 08:25:51 +01:00
Rhys Arkins
11d7f26cc1
refactor: perform decrypt as part of merge renovate.json (#1086)
Also clarify docs that encrypted config must be contained in renovate.json (i.e. not package.json).
2017-11-03 07:51:44 +01:00
Rhys Arkins
1e5a5cab79
refactor: move config globals inside functions (#1088)
This was necessary when attempting to use jest mock all
2017-11-03 07:43:26 +01:00
Rhys Arkins
c157e747cf
fix: use major version in pr title for docker tag updates (#1081) 2017-11-02 15:13:56 +01:00
Rhys Arkins
58784fc958 feat: add renovateFork option
99% of the time we should not Renovate forked repositories. Previously, we skipped onboarding them unless a renovate.json was present. However, that meant that if someone forked a repository where the source was using Renovate, then the fork gets renovated automatically too. After this change, forked repositories need to set renovateFork=true in their renovate.json

Closes #940

BREAKING CHANGE: Forked repositories now need to configure renovateFork=true in renovate.json
2017-11-01 13:13:55 +01:00
Rhys Arkins
aada8f0b73 feat: support globs in ignorePaths (#1069)
Renovate will now check ignorePaths values for either (a) a string match, or (b) glob pattern. e.g. a string of ‘node_modules/‘ will ignore ‘node_modules/foo/package.json’ and ‘backend/node_modules/foo/package.json’ but it will also ignore ‘not_node_modules/foo/package.json` too. Therefore a blog pattern of `**/node_modules/**` is superior.

Closes #1054

BREAKING CHANGE: ignorePaths now supports globs and may match more than before, but that’s probably a good thing.
2017-11-01 13:13:55 +01:00
Rhys Arkins
af75504e20 feat: deprecate github app (#1068)
BREAKING CHANGE: GitHub *App* support code has been removed from within this repository.
2017-11-01 13:13:55 +01:00
Rhys Arkins
138d99a04f feat: default lockFileMaintenance to disabled (#1066)
Closes #590

BREAKING CHANGE: lock file maintenance is now disabled by default.
2017-11-01 13:13:55 +01:00
Rhys Arkins
950c65f827 feat: default pinVersions to null (autodetect) (#1062)
By defaulting pinVersions to null, this allows Renover to autodetect on a per-package file basis. Users may still manually configure (override autodetection) pinning enabled or disabled via config.

Closes #589

BREAKING CHANGE: Renovate will no longer default to pinning versions - instead it will autodetect whether to pin, unless overrided.
2017-11-01 13:13:55 +01:00
Rhys Arkins
f3273618b2
fix: add uniqueness to docker-digest pr title (#1051)
Use first 6 chars of sha256 digest in PR title to ensure uniqueness and not block future digest updates.

Closes #1060
2017-10-27 23:33:55 +02:00
Rhys Arkins
c972086f2d fix: improve docker templates for pin/digest/upgrade (#1045) 2017-10-25 09:57:57 +02:00
Rhys Arkins
3960da6e38 refactor: use manager subdirectory for grouping (#1040) 2017-10-24 13:12:44 +02:00
Rhys Arkins
fbf0824dd8 refactor: rename lib/api to lib/registry (#1038)
docker and npm
2017-10-24 10:40:47 +02:00
Rhys Arkins
01fedc7e0c refactor: move github and gitlab api to platform (#1037) 2017-10-24 10:27:17 +02:00
Rhys Arkins
435478864e feat: renovate docker tag major/minor versions (#1029)
This feature enables docker tag "upgrading". Examples:
- From `node:6` to `node:8`
- From `node:6.10` to `node:6.11`
- From `node:6.11.1` to `node:6.11.3`
- From `node:6.10-onbuild` to `node:6.11-onbuild`
Currently these are disabled by default so they are opt-in, you can enable them by setting e.g. `{ docker: { minor: { enabled: true }, major: { enabled: true }}`

Closes #930
2017-10-24 06:36:52 +02:00
Rhys Arkins
7dd8bf13be refactor: add pinDigests configuration option for docker (#1033) 2017-10-24 05:33:03 +02:00
Rhys Arkins
db05a259e0 refactor: improve docker pin templates (#1032) 2017-10-24 05:24:15 +02:00
Rhys Arkins
9c16565a2d feat: enable docker by default (#1026)
Docker does now not need to be explicitly enabled.

Closes #942
2017-10-23 13:59:33 +02:00
Rhys Arkins
b2f35fef44 fix: do not delete semantic commits when migrating (#1025) 2017-10-23 13:06:09 +02:00
Rhys Arkins
827b9af7ef refactor: use deepcopy for migrate and massage (#1024) 2017-10-23 12:56:11 +02:00
Rhys Arkins
826753e329 fix: migrate null schedule to [] (#1021) 2017-10-23 09:14:50 +02:00
Rhys Arkins
50295417d4 fix: don’t prefix ranges with v in pr body (#1017) 2017-10-21 15:15:22 +02:00
Rhys Arkins
636c7d17de feat: skip group name if all depNames are the same (#1015)
This commonly applies to monorepos where the same dependency may be present in multiple.json files. Instead of using the group name to describe the PR, it uses the dependency name.

Closes #848
2017-10-21 07:46:47 +02:00
Rhys Arkins
622116f7e0 feat: migrate boolean config objects to enabled true/false (#1007) 2017-10-20 13:15:00 +02:00
Rhys Arkins
aba27eb757 feat: enable meteor by default (#1002)
Renovate will now check for and update meteor package.js files unless explicitly *disabled*.
2017-10-20 07:04:04 +02:00
Rhys Arkins
1146cfbfe4 fix: pin prs should recreate closed (#991) 2017-10-19 13:10:59 +02:00
Rhys Arkins
665ede8475 fix: migrate excludedPackageNames to excludePackageNames (#961) 2017-10-17 11:16:02 +02:00
Rhys Arkins
e1599073d0 fix: migrate ‘ every day’ schedule to empty (#937) 2017-10-14 07:03:44 +02:00
Rhys Arkins
1a174226ed feat: keep branches/PRs updated when out of schedule (#926)
By default, Renovate will now continue *updating* - but not creating - branches even if off-schedule. This applies to features such as (a) rebasing branches if master changes, (b) updating if new version comes, (c) creating PRs if tests pass, (d) automerging. It is planned that (b) will be configurable in a future feature. To disable this behaviour altogether, set updateNotScheduled to false.

Closes #879
2017-10-13 06:42:17 +02:00
Rhys Arkins
f91aa14235 fix: cast automerge migration values (#924) 2017-10-12 21:15:10 +02:00
Rhys Arkins
c15cfb6406 fix: refactor package file detection to not modify deep state (#923) 2017-10-12 20:02:04 +02:00
Rhys Arkins
19949f2604 fix: migrate automergeMajor automergeMinor automergePatch (#922)
This is a misconfiguration by a user but no harm in adding it to migrations.
2017-10-12 18:55:46 +02:00
Rhys Arkins
68bcb5e726 fix: convert for loop to for..of (#915)
* fix: convert for loop to for..of

* chore: lessen preset debugging

* chore: set detectPackageFiles to debug

* fix lint
2017-10-11 18:54:09 +02:00
Rhys Arkins
bf2491bfc1 fix: don’t automerge pinned dependencies (#914) 2017-10-11 16:20:17 +02:00
Rhys Arkins
83ecc08541 fix: add commitMessage for pin groups (#910)
Fixes #895
2017-10-11 13:10:12 +02:00
Rhys Arkins
df52f68b3e chore: add npm config to definitions 2017-10-11 12:10:31 +02:00
Rhys Arkins
5ad377655f fix: don’t group lockFileMaintenance update (#890)
Setting lockFileMaintenance.groupName =  null will prevent the case where the user configures a repository groupName like “all” and then that group inherits the schedule of lock file maintenance. Instead, there will be renovate/all and renovate/lock-file-maintenance.

Fixes #885
2017-10-05 11:07:15 +02:00
Rhys Arkins
e42b4034eb feat: sanitize branch names (#872)
Previously, you might see branch names like `renovate/@types/jquery-3.x`. Now, such branches will instead be like `renovate/types-jquery-3.x`.
2017-10-02 11:38:42 +02:00
Rhys Arkins
b689509eb2 fix: don’t error if packageFile configured (#856) 2017-09-29 09:36:14 +02:00
Rhys Arkins
8125c772ae feat: ignoreNpmrcFile (#853)
This feature adds support for ignoring .npmrc files in a repository. Set config option to true if you wish to ignore.

Closes #851
2017-09-29 08:22:22 +02:00
Rhys Arkins
43bff1ee54 fix: improve every xday schedule migration (#850)
Fixes #845
2017-09-28 19:42:33 +02:00
renovate[bot]
f8589fa836 chore(deps): update dependency prettier to v1.7.0 (#752)
* chore(deps): update dependency prettier to v1.6.1

* chore(deps): update dependency prettier to v1.7.0

* run lint
2017-09-15 20:20:25 +02:00
renovate[bot]
cfc6c5ccdf fix: update dependency eslint-config-airbnb-base to v12 (#771)
* chore(deps): update dependency eslint-config-airbnb-base to v12.0.0

* fix lint
2017-09-15 19:46:25 +02:00
Rhys Arkins
a88ba0d16a feat: Dockerfile digest support (#788)
This feature adds initial support for renovating Dockerfiles. Renovate now:
- Detects all `Dockerfile`s in repo
- Searches for `FROM x` in first non-comment line, breaks x into image, tag, digest
- Queries public Docker registry for image:tag combination to find latest digest
- Patches Dockerfile if necessary
- Creates branches/PRs as like with npm

Closes #795
2017-09-14 09:31:36 +02:00
Rhys Arkins
dd6f3630b6 refactor: move pin config to definitions (#791) 2017-09-13 20:52:07 +02:00
Rhys Arkins
d6a45e5f47 fix: handle null child config in merge (#790) 2017-09-13 20:29:20 +02:00
Rhys Arkins
d765b34c33 feat: renovate meteor package.js dependencies (#786)
This feature adds support for renovating Meteor's `package.js` files. Meteor config is disabled by default so must be manually enabled to work. If enabled, Renovate uses GitHub's search API to look for any files named `package.js` that include the text `Npm.depends`. If so then the file is parsed using Regex to extract its dependencies and check them for updates.

Closes #785
2017-09-12 09:33:41 +02:00
Rhys Arkins
1a395a3dd9 fix: fix and improve schedule migrations (#761)
* fix: migrate “every xday” to “on xday”

* fix: do not migrate before and after if before is after after

e.g. do not migrate “after 1am and before 5am”
2017-09-01 11:27:54 +02:00
Rhys Arkins
c889f2eec0 fix: don’t massage encrypted npm token (#760) 2017-09-01 07:43:49 +02:00
Rhys Arkins
6c0d50703f feat: encrypted configuration strings (#759)
A new config object `encrypted` can be defined at any level and contain encrypted configuration strings. Initial use is for encrypting an npm token for use with the hosted renovate app.

Closes #650
2017-09-01 06:45:51 +02:00
Rhys Arkins
16d36a15e2 feat: add npmToken, npmrc and yarnrc configuration support (#753)
Renovate config can now support the fields `npmToken`, `npmrc` and `yarnrc`. `npmrc` and `yarnrc` (note no `.` prefix) can be used as an alternative to checking the respective files into the repo and have the same effect. `npmToken` is a shorter alternative and allows for just the npm token to be added, defaulting to the public npm registry.
2017-08-29 09:25:44 +02:00
Rhys Arkins
deac76b015 feat: support timeout for pr creation = not-pending (#748)
We should not leave the PR unopened forever if the branch remains in not-pending state too long. Some status checks may leave the status as “pending” instead of “failed”. Defaults to 12 hours but is configurable.

Closes #747
2017-08-28 11:37:09 +02:00
Rhys Arkins
ec1eaa2dd0 feat: convet ignoreNodeModules to ignorePaths (#741)
The ignoreNodeModules feature is replaced with a generic ignorePaths one and allows any array of strings to be defined and package.json file matching them will be skipped/ignored. Also migrates any existing config/presets.
2017-08-26 21:28:29 +02:00
Rhys Arkins
ea9ace2a76 feat: branch worker updates (#736)
This is a major refactor of branch code to prepare for Yarn workspaces plus creating PRs for branches with failing lockfiles. Marked as "feature" to cause a minor version bump due to the moderate chance of accidentally breaking something.
2017-08-26 16:10:18 +02:00
Rhys Arkins
93d9d9e357 fix: migrate presets when resolving (#733)
Fixes #732
2017-08-25 06:25:25 +02:00
Rhys Arkins
4bc7009db1 fix: improve schedule massage logic (#725)
- reuse suffix for any “before and after” splits
- move “on every weekday” massage to migrate
2017-08-24 07:04:04 +02:00
Rhys Arkins
e443e6b848 fix: only migrate 'and' schedule if it includes before and after (#724) 2017-08-23 12:38:47 +02:00
Rhys Arkins
5693b17ecf fix: advanced schedules migration (#723)
- Split ‘x and y’ schedule into [x, y]
- Replace schedules like ’on mondays’ with ‘on monday’
2017-08-23 11:50:05 +02:00
Rhys Arkins
9d0cbb2e5d fix: migrate fields within depTypes (#718) 2017-08-22 10:58:53 +02:00
Rhys Arkins
238a72b1eb fix: only migrate known strings for automerge (#716)
Leave the rest to error.
2017-08-22 08:12:42 +02:00
Rhys Arkins
2ca2e7c8ca fix: expand automerge string to fill all upgrade types (#714)
This makes for an uglier migration and potentially some redundancy, but is the only easy way to ensure that the migrated behaviour is definitely correct.

Fixes #713
2017-08-22 06:20:23 +02:00
Rhys Arkins
b657d3c291 feat: support lock file maintenance automerge (#712)
Refactored the `automerge` field to change it to boolean. Existing string will be migrated to new config. Automerging lock files is now possible by adding `”lockFileMaintenance”: { ”automerge”: true}` to config.

Closes #706
2017-08-21 13:41:48 +02:00
Rhys Arkins
d72dccfbe1 fix: do not resolve packageFile content (#698) 2017-08-18 21:01:08 +02:00
Rhys Arkins
26cdabe57e fix: array objects should be migrated (#697) 2017-08-18 19:47:13 +02:00
Rhys Arkins
573b434d2f fix: arrays of objects should be massaged (#696) 2017-08-18 19:24:27 +02:00
Rhys Arkins
ad40f0abd8 feat: shareable preset configs (#658)
This PR implements eslint-inspired shareable configs. With this feature, we:
- Add new config option "extends"
  * This is an array of preset config names that the current config or preset extends/inherits from
- Add new config option "description"
  * Each preset config should include a description of its functionality that is human-readable
- Provide a set of commonly use configs called "preset defaults"
- Provide two "full" preset configs: "app" and "library"
   * Almost the same but app pins *all* version numbers while library only pins devdependencies
- Replace regular config in onboarding with one of these two presets
- Generate human-readable description of config in Onboarding PR
- Support npm for hosting configs (both scoped and non-scoped)

Closes #657, Closes #671, Closes #647
2017-08-18 06:10:19 +02:00
Rhys Arkins
3099bf9da1 fix: migrate last day of month schedule to first of month (#680) 2017-08-15 11:54:36 +02:00
Rhys Arkins
c120b7389d fix: migrate automerge=false to automerge=none (#678) 2017-08-15 09:30:40 +02:00
Rhys Arkins
43660d51c4 feat: validate schedule (#674)
Also enables config errors to be shown in Configure Renovate PR.

Closes #550
2017-08-14 11:09:14 +02:00
Rhys Arkins
7970f62a7d feat: massage true/false strings to boolean (#673)
Closes #637
2017-08-14 07:49:33 +02:00
Rhys Arkins
e9f672060e fix: disable unpublish-safe default (#672)
It was a mistake to enable this feature by default, and should be disabled. A check has been made to set the status to “success” if it was previously “pending” and the setting is now false. This should also cover the case when someone enables it and then disables it.

Fixes #667
2017-08-14 06:27:00 +02:00
Rhys Arkins
99e68cddd3 feat: process all package rules in parent->child order (#666) 2017-08-11 08:03:18 +02:00
Rhys Arkins
d27d35e535 feat: allow strings instead of lists (#665)
Updates definitions for schedule and package rules to allow strings to be massaged to lists - instead of erroring.

Closes #662
2017-08-11 07:29:16 +02:00
Rhys Arkins
88aaaccfb9 fix: don't detect semantic commits if config set globally (#664)
Fixes #656
2017-08-10 22:35:05 +02:00
Rhys Arkins
57091a1cb4 fix: only concat parent list if non-null (#644) 2017-08-07 10:39:32 +02:00
Rhys Arkins
12e4b1eb90 fix: use fix(deps) for dependencies (#641) 2017-08-07 07:45:43 +02:00
Rhys Arkins
d7a6bbe367 feat: unpublish-safe status check (#635)
Renovate now adds a status check renovate/unpublish-safe that has the following behaviour:
If any upgrade in the branch is < 24 hours old then the status check state is "pending"
If all upgrades in the branch are 24 hours or more old then the status check state is "success"
This is able to be disabled via a new option "unpublishSafe".

Closes #494
2017-08-06 15:38:10 +02:00
Rhys Arkins
cfa495da61 feat: support package rule merging (#632)
packageRules are now mergeable between parent and child. Child rules will be placed before parent rules.

Closes #591
2017-08-06 06:41:45 +02:00
Rhys Arkins
d484f9bf8b fix: add yarnCacheFolder to removedOptions (#624) 2017-08-05 07:48:12 +02:00
Rhys Arkins
5d6652b4bc fix: remove non-functioning yarn cache folder option (#614) 2017-08-04 16:12:24 +02:00
Rhys Arkins
f8ec742b3b feat: Detect semantic commits every run (#609)
Now no need to detect at onboarding time. Also suggests removing setting in migration if it is already the same value.

Closes #528
2017-08-04 14:49:02 +02:00
Rhys Arkins
e7ce772e94 feat: Make semanticPrefix implicit in templates (#608)
No need for {{semanticPrefix}} to be specified in templates now - it will be implicitly added to start of commit message and PR titles if semanticCommits=true
2017-08-04 12:34:42 +02:00
Rhys Arkins
b51915912f fix: check for legacy pr title format (#606)
Checks for legacy PR title format so we don't accidentally recreate any of those.
2017-08-04 11:55:49 +02:00
Rhys Arkins
009113b094 fix: no v version prefix for ranges (#605) 2017-08-04 10:25:02 +02:00
Rhys Arkins
c2a6033ad7 fix: use v prefix for commit message and pull request versions (#603)
Now will use “v1.0.0” instead of “version 1.0.0”

Closes #587
2017-08-04 09:26:11 +02:00
Rhys Arkins
134065c7c7 refactor: use branch prefix in templates (#604)
This allows for the easy overriding of our default `renovate/` branch naming.

Closes #586
2017-08-04 08:32:22 +02:00
Rhys Arkins
7ff5780a8f fix: migrate packages array properly (#597) 2017-08-03 19:52:10 +02:00
Rhys Arkins
db2e6dd1b9 refactor: Convert Object.assign to spread (#585)
Closes #226
2017-08-03 08:01:20 +02:00
Rhys Arkins
c3b123a83d feat: Advanced package rules (#582)
- Renames `packages` to `packageRules`
- Refactor `packageName` to `packageNames` array
- Refactor `packagePattern` to `packagePatterns` array
- Adds `excludePackageNames` array
- Adds `excludePackagePatterns` array

Closes #529
2017-08-03 07:55:59 +02:00
Rhys Arkins
195988aa0b fix: Incorrect variable used to resolve depTypeConfig (#579) 2017-08-02 16:19:52 +02:00
Rhys Arkins
8f8a4de69f fix: Schedule should always be an array (#580)
Massaging of string to array is done in migration function.
2017-08-02 16:14:09 +02:00
Rhys Arkins
6c6b1756cb fix: Migration check should set flag true at all times (#578) 2017-08-02 14:41:25 +02:00
Rhys Arkins
d2ad057a33 feat: Improve depTypes configuration (#577)
depTypes configuration is now refactored from being an array of strings/objects to having each type of dep (`dependencies`, `devDependencies`, `optionalDependencies`, `peerDependencies`) be a first class object in the namespace. The "old" way of configuring is still supported but is transformed using a migrateConfig script. Later, PRs will be raised to impacted repositories to suggest the new config.
2017-08-02 14:05:45 +02:00
Rhys Arkins
7f97424092 fix: Separate config migration check to own file (#576) 2017-08-02 08:54:42 +02:00
Rhys Arkins
c76222fd53 fix: Validate array objects in configuration (#575) 2017-08-02 07:52:28 +02:00
Rhys Arkins
d9d131de6c feat: Full patch separation support (#572)
This PR adds explicit patch support. A user can set `separatePatchReleases` to true and receive not only major/minor updates but also patch updates separately. This functionality is also implicitly enabled if `automerge` is set to `patch`.
This PR also enables separate major/minor/patch configuration, e.g. config overrides for major versions, for patch versions, etc. `branchName` is currently overridden for patch branches using this technique.

Closes #390, Closes #538
2017-08-01 17:10:53 +02:00
Rhys Arkins
f1d7330f2b fix: Improve PR body fixes for scoped packages (#569)
Escape all scoped package mentions
Escape in group PR bodies too
Remove empty repositoryUrl links
2017-08-01 08:49:41 +02:00
Rhys Arkins
6cd398f0c5 fix: Escape scoped package names in PR bodies (#568)
GitHub attempts to autolink any @user mention and this causes problems when we use scoped npm modules like `@types/gulp`. This escapes such package names with a zero width space to fool GitHub’s parser.

Fixes #518
2017-08-01 07:22:43 +02:00
Rhys Arkins
b674e93de2 fix: Add groupCommitMessage to deprecatedOptions (#566) 2017-07-31 16:54:24 +02:00
Rhys Arkins
023e520702 fix: Do not log warning when deprecated config options found (#563) 2017-07-31 14:50:44 +02:00
Rhys Arkins
194b5b4b16 fix: Config validation ignore null and massage schedule to array (#558) 2017-07-29 22:12:19 +02:00
Rhys Arkins
7d493a14bf feat: Log warnings when unknown configuration options or option types found (#554)
This PR adds detection and log warnings for the following config validation errors:
- Unknown config option (e.g misspelling of a valid config option)
- Config option is a wrong type (e.g. string instead of boolean)

It does *not* propagate this warning to the user (i.e. in onboarding or PRs) yet due to the high chance that we'll find a false negative. I will watch logs for a week or so and then once happy with results will activate user-visible warnings via #556.

Closes #548, Closes #555
2017-07-28 21:15:27 +02:00
Ika
3c83075fb8 feat: add 'patch' option to automerge (#539)
* feat: add 'patch' option to automerge

* test: add tests for automerge = patch

* docs: add patch option to automerge

* refactor(isAutomergeEnabled): write code verbosely

* feat: export isAutomergeEnabled

* test(isAutomergeEnabled): add tests
2017-07-27 22:17:28 +02:00
Rhys Arkins
beb37bc128 feat(lockFile): Support lockFileMaintenance disabling in env
It’s now possible to set `RENOVATE_LOCK_FILE_MAINTENANCE={}` in env to disable lock file maintenance.

Closes #515
2017-07-24 20:56:15 +02:00
Rhys Arkins
8e48d97392 feat(logs): Support custom log detail fields
This removes the need to JSON.stringify() objects in logs. Default bunyan fields plus our custom meta fields are stripped out, and everything else is stringified in the details field.

Closes #498
2017-07-19 08:05:26 +02:00
Rhys Arkins
475e548e9c feat(versions): Roll back if current version missing/unpublished (#497)
If the current version is not in the version list on the npm registry, we assume it has been unpublished and we raise a roll back PR.

Closes #493
2017-07-18 20:01:00 +02:00
Rhys Arkins
e41c44ea77 fix(prBody): Update PR body link 2017-07-18 07:33:37 +02:00
Rhys Arkins
5f02c91823 refactor(config): Warn instead of error when no repositories found 2017-07-15 06:47:20 +02:00
Rhys Arkins
95f7eab826 feat(onboarding): simplify default config (#486)
Onboarding PRs now include much less default configuration options than before.

Closes #484
2017-07-14 07:34:01 +02:00
Rhys Arkins
192c9b998c feat(config): mergeable depTypes (#485) 2017-07-13 22:18:24 +02:00
Rhys Arkins
b10bcecade fix(groups): Assign a groupName to lockFileMaintenance to prevent unwanted grouping
Previously, when someone declared a repository groupName such as “All”, it resulted in lock file maintenance updates being grouped together as well. This is undesirable, especially if the All group then inherits the lock file maintenance schedule.

Fixes #483
2017-07-13 13:37:06 +02:00
Rhys Arkins
b55ba07b47 feat(repository): Ignore package files discovered inside node_modules
Renovate will now ignore any package.json files found within node_modules folders, with the option to disable this functionality by setting config.ignoreNodeModules=false.
2017-07-08 07:00:58 +02:00
Rhys Arkins
1395187ccc feat(npm): Support packagelock.json maintenance (#471)
Renovate will now "maintain" npm@5's `package-lock.json` files on the same schedule as existing `yarn.lock` maintenance.

Closes #470
2017-07-07 13:57:43 +02:00
Rhys Arkins
0ee24ebadf refactor: Use (deps) in semantic prefix defaults (#458)
Closes #417
2017-07-06 14:39:50 +02:00
Rhys Arkins
dc5773c2e5 feat: Configurable base branch for PRs (#448)
Collaborator
rarkins commented 14 hours ago
Base branch for Pull Requests is now configurable via a new baseBranch configuration option. To take effect, this much be present in the default branch (e.g. master in most cases) so that it can be discovered and used. See FAQ for more details.

Closes #443
2017-07-06 10:26:18 +02:00
Rhys Arkins
5c34b74b08 feat: Show schedules in PRs (#439)
Closes #425
2017-07-05 08:09:35 +02:00
Rhys Arkins
c30472dd43 feat: Add ability to skip status checks for automerge (#438)
This starts off [#359](https://github.com/singapore/renovate/issues/359) (configurable status checks) but only implements one sub-feature of it: disabling status checks to allow automerge if tests fail or if no tests are present.
2017-07-05 07:02:25 +02:00
Rhys Arkins
116a330eef fix: close if tag in group.prBody template 2017-07-04 14:29:18 +02:00
Rhys Arkins
e0e0b259c3 feat: Show warnings and errors in regular PRs (#433)
If errors or warnings are present, they will be displayed in the PR body of all PRs now (not just onboarding).

Closes #431
2017-07-04 13:52:23 +02:00
Rhys Arkins
4272b113d2 refactor: configuration options and update docs (#423) 2017-07-03 11:34:46 +02:00
Rhys Arkins
f2833c8275 refactor: Add 'package' stage to config definitions (#421)
* Add package phase

* Rename phase to stage
2017-07-03 10:31:36 +02:00
Rhys Arkins
b67b3087e5 refactor: rename option.level to option.phase 2017-07-02 09:15:33 +02:00
Rhys Arkins
1cf8330125 fix: group branchName handlebars error
Closes #410
2017-07-02 07:50:46 +02:00
Rhys Arkins
372b445260 refactor: set recreateClosed in group and lockFileMaintenance 2017-07-02 06:25:42 +02:00
Rhys Arkins
8dc7e47526 fix: relative lib require in config definitions 2017-07-02 06:18:07 +02:00
Rhys Arkins
3d9cd11611 refactor: change group config structure
This changes how group are configured to align with the new lock file configuration.

BREAKING CHANGE: old group* template options are no longer supported but can be migrated into group object
2017-07-01 06:49:32 +02:00
Rhys Arkins
6f49927a45 feat: schedule support for lock file maintenance
This feature now allows a custom schedule to be defined for lock file maintenance. It is now enabled by default but runs only before 5m on Sundays. Closes #399

BREAKING CHANGE: lock file maintenance is enabled by default.
Rules will apply to both yarn and npm (npm is yet to be implemented however). Existing mainainYarn* variables are removed and replaced by new lockFileMaintenance object.
2017-07-01 06:46:11 +02:00
Rhys Arkins
45c3124a8f feat: support "enabled" config option at all configuration levels 2017-06-30 16:04:23 +02:00
Rhys Arkins
6664110c29 feat: schedules (#397)
This PR adds a scheduling feature, including timezone support.
It's described in detail in the FAQ, but the summary is:

*   Timezones can be defined so that schedules are written in timezone of target repository
*   Schedules can be written in "plain english"
*   Multiple schedules allowed
*   Schedules can be defined all the way down to package level

Closes #387
2017-06-30 14:04:46 +02:00
Rhys Arkins
01df41086b fix: semanticCommitsEnabled -> semanticCommits 2017-06-30 06:01:50 +02:00
Rhys Arkins
4c79dae98c feat: semantic commit support (#389)
Defaults to disabled. Included in onboarding.

Closes #303
2017-06-29 19:50:26 +02:00
Rhys Arkins
87967b4945 fix: Onboarding config should use repo config, not defaults (#386) 2017-06-29 15:38:18 +02:00
Rhys Arkins
552b5e68c5 Refactor helpers (#382)
* Move yarn and npm helpers into branch worker

* Fix name

* Move package-json helper

* Update name

* Move changelog

* Move github-app

* Remove unused platform

* Move logger

* Fix lint
2017-06-29 07:29:41 +02:00
Rhys Arkins
46a4d8ba9d Refactor pin groups (#364)
* Group together pins

* Install github-url-from-git

* Get repositoryUrl from npm

* Don’t delete excess pins

* Update configuration.md

* Update tests
2017-06-27 17:46:11 +02:00
Rhys Arkins
463d2fc39d Refactor worker code (#362)
* Move package-file worker

* rename to renovatePackageFile

* Move packageJson

* Add getDepTypeConfig

* Add

* Revert "Add"

This reverts commit d034e6149a.

* Refactor versions

* rename findPackageFileUpgrades

* rename versions

* packageWorker

* Refactor promises

* move snapshots

* Rename

* Refactor versions

* Refactor

* Finish package worker

* Major refactor

* Remove worker tests

* package/versions

* Finish packageWorker tests

* package-json test

* Finish dep-type tests

* Add back package-json helper test

* Refactor package-file

* Add back branch and pr

* Add back remaining worker tests

* update tests

* remove snapshot

* Fix dep-type coverage

* Remove old tests

* Coverage
2017-06-27 13:44:03 +02:00
Rhys Arkins
ae73655c6e Refactor repository worker (#361)
* Add subdirectory

* Move apis tests

* Move onboarding

* Move more apis functions

* Move upgrades

* Refactor index

* Renames
2017-06-26 14:26:49 +02:00
Rhys Arkins
1dd464cba5 Refactor config definitions and onboarding values (#360)
* Set levels in definitions

* Rename global worker

* getRepoConfig use options levels

* Refactor packageFileConfig

* Add onboarding configuration
2017-06-26 13:08:57 +02:00
Rhys Arkins
19f4b3b0bc Refactor repository worker (#344)
* Move to subdir

* Downgrade eslint to 3

* Refactor api and config usage

* Refactor mergeRenovateJson

* Test mergeRenovateJson

* getOnboardingStatus tests

* Refactor repository structure

* Refactor config.logger

* Revert "Refactor config.logger"

This reverts commit 6d7f81af6e.

* Refactor repository logging

* Refactor try/catch

* Refactor platform and onboarding

* Refactor setNpmrc

* Fix github logger

* npm api use config.logger

* Refactor repo worker logger

* Refactor repo worker

* Refactor branched upgrades

* Repository refactoring

* Move some debug logging to trace

* Deprecate fileName

* Refactor upgrades

* Refactor repository logs

* More repository log refactoring

* Refactor repository location

* Revert "Refactor repository location"

This reverts commit faecbf2951.

* Fix tests

* mergeRenovateJson

* Recombine repository worker

* Add initApis tests

* add detectPackageFiles tests

* Add determineRepoUpgrades tests

* start groupUpgradesByBranch tests

* add test

* add test

* Finish groupUpgradesByBranch coverage

* Test updateBranchesSequentially

* Finish repo coverage

* Finish branch worker coverage

* Finish workers coverage

* Fix isPin

* Complete workers coverage

* Finish helpers coverage

* Add gitlab api tests

* getBranchStatus tests

* test createPr

* start getPr testing

* getPr

* update and merge PR tests

* getFile

* getFileContent tests

* getFileJson tests

* createFile

* updateFile

* createBranch

* commitFilesToBranch

* update yarn

* Update yarn
2017-06-25 07:36:13 +02:00
Rhys Arkins
a3a3f88091 Fix gitlab markdown/html (#337)
* Add showdown

* Use showdown to convert pr body to html

Closes #334

* Update test
2017-06-22 15:14:42 +02:00
Rhys Arkins
10622a1811 Refactor to enable log context (#331)
Closes #317 

* Install traverse

* Scrub api and logger in stringify config

* Use stringifyConfig

* Ignore logs

* Add meta to CLI logs

* Refactor repo structure

* rename repoWorker

* renamed worker

* Refactor logger location

* Refactor main worker

* Refactor getRepoConfig

* Refactor err

* Refactor repo logger

* Add config serializer and logger

* Refactor redact

* Remove stringifyConfig

* Refactor onboarding

* Set packageFile logger

* Refactor package file logic

* branch and pr logging

* Improve log context

* Fix tests part 1

* more test fixes

* Fix github init

* All tests passing

* Rename cli helper

* Refactor logger

* Add logger tests

* Add config serializer tests

* Add configParser tests

* Fix package file tests

* Expand package-file tests

* Use defaultConfig

* Add package-file tests

* Refactor

* Finish package-file tests
2017-06-22 09:03:36 +02:00
Rhys Arkins
06cd61e704 Add log to file capability (#330) 2017-06-20 21:34:25 +02:00
Rhys Arkins
19f13b10ee Fix repository redaction (#329) 2017-06-20 21:34:08 +02:00
Rhys Arkins
34421a3837 Replace winston logging with bunyan (#326)
Closes #325 

* Install bunyan

* Set log level for jest

* Replace winston requires with relative logger require

* Add cliHelper

* Strip unused

* Trim unused and update colors

* Update log messages

* Enable dynamic log level

* Update cli.js
2017-06-20 17:57:04 +02:00
Rhys Arkins
b9542217f8 Remove log-level verbose (#324)
Closes #318
2017-06-20 08:02:17 +02:00
Rhys Arkins
439367e223 Don’t show commit details when none present (#311)
Fixes #308
2017-06-16 09:46:57 +02:00
Rhys Arkins
299016918a Change autogenerate PR message (#301) 2017-06-13 16:52:33 +02:00
Rhys Arkins
91856cec7a Refactor changelog logic to directly use JSON (#296)
Closes #264 

* Basic refactor

* Refactor into module

* Further refactor

* Use json for group pr body

* Add commit links

* improve body

* Refactor names

* Add signature

* Refactor config

* Simplify non-group pr body template

* Fix Pull/Merge terminology

* Fix test

* Fix pr test

* Fix prettier
2017-06-13 11:08:37 +02:00
Rhys Arkins
112ff0b410 Support branch automerging (#274)
Add support for automerging without PR, Closes #177 

* update definitions and docs


* Add mergeBranch api

* support merge commit

* set automergeType

* Update API

* Refactor merge commit

* branch-push working

* Refactor branch

* Add back base tree

* Fix failing tests

* Update definitions and docs

* Fix automerge logic

* Test isBranchStale

* start mergeBranch test

* test mergeBranch branch-push throws

* more tests

* test unknown commit type

* pr tests

* Detect automerge in versions helper

* update tests for new automergeEnabled flag

* refactor pr logic

* complete pr worker tests

* branch automerge tests

* Update docs

* refactor branch automerge check
2017-06-08 06:18:21 +02:00
Rhys Arkins
ee6b9876be Externalise hbs templates (#255)
* Externalise hbs templates

* Fix tests

* Move templates

* lint fix

* Refactor templates location
2017-06-04 16:42:24 +02:00
Rhys Arkins
edade684e6 Support lazy grouping (#241)
Closes #240
2017-06-03 15:27:11 +02:00
Rhys Arkins
775a93172f Add yarn cache support (#239)
* Add yarn cache support

Closes #237

* Fix prettier
2017-06-03 15:25:13 +02:00
renovate[bot]
cfb692c0d0 Update dependency prettier to version 1.4.0 (#231)
* Update dependency prettier to version 1.4.0

* Update dependency prettier to version 1.4.0

* Run prettier autofixes
2017-06-02 22:40:00 +02:00
Rhys Arkins
07ad13337b Add GitHub App support (#230)
* Add jsonwebtoken

* Add githubApp option

* Add id and key configs

* Add integer parsing to cli and env

* Remove boolean app enablement

* Drop got

* Add API functions for GitHub Apps

* debug not verbose in api

* Add GitHub App Helper

* Update redact function

* Add GitHub app logic

* Update logging

* Fix lint

* getInstallations tests

* getInstallationToken tests

* getInstallationRepositories tests

* Refactor ghGot structure

* Add github app tests

* Add config tests

* update lockfile
2017-06-02 22:06:15 +02:00
Rhys Arkins
6a0524edb7 Enable templates via env and update design decision doc (#192)
Closes #190
2017-04-29 04:42:17 +02:00
Rhys Arkins
e844388e48 Add description of list configuration to docs and CLI help
Closes #188
2017-04-26 21:51:14 +02:00
Rhys Arkins
44e7bbf512 Use es5 trailing commas (#183) 2017-04-21 10:25:49 +02:00
Rhys Arkins
06f8d50f5e Use Prettier (#181) 2017-04-21 10:12:41 +02:00
Rhys Arkins
97d2a54561 Add repository autodiscovery (#156)
Closes #146
2017-04-21 07:00:26 +02:00
Rhys Arkins
c1a561ebf7 Refactor platform check and api assignment (#179)
* Refactor platform check and api assignment

* Drop mock

* drop async
2017-04-21 06:43:26 +02:00
Rhys Arkins
aa3309ffe1 PR Automerging (#173)
Closes #109

* Add automerge definition

* Add mergeMethod

* add mergePr for GitHub

* update definitions

* autodetect merge type

* Check mergeable state

* Don’t split majors if automerging any

* Update mergePr api commands

* fix initRepo tests

* Add tests

* Fix mergePr call

* Fix description

* Revert branchWorker changes

* revert comment

* Add test

* Add major/minor separation tests

* Add status-success tests

* Add not-pending tests

* Add automerge tests

* Check branch status before merge
2017-04-20 13:01:23 +02:00
Rhys Arkins
4283fbf7f8 Improve prCreation description 2017-04-20 07:11:45 +02:00
Rhys Arkins
ca7b25825d Add PR Creation stage configuration (#168)
* Add prCreation config option

* Support ‘status-success’ configuration

* Add option ‘not-pending’
2017-04-17 06:46:24 +02:00
Rhys Arkins
adcd152c3f Fix monorepo yarn maintenance (#167)
Closes #166 

* Support multiple yarn.lock files for maintenance

Closes #166

* Refactor maintainYarnLock logic
2017-04-17 04:54:42 +02:00
Rhys Arkins
05be49757c Dependency groups (#164)
Closes #10, Closes #48

* Update configuration options

* Upgrade dependencies to latest if groupName is configured

* Update docs

* Add groupName logic
2017-04-15 22:04:14 +02:00
Rhys Arkins
cad086d242 Add separateMajorReleases config option (#161) 2017-04-15 12:44:50 +02:00
Rhys Arkins
701aaef972 Support yarn.lock maintenance (#105)
Closes #96 

* Improve yarn logs

* Add processYarnLock

* Update worker.js

* Update worker.js

* Fix and update docs

* Make Yarn Maintenance strings into templates
2017-04-13 22:39:46 +02:00
Rhys Arkins
8d289ac445 Support simple range upgrades (#155)
Closes #31 

* Add config.pinVersions

* Check config.pinVersions before pinning

* Fix no pinning

* Add tests for existing functionality

* Add test for new feature

* Add semver-utils

* Supports tilde ranges

* Add tests for tilde and caret

* Add support for lesser than ranges

* Document range upgrade logic

* Support shorthand and .x ranges

* Refactor upgrade logic

* Simplify refactor

* revert test change

* Add isRange and update PR title template

* Refactor major/minor

* Refactor isRange

* Refactor newRange

* Use lodash for rejecting pin

* Revert "Use lodash for rejecting pin"

This reverts commit 7f0b704bbf.

* Fix major check

* Use lodash for rejecting

* Use lodash map

* rename

* Refactor mapping

* Refactor test config
2017-04-13 21:22:24 +02:00
Hutson Betts
f6421b0bb9 fix(file): use path.isAbsolute for Windows compatibility (#142)
Use Node's built-in `path.isAbsolute` for compatibility with
Window's file paths.
2017-03-26 06:08:34 +02:00
singapore
a98bd9f476 Update config definition descriptions (#129)
* Update definitions.js

* Update docs
2017-03-13 10:07:57 +01:00
Rhys Arkins
191ed70898 Add Gitlab support (#83)
Closes #65
2017-02-11 08:14:19 +01:00
Jon Bretman
3818e535ad Move tests to Jest (#94)
* No need to run tests against compiled code
* Better support for reseting modules
* Will make writing tests for the github/npm apis easier
2017-02-09 05:30:00 +01:00
Jon Bretman
541edb1807 Fix some small bugs (#92)
* Remove leading `/` from file paths returned from GitHub API search
* Return PR object from `createPr` function in api/github
* Set the logging level as soon as it's known
* Make sure endpoint is set at the repository level
2017-02-07 21:45:35 +01:00
Sébastien ELET
7829dfea96 Add option to rebase stalled PRs (#89)
Closes #54 

* feat(rebaseStalePr): add option to rebase stalled PRs

* refactor(pr): rename isStalled to isStale

* docs(*): rebuild the docs
2017-02-06 07:56:33 +01:00
Rhys Arkins
76de590415 Support custom endpoints 2017-02-05 09:13:56 +01:00
Rhys Arkins
87a025c2d1 Refactor for multiple platforms (#81)
* Add gl-got

* Add platform config definition

* Refactor for multiple platforms

Preparing for #65
2017-01-31 18:16:33 +01:00
Sébastien ELET
7c6a891b73 Add option for Requested Reviewers (#79)
This feature allows for the addition of requested reviewers for Pull Requests.
2017-01-31 14:54:16 +01:00
Rhys Arkins
528112bc47 Use async await (#78)
All promise syntax has been replaced with async/await.
`renovate` is now transpiled with `babel` to a `dist/` folder, which is the target of `main` and `start` in `package.json` now.
`renovate` can be run in `node.js` v7 without transpilation using `npm run start-raw`

Closes #77
2017-01-31 12:19:06 +01:00
Rhys Arkins
3096550672 Add onboarding (#76)
* Check for closed PR

* Refactor

* Make onboarding configurable
2017-01-30 07:34:35 +01:00
Rhys Arkins
dfd86e3740 Remove recreateUnmergeable option and update docs 2017-01-29 21:53:12 +01:00
Rhys Arkins
732958c843 Refactor worker 2017-01-22 14:40:14 +01:00
Rhys Arkins
00d6249711 Refactor config
Now generates CLI, env and docs
Makes config more testable
2017-01-20 14:03:18 +01:00
Rhys Arkins
b068ad6597 Move all templates into config root 2017-01-20 13:55:27 +01:00
Rhys Arkins
1c25eb7b4e Support enabled boolean configuration
Closes #60
2017-01-19 10:27:31 +01:00
Rhys Arkins
bb5c144af3 Reorder defaults 2017-01-19 10:15:57 +01:00
Rhys Arkins
6f19935a34 Add assignees to config 2017-01-18 21:16:53 +01:00
Rhys Arkins
9fc83cd171 Redact token in logs
commit e6ca456e63f9f42089275ceb14e42442d8cbe8eb
Author: Rhys Arkins <rhys@keylocation.sg>
Date:   Wed Jan 18 14:11:53 2017 +0100

    Redact string

commit 154367927f60a895708ef0f83192342bbf7a4093
Author: Rhys Arkins <rhys@keylocation.sg>
Date:   Wed Jan 18 14:02:12 2017 +0100

    Redact config
2017-01-18 14:14:07 +01:00
Rhys Arkins
26caf655a3 Fix changelog in pr body 2017-01-18 13:26:26 +01:00
Rhys Arkins
0356dd0eca Refactor templates to use handlebars (#57) 2017-01-18 01:48:17 +01:00
Rhys Arkins
1586627b64 Configurable ignore behaviour (#56) 2017-01-17 14:27:48 +01:00
Rhys Arkins
9a56bb96fb Support package.json autodiscovery (default)
Closes #53

commit e80dbfd9caa56edc3c9980622e6ebffecbc6e104
Author: Rhys Arkins <rhys@keylocation.sg>
Date:   Tue Jan 17 09:11:03 2017 +0100

    Update docs

commit 78830806efe35150e9ec4cb5416d43092ccf0fc7
Author: Rhys Arkins <rhys@keylocation.sg>
Date:   Tue Jan 17 08:52:23 2017 +0100

    Refactor

commit c44979212f7c51d395a4b4dbffe831af5467b4fc
Author: Rhys Arkins <rhys@keylocation.sg>
Date:   Tue Jan 17 07:25:28 2017 +0100

    Set default packageFiles to []

commit c830f0b37928460ed857260e6c4b4c3c23443f1e
Author: Rhys Arkins <rhys@keylocation.sg>
Date:   Tue Jan 17 07:14:33 2017 +0100

    Add github.fileFile
2017-01-17 09:12:02 +01:00
Rhys Arkins
57a41cac04 Recreate unmergeable PRs
Closes #32

commit b9706b2e0de85d3c2953ddda16cfc15ec92279e3
Author: Rhys Arkins <rhys@keylocation.sg>
Date:   Mon Jan 16 18:09:36 2017 +0100

    Fix lint

commit 04bb13b233609cba425b171ba529810b0ba614a1
Author: Rhys Arkins <rhys@keylocation.sg>
Date:   Mon Jan 16 18:08:33 2017 +0100

    Defer changelog and prBody

commit 2f1501aeedf1a3a2fb61db7df8ee1c0424efebb2
Author: Rhys Arkins <rhys@keylocation.sg>
Date:   Mon Jan 16 18:08:15 2017 +0100

    recreateClosed

commit 09cecdfcdd8a991c0d25bc7e27aef273c28595e0
Author: Rhys Arkins <rhys@keylocation.sg>
Date:   Mon Jan 16 13:24:58 2017 +0100

    docs

commit f219c1165086409a806dff8370050ae7909d8176
Author: Rhys Arkins <rhys@keylocation.sg>
Date:   Mon Jan 16 12:40:46 2017 +0100

    Recreate unmergeable PRs

commit c40b6bda284ddefccaddf1487a550d7c3d487a1a
Author: Rhys Arkins <rhys@keylocation.sg>
Date:   Mon Jan 16 12:19:15 2017 +0100

    Delete unmergeable PRs

commit 58283ea70b2b844f02fd025fb11541405b6e3280
Author: Rhys Arkins <rhys@keylocation.sg>
Date:   Mon Jan 16 12:19:03 2017 +0100

    Add github deleteBranch, getBranchPr
2017-01-16 18:10:39 +01:00
Rhys Arkins
8d6bad0909 Refactor helpers
Also deprecates RENOVATE_TOKEN for GITHUB_TOKEN
2017-01-15 23:56:09 +01:00
Rhys Arkins
18bd697dae Add short versions to CLI 2017-01-15 17:24:13 +01:00
Rhys Arkins
ab585178bd Refactor env parsing 2017-01-15 16:29:34 +01:00
Rhys Arkins
5fc82077b7 Refactor config parsing to pass tests 2017-01-15 16:12:56 +01:00
Rhys Arkins
7163700c7c Rename app to lib 2017-01-15 13:13:08 +01:00