Commit graph

704 commits

Author SHA1 Message Date
Rhys Arkins
116939ffb5
feat: renovate node engine in package.json (#1519)
Adds support for upgrading `node` version in `package.json` > `engines` if the current version is pinned.
- Does not convert from range to pin
- Ignores ranges
- Does not upgrade major versions
2018-02-19 14:21:45 +01:00
Rhys Arkins
dd08477360 fix: don’t reuse branch yarn.lock when rebasing
This has been causing undesirable side-effects with sub-dependencies “rolling back” in long-running PRs.

Fixes #1532
2018-02-19 06:52:32 +01:00
Rhys Arkins
2728e39963
fix: disable reusing existing package-lock.json when upgrading (#1530)
Skip writing package-lock.json locally before `npm install —package-lock-only` to work around https://github.com/npm/npm/issues/19852

Workaround to fix #1528
2018-02-18 21:16:04 +01:00
Rhys Arkins
576f38efdc fix: use isUmergeable instead of mergeable 2018-02-16 16:19:26 +01:00
Rhys Arkins
dfc768b571 fix: correct unpublish safe url
Fixes #1517
2018-02-15 08:31:58 +01:00
Rhys Arkins
a8acdb31ac chore: add existingPr debug log 2018-02-15 08:30:21 +01:00
Rhys Arkins
848eb0dafb fix: delete GITHUB_ENDPOINT before changelog 2018-02-12 21:55:45 +01:00
Rhys Arkins
9cd579ddb3 feat: support separate GHE and github.com tokens
Instead of deleting the GITHUB_TOKEN when we find GHE configured, replace it with GITHUB_COM_TOKEN for the purposes of retrieving release notes and commit history.

Workaround for #1500 but does not close it.
2018-02-12 07:10:50 +01:00
Rhys Arkins
17472879f4 chore: add debugging to packageRules matching 2018-02-11 21:09:33 +01:00
Rhys Arkins
9766a94fbf fix: check for truthy arrays before checking length 2018-02-11 19:58:59 +01:00
Rhys Arkins
c69e215613 fix: updatedPackageFile typo 2018-02-11 17:38:06 +01:00
Rhys Arkins
d88fbc9bf2 fix: add config.updatedPackageFiles check 2018-02-11 17:11:20 +01:00
Adam Moss
69f77c01da fix(semanticCommitScope): compile with handlebars
Compile the semanticCommitScope with handlebars to ensure any
substitutions such as {{depName}} are correctly parsed and replaced.

Closes #1504

Signed-off-by: Adam Moss <adam.moss@bcs.org.uk>
2018-02-11 07:38:10 +01:00
Rhys Arkins
54bb8256dd fix: automerge pr even if automerge type was branch 2018-02-09 14:13:36 +01:00
Rhys Arkins
b1da837da1 fix: create Pr if prNotPending hours exceeded for branch automerge 2018-02-09 13:29:47 +01:00
Rhys Arkins
6478f3c53d fix: don’t log config with ever lock file remove 2018-02-09 12:44:24 +01:00
Rhys Arkins
f7f0ad14e7 chore: set type=lerna when generating lock files 2018-02-09 10:38:36 +01:00
Rhys Arkins
8c772348c6 chore: downgrade changed from warn to info 2018-02-09 08:27:24 +01:00
Rhys Arkins
58f3c02ecc fix: log repository when getReleaseList errors 2018-02-09 08:22:51 +01:00
Rhys Arkins
c7f4be1748 fix: add extra check for manual github url 2018-02-09 07:04:27 +01:00
Rhys Arkins
aa84766136 fix: don’t delete lock files when non-npm package files exist
Fixes #1320
2018-02-09 06:55:47 +01:00
Rhys Arkins
5e767472ee fix: check for prHourlyLimitReached before generating lockfiles 2018-02-08 20:07:32 +01:00
Rhys Arkins
a05c33b2ed fix: Revert "fix: add try/catch to lock file read"
This reverts commit a28cef0aa9.
2018-02-08 16:26:07 +01:00
Rhys Arkins
a28cef0aa9 fix: add try/catch to lock file read 2018-02-08 16:16:30 +01:00
Rhys Arkins
3bed325e26 fix: improve release note title detection 2018-02-08 16:04:41 +01:00
Rhys Arkins
b1ad1bb058 fix: detect renamed repositories and skip 2018-02-08 16:04:25 +01:00
Rhys Arkins
8d74ae5e7a fix: loosen # escaping 2018-02-08 13:48:17 +01:00
Rhys Arkins
206aaf63a7 chore: downgrade releaseList error to warn 2018-02-08 13:36:12 +01:00
Rhys Arkins
e795dc5a86 fix: check that repositoryUrl starts with github.com 2018-02-08 13:32:27 +01:00
Rhys Arkins
82ec20d35d fix: test if changelog.md heading ends with version 2018-02-08 13:25:28 +01:00
Rhys Arkins
f07a7a33c0 fix: strip trailing #something from manual repository url 2018-02-08 13:22:39 +01:00
Rhys Arkins
5794e008ce feat: look up missing dep repository manually if changelog fails 2018-02-08 13:00:22 +01:00
Rhys Arkins
cbd748efe6 fix: addReleaseNotes should check for valid input 2018-02-08 12:10:36 +01:00
Rhys Arkins
85d9607f12 fix: better escape all # chars in PR bodies 2018-02-08 10:44:58 +01:00
Rhys Arkins
1610752547 fix: add check for version.time (npmjs) 2018-02-08 06:50:10 +01:00
Rhys Arkins
4c6e3f7932 fix: use existing lock files when rebasing
Check if a lock file already exists in the current *branch* and if so then use it as the base for generating the new lock file and not the master one. Ensures that simple rebases result in same result.

Closes #1481
2018-02-07 16:23:41 +01:00
Rhys Arkins
dc1bcee68e chore: downgrade closed PR warning to info 2018-02-07 12:03:49 +01:00
Rhys Arkins
430b8237c3 chore: fix lint 2018-02-07 11:03:26 +01:00
Rhys Arkins
c7efe253da fix: massage changelog release note bodies 2018-02-07 11:01:43 +01:00
Rhys Arkins
5609767748 chore: downgrade release note logs to trace 2018-02-07 11:01:32 +01:00
Rhys Arkins
465849cac5 fix: add url to release notes 2018-02-07 11:00:47 +01:00
Rhys Arkins
7785b6df48 fix: decrease release note heading sizes 2018-02-07 10:59:37 +01:00
Rhys Arkins
545218468f fix: Better summary/details substitution for gitlab pr bodies 2018-02-07 10:53:44 +01:00
Rhys Arkins
4555dcf38a chore: downgrade CHANGELOG no entry found log 2018-02-07 09:44:44 +01:00
Rhys Arkins
8b4f116ad6 refactor: log when no entry found in CHANGELOG.md 2018-02-07 08:32:55 +01:00
Rhys Arkins
2deb4a90f7 fix: support parsing [x.y.z] changelog headings 2018-02-07 08:25:30 +01:00
Rhys Arkins
4a7f493ec4 fix: delete branch if create pr returns “validation failed” 2018-02-07 08:05:32 +01:00
Rhys Arkins
19f04bee69 fix: log message when failing to create PR 2018-02-07 07:16:32 +01:00
Rhys Arkins
85a09fffe5 fix: return err.stderr not stderr when npm install fails 2018-02-07 06:30:06 +01:00
Rhys Arkins
40859b10e2 feat: use yarn mutex to ensure only one install at a time 2018-02-07 06:21:25 +01:00
Rhys Arkins
df69c9e3a2 fix: escape links to GitHub usernames 2018-02-06 19:21:22 +01:00
Rhys Arkins
f6e2627774
feat: parse CHANGELOG.md in source repositories (#1491)
Parses `CHANGELOG.md` for first or second-level markdown headings matching versions. Supports GitHub-only source repositories for now.

Closes #1470
2018-02-06 18:53:36 +01:00
Rhys Arkins
4663967379 fix: better lerna version detection 2018-02-06 15:49:21 +01:00
Rhys Arkins
34ccbe38a3 fix: de-dupe release notes in each PR 2018-02-06 14:24:14 +01:00
Rhys Arkins
f721573e94 fix: escape github pull not pulls 2018-02-06 14:01:29 +01:00
Rhys Arkins
29cae7725b fix: show newDigest for docker digest pinning in onboarding PR 2018-02-06 11:14:55 +01:00
Rhys Arkins
6d7bbaefcc fix: detect lerna version in dependencies or devDependencies 2018-02-06 10:56:21 +01:00
Hutson Betts
f7bd7c37d9 fix(yarn): support upgrading windows-only modules 2018-02-06 07:03:47 +01:00
Rhys Arkins
a79222b777 fix: catch initRepo 403 (github) 2018-02-05 22:23:50 +01:00
Rhys Arkins
9c89629183
fix: re-enable lerna bootstrap (#1487)
* Revert "fix: Revert "feat: lerna bootstrap support (#1486)""

This reverts commit 4e592d601d.

* fix: fix lerna.json detection
2018-02-05 20:06:24 +01:00
Rhys Arkins
4e592d601d fix: Revert "feat: lerna bootstrap support (#1486)"
This reverts commit 3cab59d2fe.
2018-02-05 19:40:54 +01:00
Rhys Arkins
3cab59d2fe
feat: lerna bootstrap support (#1486)
Adds support for running `lerna bootstrap` instead of `npm install` or `yarn install` (without Workspaces), hence allowing support of internally-linked dependencies.

Closes #1441, Closes #1443
2018-02-05 19:30:07 +01:00
Rhys Arkins
4a427adcac fix: don’t clean branches if repository is not found or blocked 2018-02-04 21:57:43 +01:00
Rhys Arkins
4c267b210b fix: handle archived repos gracefully 2018-02-04 21:20:28 +01:00
Rhys Arkins
5a11596960 chore: add logging to onboarding pr logic 2018-02-04 13:35:43 +01:00
Rhys Arkins
021242a7bf fix: use json-stringify-safe on unknown errors 2018-02-03 15:58:14 +01:00
Rhys Arkins
e306f707db fix: abort renovation if repository has changed during run
If attempting to create a branch and it already exists, or attempting to update a branch and it no longer exists, then we abort.
2018-02-03 15:45:43 +01:00
Rhys Arkins
720b46696a
feat: gitlab branch cleanup (#1475)
Removes the GitHub-only check when cleaning/pruning branches.
2018-02-03 12:06:25 +01:00
Rhys Arkins
03bdfe191f fix: drop unnecessary changelog debug 2018-02-03 07:53:02 +01:00
Rhys Arkins
fbc46f6c70 fix: unset github token prior to changelog 2018-02-03 07:48:32 +01:00
Rhys Arkins
4d8510246d Revert "fix: unset ghe token before calling changelog (#1472)"
This reverts commit fb1c291b39.
2018-02-03 07:42:08 +01:00
Rhys Arkins
85de185896 chore: remove excess release notes debugging 2018-02-02 23:08:34 +01:00
Rhys Arkins
fb1c291b39
fix: unset ghe token before calling changelog (#1472)
fix: unset ghe token before calling changelog
2018-02-02 20:32:00 +01:00
Rhys Arkins
40072e2707 refactor: downgrade 5 loops from error to warn 2018-02-02 18:04:26 +01:00
Rhys Arkins
6fc39d75a5 fix: check for null release notes body 2018-02-02 13:08:00 +01:00
Rhys Arkins
c70c72f14b
feat: release notes in pull requests (sourced from github releases) (#1465)
Detects and embeds release notes found on GitHub when an npm dependency specifies a GitHub repository as its source and that repository has made use of the "Releases" feature.
2018-02-02 12:37:16 +01:00
Rhys Arkins
7afb693151 fix: update all pr body templates to use h1 headings 2018-02-02 10:56:40 +01:00
Rhys Arkins
139d6b237e fix: include release headings in pr body only if it has commits 2018-02-02 10:41:33 +01:00
Rhys Arkins
42cb6fe853 fix: improve issue de-linking for public GitHub repos 2018-02-02 06:01:32 +01:00
Rhys Arkins
9195adc58a refactor: sort versions and commits from oldest to newest
List versions and their commits in PR bodies in the order they were made (oldest to newest).
2018-02-02 05:42:22 +01:00
Rhys Arkins
f856b364c6 refactor: downgrade yarn parsing error from warning to info 2018-02-01 16:23:47 +01:00
Rhys Arkins
a708005886 fix: massage issues/pulls links in public repos to be non-linking 2018-02-01 11:36:30 +01:00
Rhys Arkins
cadb4b796f fix: massage updated less than/greater than to match existing format 2018-02-01 08:25:52 +01:00
Rhys Arkins
6fc1f94936 feat: list package files in onboarding PR
Closes #1461
2018-01-31 13:20:55 +01:00
Rhys Arkins
335844e6b7 feat: strip docker-only descriptions from onboarding PR if no Dockerfiles 2018-01-31 13:10:09 +01:00
Rhys Arkins
ad4b9feb92 feat: prConcurrentLimit
Adds a new feature to limit the number of concurrent branches/PRs to have open at any one time. Defaults to 0 (disabled), set it to a positive integer to enforce that limit.
2018-01-30 11:43:16 +01:00
Rhys Arkins
5800230cc2 fix: packageRules without packageNames or packagePatterns should match
If a packageRule is missing packageNames AND missing packagePatterns, then we should match by default. This allows users to define a single “exclude” rule without needing to add a catchall include rule (e.g. `packagePatterns”: [“.*”]`)
2018-01-30 09:34:42 +01:00
Rhys Arkins
5a02a35afb chore: log branchList before pruning 2018-01-30 09:23:38 +01:00
Rhys Arkins
b32b7447da refactor: Revert "refactor: add YARN_CACHE_FOLDER to env"
This reverts commit f0111101c9.
2018-01-29 09:54:49 +01:00
Rhys Arkins
37d83cf61a refactor: check that workspaces has yarn.lock committed
Closes #1451
2018-01-29 09:51:16 +01:00
Rhys Arkins
f5b1c00d8f refactor: log old/new pr details if updating 2018-01-28 21:46:27 +01:00
Rhys Arkins
64cf41e76e refactor: sort PRs by type and then title 2018-01-28 16:14:04 +01:00
Rhys Arkins
f64204b992 fix: pin PRs should be sorted before digest ones 2018-01-28 15:57:20 +01:00
Rhys Arkins
f621e93519 chore: add better metadata to packge-file and package logging 2018-01-28 14:51:55 +01:00
Rhys Arkins
b2b0e42492 fix: do not jump unstable majors unless configured to do so 2018-01-27 16:18:18 +01:00
Rhys Arkins
6743e5b489 refactor: downgrade yarn.lock parsing error logs to info 2018-01-27 08:30:14 +01:00
Rhys Arkins
8dcc83a4a3 feat: support yarn mutex file
Adds yarn mutex file flag to cmd line if set in env
2018-01-27 07:25:08 +01:00
Rhys Arkins
f0111101c9 refactor: add YARN_CACHE_FOLDER to env 2018-01-27 06:41:23 +01:00
Rhys Arkins
a378bbbac3 fix: massage invalid Regex pattern ‘^*$’ 2018-01-26 19:30:57 +01:00
Rhys Arkins
f3c8fd23c9
feat: stringify unknown errors for better visibility (#1449)
feat: stringify unknown errors for better visibility
2018-01-26 19:08:13 +01:00
Rhys Arkins
6c57c5f45b refactor: lower lock file warning to debug 2018-01-26 16:26:42 +01:00
Rhys Arkins
fda9fcc289 fix: only use lockedVersion when pinning 2018-01-26 12:31:52 +01:00
Rhys Arkins
9e0a798a6b fix: trace lock files, not info 2018-01-26 12:25:53 +01:00
Rhys Arkins
2830a33aab fix: check for valid lockedVersion
When pinning, check that the “version” in a lock file is a valid semver, and ignore it if not.
2018-01-26 11:49:44 +01:00
Rhys Arkins
79e9ce6d8f feat: pin npm dependencies using lock files
When package-lock.json or yarn.lock files are present, and Renovate needs to “pin” any dependencies (e.g. after onboarding), it will use whatever version is in the lockfile rather than the latest version on npm js that satisfies the semver range. This should increase the chance that Pin Dependencies PRs pass tests, as it should use as close as possible dependencies as the previous time the lock file was committed to master. Thanks to @alexeagle for first suggesting this.

Closes #1362
2018-01-26 10:18:40 +01:00
Rhys Arkins
d66dea7ec3
feat: verify status check (GitHub) (#1444)
Adds a `renovate/verify` status check for those migrating and looking for familiarity. Better to check the GPG verified commit, as mentioned in the associated doc.
2018-01-25 13:36:21 +01:00
Rhys Arkins
9363fd8acf refactor: pass object to platform.initRepo
Also renames repoName to repository
2018-01-25 12:24:13 +01:00
ctaepper
280e74fa9f feat: expose env to npmrc and npm/yarn/pnpm (#1407)
Adds a config option to bot administrators called `exposeEnv`, for cases where repositories are trusted. If set to true, the bot's full `process.env` can be used for `.npmrc` variable substitution and is passed to child processes when generating lock files. Disabled by default, including in the App.
2018-01-25 10:38:30 +01:00
Rhys Arkins
0925f59262
feat: versionStrategy (#1439)
Adds new config option `versionStrategy` that allows config to override Renovate’s autodetection of when to “widen” an existing semver range, and when to “replace”.
2018-01-24 15:26:37 +01:00
Rhys Arkins
1b535af43e
feat: hyphen range support (#1437)
Adds support for ranges, such as `”1.x - 2.x”`. Adds support for widening .x ranges, e.g. `”1.x || 2.x”` becomes updated to `”1.x || 2.x || 3.x”`.

Closes #687
2018-01-24 11:23:59 +01:00
Rhys Arkins
f943d6b27c
feat: widen semver || ranges (#1436)
When an “or” semver (e.g. “react”: “^14.4.0 || ^15.0.0”) is found, we now widen it. e.g. the result will be “^14.4.0 || ^15.0.0”.
2018-01-24 09:44:38 +01:00
Rhys Arkins
bf64d62dc8
feat: advanced semver "less than (and equal to)" support (#1435)
Adds support for "less than" semver, and for complex semver values that end in "less than" e.g. ">= 1.0.0 < 2.0.0". Also supports complex semver values that end in "less than or equal to", although they make a lot less sense, e.g. ">= 1.0.0 <= 2.0.0".

Closes #1433
2018-01-24 08:43:27 +01:00
Rhys Arkins
9504fb8abb
refactor: use handlebars triple escapes in templates (#1434)
This stops HTML substitution from occurring
2018-01-24 07:18:11 +01:00
Rhys Arkins
ef17430d7a refactor: lower bazel and semver warnings to info logs 2018-01-23 13:00:05 +01:00
Rhys Arkins
516142b687
feat: import existing greenkeeper config when onboarding (#1431)
Detects any greenkeeper configuration fields and migrates them to Renovate’s config during onboarding.

Closes #1429
2018-01-23 11:59:32 +01:00
Rhys Arkins
a7083c5688 refactor: Recommend blocking PRs be renamed and not reopened 2018-01-23 10:50:05 +01:00
Rhys Arkins
0b7deb546c
feat: apply package.json renovate config to whole repository (#1419)
Changes the way Renovate treats renovate config inside `package.json` files. Before, config used to be applied only to that particular file, meaning that it was not applied for the rest of a monorepo, or for other package managers like Docker. Now, any `renovate` section inside the repository’s root `package.json` will be applied globally, just the sams as if it were contained within a `renovate.json` file. This means there is no longer any case where you *must* have a `renovate.json` file instead of `package.json`.

Closes #1323

BREAKING CHANGE: renovate config in `./package.json` is now applied to whole repository, and renovate config inside non-root `package.json` files is now ignored.
2018-01-23 06:59:01 +01:00
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
Rhys Arkins
fa68a5a216 refactor: skip ignore notification comment if PR was merged 2018-01-20 15:09:23 +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
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
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
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
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
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
228b823e45 fix: ignore branchPrefix for onboarding branch 2018-01-09 17:24:09 +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
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
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
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
2720688f4c feat: commit body
This PR adds the configuration option “commitMessageBody”. The contents of this will be appended to the commitMessage, separated by two line returns.
2017-12-25 20:37:14 +01:00
Rhys Arkins
4ec85ad818
feat: use version in pr title for synchronised groups (#1333)
Now, if every upgrade in a group has the same new version, then the PR title will include this version.

Closes #1332
2017-12-24 11:14:34 +01:00
Rhys Arkins
b850985926 refactor: add ls to npm install to view files in logs 2017-12-23 08:55:47 +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
f4364ccc44 fix: isOnboarded should return true if onboarding is skipped 2017-12-22 18:50:41 +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
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
bf6d774cfc refactor: simplify duplicate removal of dependency names 2017-12-15 21:33:54 +01:00
Rhys Arkins
72dbe58ade chore: add path details to npmrc and yarnrc log 2017-12-15 09:10:35 +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
bbb700c54d feat: add github writeToken capability in github wrapper 2017-12-12 14:54:09 +01:00
Rhys Arkins
cb8fd6b4ed
feat: fork mode (#1287)
This PR adds the capability to run Renovate in a new "fork mode". This new mode must be configured by the Renovate admin, and cannot be configured within repositories themselves (for now). Example use: `renovate --autodiscover --fork-mode`

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

Closes #897
2017-12-09 17:56:23 +01:00
Rhys Arkins
70c95add5a
feat: custom git commit author (#1280)
This PR adds the capability to specify a custom author for git commits on GitHub. Setting this field will mean GitHub uses this value for author and commit instead of the token’s identity. For instance if you are running hosted mode you may set the gitAuthor to “Renovate Bot <bot@renovate.com>” to have commits appear as coming from the renovate-bot account.
2017-12-09 17:09:31 +01:00
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
Rhys Arkins
696aaa38af
refactor: slim down onboarding PR description (#1274) 2017-12-07 13:32:56 +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
1aba7c79af
fix: make sure lock file maintenance branch is not stale before skipping (#1265) 2017-12-05 06:17:27 +01:00
Rhys Arkins
d56654cd88
fix: don’t exception if no rollback versions found (#1263) 2017-12-04 15:07:35 +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
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
15dfad63b5
refactor: return ‘onboarding’ from ensureOnboardingPr (#1250) 2017-11-28 14:58:18 +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
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
7675f3a9f1
fix: replace singapore/renovate references with renovateapp/renovate (#1229) 2017-11-23 14:08:31 +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
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
0e81a88a54 fix: drop branchExists check after create (#1188) 2017-11-16 23:51:47 +01:00
Rhys Arkins
4c4d5cfdac
refactor: check unpublishsafe only if configured (#1186) 2017-11-16 22:34:49 +01:00
Rhys Arkins
d3955f1a32
fix: only remove lock file warning comment when successfully updating… (#1184) 2017-11-16 21:54:13 +01:00