Commit graph

591 commits

Author SHA1 Message Date
renovate[bot]
8866603a46 fix(deps): update dependency get-installed-path to v4 (#892)
* fix(deps): update dependency get-installed-path to v4.0.3

* fix
2017-10-08 06:30:01 +02:00
Rhys Arkins
28a18b18da feat: write existing lockfile before regenerating (#881)
It appears that writing the existing lockfile before regenerating a new one can help speed some resolutions up.

Closes #815
2017-10-08 05:52:58 +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
88f9bb40f7 fix: downgrade github branch merge api error to warn (#889) 2017-10-05 10:45:08 +02:00
Rhys Arkins
913d0cf208 feat: create PRs if branch automerge failed (#888) 2017-10-05 09:31:10 +02:00
Rhys Arkins
bb263cca60 fix: catch error in checkForClosedPr and return false (github) (#887) 2017-10-05 09:25:45 +02:00
Rhys Arkins
5dab080ef7 fix: info message if automerge branch fails (#886)
* fix: info message if automerge branch fails

* fix snapshot
2017-10-04 16:52:50 +02:00
Rhys Arkins
83ec9341de feat: npm cache expiry (#878)
* use keyv for cache

* set expiry to 5 minutes

Closes #267
2017-10-03 10:39:03 +02:00
Rhys Arkins
88e6406e77 fix: dont log full upgrade object (#876) 2017-10-02 20:34:51 +02:00
Rhys Arkins
853a43937a fix: check if depName exists before replacing (#873) 2017-10-02 14:14:24 +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
188f50ba5f fix: use preview header when requesting reviewers (github) (#871) 2017-10-02 06:57:13 +02:00
Rhys Arkins
d392efc36c chore: add filename to Renovating package.json log (#869) 2017-10-01 15:25:05 +02:00
Rhys Arkins
1c42140475 fix: write npmrc to subdirectories with lock file (#858)
* fix: write npmrc to subdirectories with lock file

* fix lint
2017-09-29 10:42:16 +02:00
Rhys Arkins
6969ff3a36 fix: only massage package name if name exists (#859) 2017-09-29 10:37:02 +02:00
Rhys Arkins
b689509eb2 fix: don’t error if packageFile configured (#856) 2017-09-29 09:36:14 +02:00
Rhys Arkins
d5f11ad9bd feat: remove {} template strings from package.json name (#855) 2017-09-29 09:18:59 +02:00
Rhys Arkins
4702f2ad95 fix: escape filename %2F (GitLab) (#854)
Fixes #849
2017-09-29 09:05:36 +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
23f8467d1e feat: support non-root yarn workspaces (#852)
Previously, Renovate assumed that any yarn workspaces configuration would be in the root of the repository. Now, workspaces can be located within a subdirectory, e.g. `frontend/`. Note: Renovate still supports only one workspace per repository, please file an issue if you require more than one.

Closes #842
2017-09-29 08:08:52 +02:00
Rhys Arkins
43bff1ee54 fix: improve every xday schedule migration (#850)
Fixes #845
2017-09-28 19:42:33 +02:00
singapore
7ef9e65052 chore: downgrade rebase warning to info 2017-09-28 15:04:27 +02:00
singapore
97ee1d7588 chore: downgrade "all merge attempts failed" from warn to info 2017-09-28 15:03:21 +02:00
Rhys Arkins
636b5fd82a fix: log npm version when generating lockfile (#836)
Now adds `stdout` and `stderr` from `npm` and `yarn` installs to the "Generated lockfile" log message, so that the exact versions of npm and yarn can be known in the default logs.

Closes #827
2017-09-24 16:53:47 +02:00
Rhys Arkins
7208488402 fix: log when automerging succeeds (#835) 2017-09-24 16:34:34 +02:00
Rhys Arkins
fe61fe2e7f fix: add —ignore-engines to yarn install (#831) 2017-09-23 08:05:43 +02:00
Rhys Arkins
bc18850e05 fix: use dummy time if missing from npm response (#830) 2017-09-23 08:00:17 +02:00
Rhys Arkins
9aad365032 feat: improve logging visibility (#828)
* fix: add upgrade and branch timings to log

Adds timing logs for upgrade detection + branch updating stages.

Closes #821

* improve request retry logging
2017-09-22 07:04:41 +02:00
Rhys Arkins
9ff555c74b fix: promisify lockfiles (#826)
`npm` and `yarn` lockfile generation use promisified child process `exec` now instead of `spawnSync`.
2017-09-20 22:56:57 +02:00
Rhys Arkins
d7025f25d6 fix: Detect npm & yarn when globally installed (#825)
This fix improves the way Renovate detects embedded/installed npm and yarn. It tries:
- locally installed npm or yarn
- npm or yarn embedded inside globally installed renovate
- globally installed npm or yarn
- global `yarn` or `npm` commands as fallback

Fixes #824
2017-09-20 07:52:44 +02:00
Rhys Arkins
8d22bdbee3 fix: downgrade JSON parsing log from error to warn (#823) 2017-09-19 14:58:37 +02:00
Rhys Arkins
710d0262e2 fix: logger.info not warn when failing to look up dep (#819) 2017-09-16 08:25:31 +02:00
Rhys Arkins
450b16b459 fix: downgrade dep not found error to warning (#818) 2017-09-16 07:39:27 +02:00
Rhys Arkins
660a208bd2 fix: retry api rate limit exceeded (#816) 2017-09-16 06:39:04 +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
f9b12dbb3e fix: don’t massage packagefile name (#814) 2017-09-15 13:34:53 +02:00
Rhys Arkins
3956877288 fix: use replace rather than full substitution for invalid package file name (#813) 2017-09-15 12:58:06 +02:00
Rhys Arkins
2e40724856 fix: pass PATH to lockfile scripts (#812) 2017-09-15 11:48:12 +02:00
Rhys Arkins
a4490add1e fix: log lock file generation times (#811) 2017-09-15 09:10:50 +02:00
Rhys Arkins
20542e7529 fix: write only updated package.json files when checking for lock files (#810) 2017-09-14 22:10:51 +02:00
Rhys Arkins
6f60289782 feat: install npm as dependency (#808)
* install npm from npm

* use embedded npm and remove versions checking
2017-09-14 18:24:14 +02:00
Rhys Arkins
e4b62a32b2 fix: pass empty env to lock file scripts (#807) 2017-09-14 18:05:38 +02:00
Rhys Arkins
a8126a383f feat: use yarn as a dependency (#806)
Renovate will now depend on yarn like any other dependency and call this version directly, instead of having an embedded version. This will allow us to "renovate" the yarn version we use too.
2017-09-14 17:57:17 +02:00
singapore
75c9203ae0 fix: more check package.json name 2017-09-14 13:57:28 +02:00
Rhys Arkins
60f54f8a5a fix: Check for package.json name first (#805) 2017-09-14 13:56:09 +02:00
Rhys Arkins
760b128b3e feat: massage package.json files before lock file generation (#804)
- Any package names not matching valid pattern will be rewritten to “dummy”
- “engines” and “scripts” fields will be completely removed

Closes #801, Closes #784
2017-09-14 10:54:41 +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
9c56d6f51c fix: nrefactor config.logger -> logger (#794) 2017-09-14 07:21:22 +02:00
Rhys Arkins
d546f30a8f chore: fix eslint (#793)
* fix eslint configuration

* run eslint fix
2017-09-13 21:43:52 +02:00
Rhys Arkins
31b1ee4ef7 refactor: separate npm specifics from package worker (#792) 2017-09-13 21:20:07 +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
8fa94141a1 feat: use package names for ignoring when lerna or workspaces (#787)
* add minimatch

* feat: use package names for ignoring when lerna or workspaces

Renovate will now:
- Find all package.json files matching lerna or yarn workspaces glob pattern
- Retrieve package names from within those package.json files
- Implicitly ignore (not renvoate) any of those names

Closes #781
2017-09-12 07:49:56 +02:00
Rhys Arkins
8086a4eb79 fix: remove black-cat header from github reviewers api (#783) 2017-09-08 11:19:59 +02:00
Rhys Arkins
e5654fc812 fix: convert only first line of commit message to lowercase (#779)
Helps #777
2017-09-07 21:18:50 +02:00
Rhys Arkins
1957bba62d feat: update embedded yarn to v1.0.1 (#778) 2017-09-07 20:34:53 +02:00
Rhys Arkins
4e6c7e2ef5 feat: delete branch if PR creation fails (#774)
This will help “self heal” in cases where the branch becomes invalid and PR creation continually fails.

Closes #773
2017-09-03 10:02:48 +02:00
Rhys Arkins
33d58ce2a3 fix: log prTitle when creating pr (#772) 2017-09-03 06:59:51 +02:00
Rhys Arkins
a1f9d7b547 fix: catch registry url error and default to npm (#769) 2017-09-02 09:18:23 +02:00
Rhys Arkins
bae9ae0595 feat: stop branch processing after lock file error or pin dependencies (#768)
If a repository has a lock file error (e.g. can’t look up a private module) then it will no longer attempt to create every branch. Instead, it will error/exit after the first branch. Additionally, “Pin Dependencies” has been sorted to be first and further branches won’t be added or updated until Pin Dependencies has been merged.
2017-09-02 08:51:49 +02:00
Rhys Arkins
fbf77cf6c7 fix: detect custom registry from repo npmrc (#765)
* remove registry-url

* replace registry-url with registry-auth-token

Fixes #793
2017-09-01 13:01:05 +02:00
Rhys Arkins
47df66143b fix: do not warn when lerna subdirectories not found (#762) 2017-09-01 11:40:12 +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
ddbbacb363 fix: escape gitlab branch name forward slash (#758)
Forward slash is replaced with %2F. It is assumed that this is backwards compatible with api v3 too.

Closes #749
2017-08-31 21:06:19 +02:00
David Herges
2b73f98c58 fix: use iid for gitlab api v4 in findPr (#756)
GitLab 9.5 deprecates api v3 and `iid` must now be used for MRs
2017-08-31 18:21:40 +02:00
Rhys Arkins
5f708c2297 fix: do not restart renovation if automerging failed (#755) 2017-08-31 07:15:53 +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
6e9c73e35a feat: restart repo renovate after automerge (#751)
Previously, the automerge feature was causing some undesirable behaviour when multiple branches were open at the same time. Example: #707. The main problem is that other branches will still be calculated based on the original `package.json` contents and not the post-merge contents. The simplest solution seems to be:
- Stop all subsequent branch processing after any automerge
- Restart repository renovation
This continues until no branch has automerged in a cycle.

Closes #750
2017-08-28 15:50:11 +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
30251323dc fix: don't retry 401s (#746) 2017-08-27 15:10:19 +02:00
Rhys Arkins
cf1766b3e0 fix: always check github retries count (#745) 2017-08-27 14:49:23 +02:00
Rhys Arkins
8ebb32cd87 feat: display extended error in onboarding if lookup fails (#744)
Closes #626
2017-08-27 13:55:41 +02:00
Rhys Arkins
7c3df0ba23 feat: yarn workspaces lock file support (#743)
This feature adds explicit support for correctly generating the yarn.lock file for workspaces. Specifically, it means that the yarn.lock in the root directory is regenerated whenever *any* package.json is modified. Previously lock files were only every updated if its corresponding package.json changes, but that is not the way yarn workspaces works.

Closes #473
2017-08-27 08:17:34 +02:00
Rhys Arkins
d98130f50e fix: support pagination for file search (#742) 2017-08-26 22:15:22 +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
b0715ba5c0 fix: info not error when lock file fails (#739) 2017-08-26 16:47:21 +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
b4dc6aedb2 fix: don’t throw error if failing to set new package.json value (#737) 2017-08-26 08:02:29 +02:00
Rhys Arkins
9fdd70232e fix: debug current file content if inserting new value in package.json fails (#735) 2017-08-25 22:43:32 +02:00
Rhys Arkins
93d9d9e357 fix: migrate presets when resolving (#733)
Fixes #732
2017-08-25 06:25:25 +02:00
Rhys Arkins
3917fc6bae fix: explicitly check automerge = true (#728)
* fix: explicitly check automerge = true

* update presets fixtures and tests

* fix versions tests

* update tests
2017-08-24 12:39:23 +02:00
Rhys Arkins
a43e436a84 logs: add pr to merge fail message (#730) 2017-08-24 12:00:38 +02:00
Rhys Arkins
963a35789e fix: improve ensurePr logs and try/catch (#726) 2017-08-24 10:14:53 +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
52b2de3bdb fix: equalize carriage returns before comparing lock files (#717)
Eliminating one more possibility for #707
2017-08-22 10:46:27 +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
21aa961264 feat: re-use node_modules per package file (#704)
tmpDir is now created once per-repository and package.json files are written and lockfiles generated based on the repo's directory structure. This way node_modules can be reused between branches in same run.

Closes #501
2017-08-22 06:28:46 +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
f598c5f899 fix: do not automerge pr if it has been modified (#711)
Add check for pr.canRebase. This will be false if the PR has been modified.

Fixes #790
2017-08-21 11:17:47 +02:00
Rhys Arkins
cffbc00f65 fix: resolve all presets before merge (#710)
Previously, preset resolution was being done last, after merges of renoate.json or package.json config. This caused wrong ordering of config in cases where both presets + regular config was in use. Instead, resolving of presets is now done at each stage before merging.

Fixes #708
2017-08-21 10:19:48 +02:00
Rhys Arkins
71c49ecd77 fix: separate gh-got-retry to separate file (#705) 2017-08-20 09:49:39 +02:00
Rhys Arkins
e649d49615 fix: retry after github abuse trigger (#703) 2017-08-19 11:46:30 +02:00
Rhys Arkins
d6c5aa6663 fix: info not warn for scoped package 404s (#701) 2017-08-19 07:01:21 +02:00
Rhys Arkins
68033a7040 fix: imply lerna packages dir if not in config (#700) 2017-08-19 06:50:53 +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
7187821416 fix: hand-craft onboarding config string for better formatting (#694) 2017-08-18 12:56:48 +02:00
Rhys Arkins
3265cbbb51 fix: onboarding packages should have : prefix (#693) 2017-08-18 10:29: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
c28176e879 refactor: use logger const in repository worker (#685) 2017-08-17 12:33:21 +02:00
Rhys Arkins
c44bd198c7 fix: cast groupName to string in case it’s not (#684) 2017-08-17 11:24:22 +02:00
Rhys Arkins
f2f15c0650 fix: invalid schedule should only warn in logs (#683) 2017-08-17 11:22:30 +02:00
Rhys Arkins
ddb1629d9a fix: return massaged config from migrateAndValidate (#681)
* add massage test

* fix: return massaged config from migrateAndValidate
2017-08-15 13:26:05 +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
06358e32c7 fix: print schedule text along with error message (#679)
* fix: print schedule text along with error message

* update test
2017-08-15 09:13:25 +02:00
Rhys Arkins
26bafe8d7a fix: massage “on every” to “every” in schedules (#677) 2017-08-15 07:18:45 +02:00
Rhys Arkins
c38e2cdcfe fix: wrap and warn non-array schedule (#676) 2017-08-14 22:16:28 +02:00
Rhys Arkins
4a82b7379d fix: better stringify yarn lock error message (#675) 2017-08-14 20:18:26 +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
117316c0b1 fix: check current status check before setting (#655)
Fixes #649
2017-08-08 23:03:52 +02:00
Rhys Arkins
ccb66310b1 feat: Pre-fetch all package.json files (#642)
Repository initialisation is refactored so that all package files and their content is retrieved up-front before an renovating begins. This allows us to know both how many package files as well as determine if there is renovate json in a package.json before triggering the onboarding PR.

Closes #634
2017-08-08 06:25:44 +02:00
Rhys Arkins
b369f670d6 fix: use baseBranch when branchName is null (#643)
Using fallback in function params only replaces if branchName is undefined but we also need to handle when it is `null`.
2017-08-07 10:51:17 +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
Ika
126e2fdd49 docs(status-checks): fix typo in url (#639) 2017-08-07 05:21:00 +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
ae38fd5d06 fix: return false after successful branch automerge (#631)
This prevents attempts to view the PR or check branch status again.

Fixes #499
2017-08-06 06:36:04 +02:00
Hutson Betts
4b60bb2d17 fix(gitlab): only fetch projects user belongs to (#629)
Fixes #628
2017-08-05 21:53:22 +02:00
Rhys Arkins
d484f9bf8b fix: add yarnCacheFolder to removedOptions (#624) 2017-08-05 07:48:12 +02:00
Rhys Arkins
99ac394305 fix: lock file generation logger errors (#623) 2017-08-05 06:49:05 +02:00
Rhys Arkins
6d688412b4 fix: parse/stringify lockfile error messages (#622) 2017-08-05 06:20:54 +02:00
Rhys Arkins
a1e1b1770f fix: log full package lock generation error (#621) 2017-08-05 05:53:24 +02:00
Rhys Arkins
cb3c4ece38 refactor: improve github retry logic (#616)
5 retries
use settimeout
retry on any 5xx error code
2017-08-04 18:13:49 +02:00
Rhys Arkins
ab7884008b fix: always pass logger to getLockFile (#617) 2017-08-04 17:47:03 +02:00
Rhys Arkins
e913feb6ab fix: npm and yarn use branch logger (#615)
Closes #506
2017-08-04 16:23:45 +02:00
Rhys Arkins
5d6652b4bc fix: remove non-functioning yarn cache folder option (#614) 2017-08-04 16:12:24 +02:00
Rhys Arkins
6a7f57165f fix: add loki-preview headers to repository query (#611)
Should enable merge settings to be shown during initRepo
2017-08-04 14:51:21 +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
d14c64ad91 feat: Warn workspaces users (#607)
Links to open issue about workspaces.

Closes #601
2017-08-04 12:06:32 +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
4a4016f232 fix: escape #issueNumber and backticks in prBody (#602)
Adds a zero width space between the # and first digit in issue numbers to prevent GitHub autolinking, also replaces escaped backticks with `<code></code>`

Closes #595
2017-08-04 07:34:11 +02:00
Rhys Arkins
6c1f27f905 fix: semantic commit messages should always be lower case (#598)
commitMessage and prTitle will be converted to lowercase after compilation if semanticCommits=true

Fixes #594
2017-08-03 21:49:44 +02:00
Rhys Arkins
3df264501f chore: add warning if yarn workspaces found (#599) 2017-08-03 21:48:58 +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
8809861d3c fix: Circular reference in depTypeConfig (#581) 2017-08-02 21:33:58 +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
f7db11c9d7 fix: Downgrade merge failure to warning (#574) 2017-08-02 07:16:31 +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
75b0bdc322 fix: Fix merge debug message (#570) 2017-08-01 13:31:27 +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
8374ef6caa fix: Allow ‘@user’ format for assignees and reviewers (#567)
Usernames can now be expressed as like either ‘rarkins’ or ‘@rarkins’
2017-08-01 06:58:13 +02:00
Rhys Arkins
b674e93de2 fix: Add groupCommitMessage to deprecatedOptions (#566) 2017-07-31 16:54:24 +02:00
Rhys Arkins
6c7382df14 fix: Check for valid version before performing npm lookup (#565)
Closes #564
2017-07-31 16:03:19 +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
8fc97af5c7 feat: Ignore forked repositories unless already configured (#561)
This feature is particularly useful in the case that renovate is enabled on all repositories a user/account has. Many of those might be forks, and it makes no sense to renovate those by default. Instead, Renovate will skip over forked repositories unless a renovate.json has been added to their root.
Also, Renovate will now prune branches after deciding to skip a repository, whether because of a fork or disablement.

Closes #541
2017-07-30 22:59:53 +02:00
Rhys Arkins
603f63af4d fix: Retry github API when 502 error (#560)
The GitHub API will now retry up to 3 times before giving up, if it is receiving a 502 Bad Gateway response.
2017-07-30 11:06:15 +02:00
Rhys Arkins
8aafdaf182 refactor: Use promise.reject to simulate non-200 responses in github tests (#559) 2017-07-30 08:20:19 +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
055cfaf73b fix: Don’t warn for any getChangeLogJSON errors (#557) 2017-07-29 10:29:26 +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
984b5a89b8 fix(lerna): Use packages path from lerna.json (#542) 2017-07-27 22:15:50 +02:00
Rhys Arkins
434def2bf4 fix(lerna): Return empty lerna packages if 404 for packages/* (#540) 2017-07-27 14:58:26 +02:00
Rhys Arkins
feffa774d8 feat(lerna): Add lerna support (#535)
If a `lerna.json` is present in the root of the repository, then Renovate will automatically ignore (i.e. not renovate) all package names found in the `packages/*` path. It does not require an explicit configuration to work.
2017-07-27 09:36:36 +02:00
Rhys Arkins
f866f54a14 fix(github): Return repoForceRebase to main config (#533) 2017-07-26 10:56:11 +02:00
Rhys Arkins
cd2b1193ad fix(github): Use more specific URI when checking branch protection (#532) 2017-07-26 08:19:27 +02:00
Rhys Arkins
c4e8b6bf94 fix(npm): Log correct package name when 404 (#531)
Because we are running Promise.all on package lookups, we were getting some incorrect package names in our log messages.
2017-07-26 08:15:28 +02:00
Rhys Arkins
1eea69f164 fix(github): Gracefully catch 403 response to branch protection (#530) 2017-07-26 06:55:25 +02:00
Rhys Arkins
2331d6e840 feat(branch): Check for rebase if repo branch protection is strict (#527)
We now check branch protection configuration for the repository's base branch to see if branches must be kept up-to-date. If so then we check Renovate branches for rebasing even if rebaseStalePrs is not set to true.

Closes #524
2017-07-25 18:18:19 +02:00
Rhys Arkins
c22fc69785 fix(branch): Add check before rebasing stale PRs (#526)
We should not rebase stale PRs if they have been edited any anyone. This adds a check from the PR to see if it can be rebased. If no PR then we assume we can - nobody should be editing our branches directly without PR.

Closes #525
2017-07-25 15:07:53 +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
d48ba65528 fix(npm): Pass npm version and logger to getLockFile 2017-07-24 08:38:45 +02:00
Rhys Arkins
9af6117386 fix(lockFiles): Pass NODE_ENV=dev to npm and yarn installs
Without this setting, it can result in an incomplete `package-lock.json` if renovate is run on a system with NODE_ENV=production set.

Fixes #517
2017-07-24 08:10:42 +02:00
Rhys Arkins
2bd452281f fix(npm): Run npm install with —ignore-scripts 2017-07-24 06:54:13 +02:00
Rhys Arkins
cd762c7bc6 fix(onboarding): Don’t hyperlink package name if undefined repository URL 2017-07-23 14:25:37 +02:00
Rhys Arkins
ee2a344013 fix(onboarding): Escape scoped npm repos in PR body
Uses a zero length space
2017-07-23 14:25:13 +02:00
Rhys Arkins
a39a86c6ba fix(yarn): Filter out pure-lockfile option from yarnrc
A repository with .yarnrc specifying pure-lockfile was preventing our yarn from saving a lockfile too! Now filter it out before writing the yarnrc to our tmp directory.

Closes #507
2017-07-21 10:58:11 +02:00
Rhys Arkins
47044a11e1 feat(yarn): Use embedded yarn version (#510)
Renovate now uses an embedded yarn binary. This way, the version of yarn used can be known + there is no requirement for Renovate admins to install yarn separately.
2017-07-21 08:47:05 +02:00
Rhys Arkins
89200842f1 fix(yarn): Add —ignore-scripts when generating yarn.lock
This should avoid us accidentally trying to “build” anything post-install.
2017-07-20 20:24:11 +02:00
Rhys Arkins
27b443c4a1 fix(onboarding): De-duplicate onboarding branch commits (#504)
Now checks in case `renovate.json` content is identical and if so then doesn’t unnecessarily re-commit the same file each run.
2017-07-19 17:47:45 +02:00
Rhys Arkins
cadc148cd0 fix(changelog): Check that err.message exists 2017-07-19 08:46:00 +02:00
Rhys Arkins
30155782f5 chore(logs): Ignore start_time log field 2017-07-19 08:41:09 +02:00