Commit graph

1005 commits

Author SHA1 Message Date
Rhys Arkins
032f104b2c Revert "fix: make sure lock file maintenance branch is not stale before skipping (#1265)"
This reverts commit 1aba7c79af.

Fixes #1425
2018-01-22 13:34:55 +01:00
otofu-square
f251969fab fix: correct typos in templates (#1423) 2018-01-22 11:17:00 +01:00
Rhys Arkins
44813aede2 refactor: add log if package.json renovate config found outside root of repository 2018-01-21 07:54:17 +01:00
Rhys Arkins
d774a14910 feat: abort repo for most npm registry errors
Renovate now aborts processing of repositories if for any 4xx responses except 401 and 404, and also for 200 OK responses which are unparseable.

Closes #1341
2018-01-21 07:16:28 +01:00
Rhys Arkins
537e3cd7e6 refactor: check for RENOVATE_SKIP_CACHE in npm registry 2018-01-20 19:34:27 +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
fa68a5a216 refactor: skip ignore notification comment if PR was merged 2018-01-20 15:09:23 +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
5c01f59b7e refactor: limit github pagination to 1000 total 2018-01-19 15:28:54 +01:00
Rhys Arkins
3e1d8474a9 refactor: always debug log github get requests 2018-01-19 12:00:26 +01:00
Rhys Arkins
285a59b085
fix: filter out “Update branch” commits when determining canRebase (#1410)
Closes #1405
2018-01-19 07:35:39 +01:00
Rhys Arkins
08cb61f835
feat: support multiple Docker FROM statements (#1409)
Adds support for multiple FROM statements within a Dockerfile. Thanks to @reicheltp for regex inspiration.

Closes #1011
2018-01-19 06:59:35 +01:00
Rhys Arkins
93521cac74 fix: check for not-pending only if no existing PR exists
Closes #1408
2018-01-19 05:46:28 +01:00
Rhys Arkins
dddf402c1c chore: fix lint 2018-01-18 21:59:11 +01:00
Rhys Arkins
0a9143c9f3
fix: move archived log to correct place 2018-01-18 18:32:08 +01:00
Rhys Arkins
85dfa819c1
fix: skip newlines at start of Dockerfile (#1402)
Allow for both comment lines or empty lines prior to FROM in Dockerfile
2018-01-17 17:58:28 +01:00
Rhys Arkins
bb46281c2c tests: update tests after code removal 2018-01-17 16:26:58 +01:00
Rhys Arkins
68f0da5ade refactor: remove legacy code detecting mistakenly closed PRs 2018-01-17 15:34:08 +01:00
Rhys Arkins
fd813964b3 fix: rename legacy pr titles 2018-01-17 15:33:41 +01:00
Rhys Arkins
284eedc926 refactor: improve github.initRepo structure and comments 2018-01-17 15:25:32 +01:00
Rhys Arkins
eb2c159d02 refactor: simplify archived check 2018-01-17 15:16:52 +01:00
Rhys Arkins
b72be53fba fix: ensure monorepo packages are ignored in workspaces root too
Adds an extra check to ensure that monorepo package names are ignored in the workspaces root too.

Closes #1398
2018-01-17 06:32:07 +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
23e217991c
feat: pnpm shrinkwrap support (#1392)
This feature adds support for pnpm shrinkwrap.yaml files.

Closes #1391
2018-01-15 16:55:33 +01:00
Rhys Arkins
ac09b9d7cd feat: cache npm results in memory per-run
We currently use got’s inbuilt caching for npmjs, however it still results in a roundtrip/304 even when cached. The when using presets is that a package like renovate-config-default gets looked up 10+ times unnecessarily. With this feature we assume that npm lookups don’t change for the duration of a run, and even if they did then we’d prefer the reliability of using the first lookup.

Closes #1389
2018-01-15 11:53:02 +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
54d3a62284 fix: throw error when receiving 5xx responses from npmjs
This is a partial fix for #929. After this we should catch and retry.
2018-01-14 15:17:57 +01:00
Rhys Arkins
2a5f189573 fix: ignore onboarding branch when calculating pr hourly limit 2018-01-12 10:02:36 +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
Matt R. Wilson
d0d62e6e7b Allow --renovate-fork Cli flag for onboarding.
Fixes https://github.com/renovateapp/renovate/issues/1371.
2018-01-10 22:52:36 +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
421adcfedc fix: use author first and then committer when checking pr
Lets author take precedence over committer, in case users edit PRs and commit Renovate’s commit back themselves.

Fixes #1364
2018-01-10 12:43:53 +01:00
Rhys Arkins
21a6b1acea fix: delete blocking branch if it still exists 2018-01-10 10:26:57 +01:00
Rhys Arkins
2e2f53b677 fix: move debug statement to fix tests 2018-01-10 09:38:42 +01:00
Rhys Arkins
a2b3ca440d refactor: debug if repoIsOnboarded 2018-01-10 09:09:17 +01:00
Rhys Arkins
67eb60fb4f fix: forking mode should add/edit/delete comments in parent repo 2018-01-10 07:25:56 +01:00
Rhys Arkins
228b823e45 fix: ignore branchPrefix for onboarding branch 2018-01-09 17:24:09 +01:00
Rhys Arkins
0a1b905b0e fix: forking mode should check commits on parent repo 2018-01-08 22:00:47 +01:00
Rhys Arkins
910793e5f2 fix: check onboarding pr when handling config error
Instead of checking for config.repoIsOnboarded, just check for the onboarding PR and reverse the logic.

Closes #1339
2018-01-08 15:53:52 +01:00
Rhys Arkins
28518a4f77 feat: massage ‘*’ packagePattern to ‘.*’
‘*’ is actually an invalid regex so fails, however many people might make this mistake so it’s easier to just allow it.
2018-01-06 10:41:10 +01:00
Rhys Arkins
1bbf0c1692 fix: don’t apply custom branchPrefix when onboarding 2018-01-06 10:19:00 +01:00
Rhys Arkins
b711e0c3aa fix: handle 404 repos gracefully 2017-12-31 20:47:46 +01:00
Rhys Arkins
24b94765ff feat: skip over archived repositories (github) 2017-12-31 20:28:22 +01:00
Rhys Arkins
8684ff8a6b fix: don’t debug log the open pr twice 2017-12-30 06:29:40 +01:00
Rhys Arkins
1cb920fa4b fix: set/reset npmrc during init
Detect npmrc in root of repo and make sure it’s set early. Also ensure npmrc is reset at start of each run if necessary.

Helps #1335
2017-12-30 06:11:04 +01:00
Rhys Arkins
45d7c8f257 fix: check pr state for open or opened 2017-12-30 06:03:57 +01:00
Rhys Arkins
002de288c7 refactor: log pr if not 2017-12-29 17:03:27 +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
e735ed9eb0 feat: restart renovation if any pr has changed from open to closed 2017-12-28 17:21:06 +01:00
Rhys Arkins
97fc3e6135 fix: pr should be ensured if branch automerge previously failed
If branch automerge *previously* failed, then still make sure we are keeping the PR up to date.

Closes #1336
2017-12-28 17:19:59 +01:00
Rhys Arkins
1a3b0b61ea refactor: remove edited PR comment and log warn instead 2017-12-28 16:29:03 +01:00
Rhys Arkins
6b91b87dee feat: stop updating PR if edited
Previously, Renovate would attempt to keep a branch up to date even if users had edited it. e.g. adding commits on top of the existing branch if newer versions were released. Now, Renovate adds a warning comment if a user has edited a branch, making it clear that responsibility for the branch is over to them and how they can undo this.

Closes #653
2017-12-27 15:20:32 +01:00
Rhys Arkins
383302d433 refactor: info not warn if npm 401 response 2017-12-27 06:40:24 +01:00
Rhys Arkins
976f2ac57e feat: deduplicate changelogs
Deduplicate changelogs in monorepo PRs. i.e. the same monorepo won’t be included more than once.
2017-12-26 20:38:09 +01:00
Rhys Arkins
e0e0b9defe fix: Revert "feat: restart renovation after github error"
This reverts commit eb579ff388.

For some reason it seems to be causing a reduction in throughput per hour in the app once deployed.
2017-12-26 19:45:17 +01:00
Rhys Arkins
82fa5cd64d refactor: warn if npm lookup fails with other than 404 2017-12-26 06:45:51 +01:00
Rhys Arkins
35d7a63d00 docs: add warning about config.js and extends 2017-12-26 06:28:28 +01:00
Rhys Arkins
eb579ff388 feat: restart renovation after github error
When 404 or 422 errors are encountered writing updates, Renovate will now restart in an attempt to fix it. Usually this is because branches/PRs have been edited or closed while Renovate is running.

Closes #1299
2017-12-26 06:26:33 +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
163ce43a27 feat: update yarn resolutions
Detect if the upgraded dependency was already in “resolutions” and update it too if it was an exact match. Warn if it was not.

Closes #1318
2017-12-25 17:10:20 +01:00
Rhys Arkins
4cfcee7b25 chore: info not warn for unsupported bazel remote 2017-12-24 20:43:44 +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
b850985926 refactor: add ls to npm install to view files in logs 2017-12-23 08:55:47 +01:00
Rhys Arkins
007be13313
feat: add api caching to gitlab (#1324)
This PR ports across GitHub’s caching approach to the GitLab platform API.
2017-12-23 08:03:16 +01:00
Rhys Arkins
146e8f6982
feat: skip onboarding if renovate config detected in root package.json (#1322)
Renovate will now detect if renovate config already exists within the project’s ‘package.json’ root, and skip onboarding if so.

Closes #1159
2017-12-22 19:14:26 +01:00
Rhys Arkins
a8cceaa63e chore: fix Closing issue log location 2017-12-22 19:09:16 +01:00
Rhys Arkins
f4364ccc44 fix: isOnboarded should return true if onboarding is skipped 2017-12-22 18:50:41 +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
Rhys Arkins
2c6a2dd43b feat: better semantic commit detection
Limit to looking at last 10 commit messages and only use semantic commits if angular type is found.
2017-12-19 19:45:34 +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
33e4b51126 feat: raise config validation issue if onboarded repo has invalid package.json
Previously, if someone updated a package.json to include invalid JSON, Renovate fails to parse it (as expected), so ignores it. As a result, any existing PRs would be autoclosed. Instead, Renovate will now skip the repository and raise a warning issue until the file parsing is complete or the file is added to Renovate’s ignore list.
2017-12-18 13:43:29 +01:00
Rhys Arkins
464ebc4277 fix: close issue with number, not id 2017-12-18 13:35:30 +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
f351480f18 fix: create issue in parent repo when in forkMode 2017-12-18 10:29:46 +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
cfd02be920 refactor: log renovateConfig when warning of validation errors 2017-12-16 07:09:54 +01:00
Rhys Arkins
b2f3626578 fix: strip leading equals sign from currentVersion
e.g. =0.22.0 is treated as 0.22.0
2017-12-16 06:50:18 +01:00
Rhys Arkins
a61ee0b3ef refactor: log info message when do not have branch protection permissions 2017-12-16 06:33:18 +01:00
Rhys Arkins
bf6d774cfc refactor: simplify duplicate removal of dependency names 2017-12-15 21:33:54 +01:00
Rhys Arkins
35cd3506db fix: drop team_reviewers param and github preview header from reviewer requests 2017-12-15 19:51:41 +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
72dbe58ade chore: add path details to npmrc and yarnrc log 2017-12-15 09:10:35 +01:00
Rhys Arkins
242e2e34c6 fix: query parent repo for issue comments if forking 2017-12-14 21:39:23 +01:00
Rhys Arkins
f7e8414240 fix: remove extraneous newline in bazel replacements 2017-12-14 20:31:21 +01:00
Rhys Arkins
3730c66aa2
feat: bazel http_archive support (#1296)
This PR adds support for bazel http_archive references where they point to a GitHub download URL.

Closes #1292
2017-12-14 20:05:45 +01:00
Rhys Arkins
c98faa2b34 refactor: default bazel to enabled 2017-12-14 13:19:30 +01:00
Rhys Arkins
c58498a9a9 fix: use forkToken when creating or updating PR 2017-12-14 12:11: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
d3c0559c21 chore: log when setting npmrc 2017-12-14 10:56:54 +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
2a77124069 chore: don’t debug prList 2017-12-14 09:46:31 +01:00
Rhys Arkins
68a37b906a refactor: log if finding npmrc or yarnrc 2017-12-14 07:13:30 +01:00
Rhys Arkins
3093b3d787 refactor: log dependency name when lookups are blocking 2017-12-14 06:54:46 +01:00
Rhys Arkins
794e149179 refactor: ignore bower_components by default 2017-12-14 06:35:12 +01:00
Rhys Arkins
f5c3642ae7
fix: escape all forward slash with %2f (gitlab) (#1294)
Use a regex replace all instead of single replace, for cases where projects or branches have more than one forward slash.

Fixes #1293
2017-12-14 06:19:24 +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
39a48c6e55
fix: npm configs should be applied to all package.json files (#1289) 2017-12-11 19:43:49 +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
837b53619f
fix: use git data API to retrieve large files (#1286) 2017-12-11 12:24:37 +01:00
Rhys Arkins
967e4dd1c4 refactor: remove status checks basic message 2017-12-10 17:57:20 +01:00
Rhys Arkins
ce83c86fa2 refactor: rename branch protection messages 2017-12-10 17:55:23 +01:00
Rhys Arkins
a5c47e082a refactor: consistency of branch protection logging 2017-12-10 15:58:00 +01:00
Rhys Arkins
aebd63eebe refactor: use consistent log messages for branch protection 2017-12-10 15:38:47 +01:00
Rhys Arkins
278e9fe14a
refactor: improve branch protection visibility (github) (#1284) 2017-12-10 15:22:58 +01:00
Rhys Arkins
0dbd4c3ac0
fix: remove unnecessary loki preview header for repo object (#1283)
The loki preview header is no longer required, as per https://developer.github.com/changes/2017-09-06-protected-branches-preview-end/
2017-12-10 07:25:36 +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
Rhys Arkins
61b1c7f25c refactor: sort branches
This makes the onboarding PR easier to understand by putting pin first, then minor, then major.
2017-12-08 11:03:45 +01:00
Rhys Arkins
494dc08897
refactor: unsatisfied range warn -> info (#1278)
* refactor: unsatisfied range warn -> info

* refactor: downgrade setNewValue warn -> info
2017-12-08 09:39:40 +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
696aaa38af
refactor: slim down onboarding PR description (#1274) 2017-12-07 13:32:56 +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
Rhys Arkins
04e505d483
fix: handle existing range with no matching versions (#1273) 2017-12-06 18:53:55 +01:00
Rhys Arkins
b5ef020e76 refactor: log npmDep.name when determining upgrades 2017-12-06 17:40:18 +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
ed99d0b2de refactor: handle mergePr 405 errors specially 2017-12-05 06:43:23 +01:00
Rhys Arkins
1aba7c79af
fix: make sure lock file maintenance branch is not stale before skipping (#1265) 2017-12-05 06:17:27 +01:00
Rhys Arkins
c2590a56ab
feat: support multiple yarn workspaces in one repository (#1264) 2017-12-04 15:41:37 +01:00
Rhys Arkins
d56654cd88
fix: don’t exception if no rollback versions found (#1263) 2017-12-04 15:07:35 +01:00
JYC
560bf727c3 fix: VSTS - add reviewer once even if multiple teams (#1259)
Closes #1258
2017-12-02 20:22:03 +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
958f8b5314
fix(deps): Update npm to v5.6.0 (#1255) 2017-11-29 06:05:57 +01:00
Rhys Arkins
bd52d7f1b1
fix: delete pr list before first get (#1253)
This shouldn’t be necessary because we already `config = {};` during the init. But somehow `if (!config.prList)` is returning false sometimes.
2017-11-28 20:29:42 +01:00
Rhys Arkins
8e136c7143
fix: do not delete branches if PR creation fails (#1252)
GitHub’s API is behaving too flakily and this can end up with closing PRs by accident, which then block future PRs. See https://github.com/ikatyang/emoji-cheat-sheet/pull/110 for example problem
2017-11-28 17:11:52 +01:00
Rhys Arkins
95a28bae2e
refactor: increase getPrList logging for GitHub (#1251) 2017-11-28 16:50:56 +01:00
Rhys Arkins
15dfad63b5
refactor: return ‘onboarding’ from ensureOnboardingPr (#1250) 2017-11-28 14:58:18 +01:00
Rhys Arkins
cfcea0dbb3
fix: improve pr merged detection logic (#1248)
Make sure PR is closed and merged_at is a non-zero length string.

Helps #1247
2017-11-28 13:27:37 +01:00
Rhys Arkins
4a57cfd3cd
fix: only return no-work if branch doesn’t exist (#1245) 2017-11-28 09:00:59 +01:00
Rhys Arkins
eabff37a15
fix: exit gracefully if no files to commit (#1242)
This handles case where checking for lock file maintenance but lock file is up-to-date.
2017-11-27 08:25:07 +01:00
Rhys Arkins
e54eafcbd1
chore: log info messages when creating and updating PRs (#1240) 2017-11-26 07:27:33 +01:00
Rhys Arkins
57eb471afa
fix: escaping @ mentions should be replace all (#1239)
Fixes #1238
2017-11-26 07:09:10 +01:00
Rhys Arkins
72d46c20e2
refactor: remove label and assignees description from onboarding pr (#1235)
These can now be described via presets instead
2017-11-24 12:03:57 +01:00
Rhys Arkins
779ca36bc1
refactor: use semanticCommitType chore for pin/digest (#1234) 2017-11-24 10:58:44 +01:00
JYC
7a63342ddd fix: path joins on windows (#1216)
Use `upath` for windows-friendly path joins.

Closes #1203
2017-11-24 07:50:49 +01:00
Rhys Arkins
7e6befe4a8
fix: merged PRs should not block new PRs in monorepos (#1230)
Only block if it was closed unmerged.

Fixes #1205

* check for closed only for monorepos
2017-11-24 07:31:20 +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
Rhys Arkins
7675f3a9f1
fix: replace singapore/renovate references with renovateapp/renovate (#1229) 2017-11-23 14:08:31 +01:00
Rhys Arkins
67bb02e725
fix: Revert "feat: docker registry cache (#1210)" (#1211)
This reverts commit 371f1cbf3d.
2017-11-22 15:07:53 +01:00
Rhys Arkins
371f1cbf3d
feat: docker registry cache (#1210)
Use got’s built-in caching with in-memory map.

Closes #1028
2017-11-22 13:25:07 +01:00
Rhys Arkins
4e7830e831
refactor: use internal got cache (#1209)
Replace explicit keyv-based memory cache for npm with implicit keyv-based memory cache built into got v8.
2017-11-22 10:24:34 +01:00
JYC
8e1dfa111c feat: VSTS - Add Reviewers & Assignees (#1200) 2017-11-22 05:12:19 +01:00
Rhys Arkins
77dbef5cf0
feat: add back keyv-based memory cache for npm (#1206)
Disk-based caching for npm responses was overkill and actually started hurting performance after a while as the cache grew.
2017-11-22 04:45:40 +01:00
JYC
4bce262a14 fix: VSTS - Fix reading big file (#1204)
Closes #1158 

* deleteBranch like gitlab

* changes in single commit

* prettier lint and tests

* read big file

* challenging linting!
2017-11-21 06:08:54 +01:00
Hutson Betts
ca3a1c9f9d fix(github): paginate repo get requests (#1193)
Enable pagainate for requests made to the `user/repos` endpoint
for fetching all repositories the configured user has access to.
2017-11-20 20:36:40 +01:00
JYC
dbe68efdc7 fix: VSTS - RepoName & ProjectName (#1201)
* deleteBranch like gitlab

* changes in single commit

* prettier lint and tests

* add project and repo feature

* add case insensitive string compare
2017-11-20 19:47:49 +01:00
Rhys Arkins
0f80e7d501 fix: use RENOVATE_TMPDIR (#1202) 2017-11-20 07:08:30 +01:00
JYC
b272b4aab7 fix: VSTS - canRebase (#1197)
* deleteBranch like gitlab

* changes in single commit

* prettier lint and tests
2017-11-19 11:23:30 +01:00
Rhys Arkins
8ea800dce0
fix: drop “fix devDependencies” customisation (#1198) 2017-11-19 06:32:06 +01:00
Rhys Arkins
d3d9b2be02
refactor: packageFile log debug -> trace (#1191) 2017-11-17 15:10:59 +01:00
Rhys Arkins
804d7ba955 refactor: don't cache lock files (#1190)
* refactor: don’t store yarn.lock content in packageFile

* chore: don’t log full lockfile

* refactor: don’t save package-lock.json

* update tests
2017-11-17 14:53:29 +01:00
Rhys Arkins
46f8dd751d
refactor: resolve package files in parallel (#1189)
Speeds up monorepos substantially
2017-11-17 06:06:06 +01:00
Rhys Arkins
0e81a88a54 fix: drop branchExists check after create (#1188) 2017-11-16 23:51:47 +01:00
Rhys Arkins
e27a1b486c
refactor: use simpler api for branchExists (#1187)
simpler api + cacheable
2017-11-16 22:40:07 +01:00
Rhys Arkins
4c4d5cfdac
refactor: check unpublishsafe only if configured (#1186) 2017-11-16 22:34:49 +01:00
Rhys Arkins
fd10299a71
feat: cache github get requests in memory (#1185)
The existing github wrapper is now extended to cache any get request. The existing pr cache is removed as it is now redundant.
2017-11-16 22:13:54 +01:00
Rhys Arkins
d3955f1a32
fix: only remove lock file warning comment when successfully updating… (#1184) 2017-11-16 21:54:13 +01:00
Rhys Arkins
319b790c9c
refactor: debug github api calls (#1183) 2017-11-16 19:27:59 +01:00
Rhys Arkins
e89ef0ddb8 chore: add debugging to findPr and getPrList 2017-11-16 14:16:24 +01:00
Rhys Arkins
414fb7d4d7 chore: add debugging to checkOnboardingBranch 2017-11-16 14:16:24 +01:00
Rhys Arkins
bf0cbd38cb refactor: reset platform config to {} during initRepo 2017-11-16 14:16:24 +01:00
Rhys Arkins
d9db675b68 fix: reset base commit during init (#1179) 2017-11-16 13:51:26 +01:00
Rhys Arkins
6dfeebba32
refactor: base commit sha logic and logging (#1178) 2017-11-16 13:37:36 +01:00
Rhys Arkins
d5f58fcb6e
feat: allow configurable tmpdir for caching (#1176) 2017-11-16 10:26:04 +01:00
Rhys Arkins
15c3a9a8be
refactor: use fileList to speed up getFile 404s (#1175) 2017-11-16 07:13:50 +01:00
Rhys Arkins
3921c4007d
refactor: cache pull requests (github) (#1174) 2017-11-15 15:39:39 +01:00
Rhys Arkins
c89b957b8a
refactor: defer branch protection check (#1173) 2017-11-15 15:31:20 +01:00
Rhys Arkins
feb1f4e3fd
fix: move github 409 catch after refactor (#1172) 2017-11-15 14:41:36 +01:00
Rhys Arkins
0e68e4aa50
refactor: defer getBaseCommitSHA until needed (#1171) 2017-11-15 14:20:17 +01:00
Rhys Arkins
7c72156562
refactor: move semantic commit detection from init to later updates (#1170) 2017-11-15 13:39:44 +01:00
Rhys Arkins
b3ec1c0156
fix: set npmrc at repository level (#1169) 2017-11-15 12:30:39 +01:00
Rhys Arkins
59d3be4d1c
fix: replace h4 with ** (gitlab) (#1167)
Helps #954
2017-11-14 20:44:32 +01:00
Manuel Rueda
a19421fff6 fix: normalize GitLab findPr with GitHub and add PR cache (#1165)
Closes #1164
2017-11-14 09:55:05 +01:00
Rhys Arkins
d9974a8994
refactor: drop unused isClosed from github and gitlab (#1166) 2017-11-14 09:24:19 +01:00
Rhys Arkins
d2cd755f37
feat: persistent disk cache for changelog data (#1163)
Use `cacache` to persist changelog results between runs.
2017-11-13 17:44:09 +01:00
Rhys Arkins
f0b094b006
feat: use persistent cache for npm registry queries (#1161)
This PR refactors the npm registry code to use `make-fetch-happen` instead of got. Additionally, it will use `cacache` for a disk-based caching solution.
2017-11-13 15:08:30 +01:00
JYC
c9335d5bf6 Add VSTS support (#1049)
This PR adds support for Microsoft's [Visual Studio Team Services](https://www.visualstudio.com/team-services/) platform (in addition to existing GitHub and GitLab support). 

Closes #571
2017-11-12 10:26:53 +01:00
Rhys Arkins
6d17d4a58d
fix: only ignore monorepo packages if matching glob (#1153)
Previously, packages within a workspace or lerna project were ignores across the entire repo. Now, they are only ignored within package files that exist in the same lerna project or yarn workspace.

Closes #1147
2017-11-12 10:16:46 +01:00
Rhys Arkins
9c086703c6 fix: strip windows line returns from templates (#1151) 2017-11-12 07:23:09 +01:00
Rhys Arkins
ce88c32f94
refactor: drop {{#if isGitHub}} from templates (#1150)
Pull Request and PR are already search/replaced in JS code for GitLab.
2017-11-12 07:22:13 +01:00
Rhys Arkins
fca3a1fbd1
feat: json logging (#1146) 2017-11-11 07:51:36 +01:00
Rhys Arkins
c3d84d4767
fix: find .renovaterc.json when onboarding (#1145) 2017-11-11 05:18:24 +01:00
Rhys Arkins
36dc55b894 fix: remove release.date conversion (#1144) 2017-11-10 16:04:25 +01:00
Rhys Arkins
3e34d52819
feat: cache changelog responses (#1143)
Returns cached value if from the to versions are an exact match. No expiry.

Closes #262
2017-11-10 14:48:14 +01:00
Rhys Arkins
ede1a59527
feat: support .renovaterc json configuration file (#1142)
Renovate will now check for `renovate.json`, `.renovaterc`, and `.renovaterc.json` in that order. JSON-only supported (no YAML).

Closes #969
2017-11-10 14:10:16 +01:00
Rhys Arkins
88fc9c4155
refactor: use Object.entries when looping over key/val (#1141)
Closes #1079
2017-11-10 13:46:16 +01:00
Rhys Arkins
ca5b080aac
refactor: check blocked PR before checking schedule (#1140)
Instead of checking schedule first, now we check first if the PR is blocked by a closed PR. This provides more consistent feedback.

Closes #1100
2017-11-10 13:32:33 +01:00
Rhys Arkins
28a7ea7193
feat: enable Docker minor and patch tag upgrades (#1137) 2017-11-10 13:11:51 +01:00
Rhys Arkins
8a87bcd918
feat: rebase onboarding branch (#1139)
Previously, Renovate's "Configure Renovate" onboarding branch would never get rebased after it was created. Now, it will be rebased every time the base branch is updated, unless the list of modified files is more than `renovate.json` alone.

Closes #1111
2017-11-10 13:07:06 +01:00
Rhys Arkins
e9bf2a26e1
fix: check commit message before ignoring web-flow commits (#1138) 2017-11-10 13:00:18 +01:00
Rhys Arkins
f78b52d235
fix: use assignee_id when adding assignees in gitlab (#1136)
GitLab’s API requires assignee *id* and not *username* when adding assignees to a merge request. Now, we allow Renovate users to still configure usernames and we will look up the ID and use it in the request instead.

Closes #1131
2017-11-10 09:59:12 +01:00
Rhys Arkins
f9e9351409
fix: use gitlab iid consistently in all pr-related functions (#1135) 2017-11-10 09:29:24 +01:00
Rhys Arkins
30b82c06a7
fix: gitlab MR bodies should use html (#1134) 2017-11-10 09:15:51 +01:00
Rhys Arkins
51cde5d03f
feat: multipleMajorPrs (#1129)
With this PR, Renovate will default to raising only one major PR at a time. e.g. if you have Webpack 1.x then you will get only one major PR for webpack v3 and not also for v2. set multipleMajorPrs=true to get multiple.

Closes #1101
2017-11-10 04:57:07 +01:00
Rhys Arkins
c5c6a55c1a
fix: docker separateMajorReleases and groupName (#1130)
Bring docker config support up to npm support.
2017-11-09 20:53:25 +01:00
Rhys Arkins
793c2c95bd
fix: basBranch typo in gitlab api (#1128) 2017-11-09 15:30:00 +01:00
Rhys Arkins
53b6848061
fix: don’t upgrade docker from unstable to new major unstable (#1126)
Before, if current node version was 7 then Renovate would propose upgrades to versions 8 and 9. However, like with npm we should allow upgrades to unstable only if it’s the same major version or if ignoreUnstable is explicitly set to false.
2017-11-09 10:15:08 +01:00
Rhys Arkins
4cebc7ad64
feat: unstablePattern (#1125)
This adds a configuration option unstablePattern - used only by Docker currently - that can be used to define a regex patternt to identify “unstable” versions.

Closes #1035
2017-11-08 21:57:34 +01:00
Rhys Arkins
0c882ce135
refactor: add logger master (#1124) 2017-11-08 15:43:09 +01:00
Rhys Arkins
0251fad68b
fix: allow multiple whitespace in dockerfile from line (#1123) 2017-11-08 14:47:52 +01:00
Rhys Arkins
0bc2953113
fix: lock file stderr was not being included in pr comments (#1122) 2017-11-08 13:26:55 +01:00
Rhys Arkins
f044aca321 refactor: streamline platform file operations (#1121)
Remove original getFile, getFileContent, and getFileJson and replace with getFile (which used to be getFileContent.. shortened now for convenience). Also remove unused getSubdirectories functions.
2017-11-08 12:23:32 +01:00
Rhys Arkins
55307389a4
refactor: improve docker digest lookup logging (#1119) 2017-11-08 11:21:13 +01:00
Rhys Arkins
00e7821fcb
feat: use mostly markdown for pr bodies (#1118)
Existing solution uses HTML bodies for PR descriptions, as that was the easiest way to get consistency between GitHub and GitLab. However, VSTS supports only markdown so we needed to refactor how this is done. Now, GitHub PR bodies uses only minimal HTML (for summary/details) while GitLab PR bodies are converted to HTML using GitHub flavoured markdown for maximum compatibility. VSTS will be able to strip out the minimal markdown.

Closes #1018
2017-11-08 11:09:26 +01:00
Rhys Arkins
89e13d05fe
fix: refactor logger addStream and depType logging (#1117)
* fix: refactor logger addstream

* remove depTyp setMeta
2017-11-08 09:59:32 +01:00
Rhys Arkins
8c479071fd
refactor: use global logger (#1116) 2017-11-08 06:44:03 +01:00
Rhys Arkins
602752f9fe
refactor: use platform global (#1115) 2017-11-07 13:31:34 +01:00
renovate[bot]
c1df1b2cb8 chore(deps): update dependency prettier to v1.8.0 (#1113)
* chore(deps): update dependency prettier to v1.8.0

* reformat
2017-11-07 11:52:15 +01:00
Rhys Arkins
f8be45055a
refactor: remove config.api and use platform dispatcher (#1114) 2017-11-07 11:46:10 +01:00
Rhys Arkins
35e83b2211
fix: split registry and namespace correctly (#1112) 2017-11-06 13:19:41 +01:00
Rhys Arkins
1af60f5158
feat: Support 'AS' names in Dockerfile from line (#1110)
This PR adds support for 'AS' names in Dockerfiles. e.g. `FROM node:8 AS base`. It also adds logic to detect and ignore - for now - any image sources from custom registries.
2017-11-06 11:36:06 +01:00
Rhys Arkins
76a680b98d
fix: add check for Dockerfile content before parsing (#1107) 2017-11-05 14:23:20 +01:00
Rhys Arkins
bec66f4d40
refactor: add logging to detect/resolve code (#1106) 2017-11-05 13:51:29 +01:00
Rhys Arkins
edfca74ede
refactor: make common platform public API (#1104)
Refactors file system of platforms and adds test to ensure GitHub and GitLab have same module.exports signatures.
2017-11-05 08:18:20 +01:00
Rhys Arkins
5a852baa61
fix: do not clean uninitiated repository (#1102) 2017-11-05 06:27:46 +01:00
Rhys Arkins
f4d0fea6ae
fix: use colon not at when describing existing docker image:tag (#1103) 2017-11-05 06:17:16 +01:00
Rhys Arkins
80bed05146
feat: return result from renovateRepository
Repository logic code has been rearranged for better logic and file separation.

Closes #654
2017-11-05 05:45:49 +01:00
Rhys Arkins
8c27d97d5d
feat: rebase stale pin branches (#1099) 2017-11-03 20:15:44 +01:00
Rhys Arkins
7d5d330d8f
fix: loosen docker digest replace regex (#1098)
By searching for the *original* value, this caused problems if a tag gets updated multiple times in the same PR.

Closes #1050 hopefully for the last time
2017-11-03 14:48:14 +01:00
Rhys Arkins
14883f818b
refactor: automerge npm pins (#1096) 2017-11-03 12:07:12 +01:00
Rhys Arkins
d5462049a6
chore: implement require-await eslint rule (#1095) 2017-11-03 11:56:25 +01:00
Rhys Arkins
dcdfc0d004
fix: refactor pin dependencies first using array.some (#1094) 2017-11-03 11:50:57 +01:00
Rhys Arkins
935a70e88c
refactor: use plain markdown for onboarding pr body (#1093)
This PR refactors the onboarding PR logic into its own subdirectory and redesigns it to use plain markdown instead of html. Plain markdown in PR bodies is a requirement for adding VSTS Support ( #1049 ).
2017-11-03 10:01:54 +01:00
Rhys Arkins
9769f5a5db
refactor: detectPackageFiles returns packageFiles not config (#1092) 2017-11-03 09:25:18 +01:00
Rhys Arkins
9c1b7d78cd
refactor: move monorepos logic to npm manager (#1091)
* refactor: move monorepos logic to npm manager

* fix test
2017-11-03 09:06:42 +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
9dd3fd968c
feat: rename mistakenly closed PRs (#1085)
Renovate already detects PRs mistakenly closed during a certain time period when a bug was present. Now, it will rename those so that they are no longer detected and the ignore code does not have to remain indefinitely.
2017-11-03 06:29:29 +01:00
Rhys Arkins
9c43d74162
fix: escape every @ in pr body with zero width space (#1084) 2017-11-03 05:29:46 +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
143044ed64
fix: set contentBranch to undefined instead of null (#1077)
This allows parameter substitution to work correctly (undefined is replace, null is not).

Closes #1076
2017-11-02 04:59:31 +01:00
Rhys Arkins
90c3b1cdbd
fix: add gitlab MR labels at time of creation (#1006)
This refactor means that createPr now takes `labels` as a new parameter so that the GitLab API can include them with the MR creation request, so save one API call. This also fixes #985 as a result.
2017-11-01 13:55:36 +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
1fb8369804 feat: deprecate gitlab apiv3 (#1064)
GitLab is now hardcoded to apiv4 with no detection performed.

BREAKING CHANGE: GitLab API v3 is no longer supported
2017-11-01 13:13:55 +01:00
Rhys Arkins
6a511e6b3b chore: remove v10 TODO comments from source code 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