Commit graph

566 commits

Author SHA1 Message Date
Rhys Arkins
435478864e feat: renovate docker tag major/minor versions (#1029)
This feature enables docker tag "upgrading". Examples:
- From `node:6` to `node:8`
- From `node:6.10` to `node:6.11`
- From `node:6.11.1` to `node:6.11.3`
- From `node:6.10-onbuild` to `node:6.11-onbuild`
Currently these are disabled by default so they are opt-in, you can enable them by setting e.g. `{ docker: { minor: { enabled: true }, major: { enabled: true }}`

Closes #930
2017-10-24 06:36:52 +02:00
Rhys Arkins
9c16565a2d feat: enable docker by default (#1026)
Docker does now not need to be explicitly enabled.

Closes #942
2017-10-23 13:59:33 +02:00
Rhys Arkins
b2f35fef44 fix: do not delete semantic commits when migrating (#1025) 2017-10-23 13:06:09 +02:00
Rhys Arkins
9bac600caf refactor: filter pinned dependencies first (#1023) 2017-10-23 12:45:32 +02:00
Rhys Arkins
a65a149b8d fix: try/catch dockerfile replace (#1022) 2017-10-23 11:28:46 +02:00
Rhys Arkins
826753e329 fix: migrate null schedule to [] (#1021) 2017-10-23 09:14:50 +02:00
Rhys Arkins
aa5a488157 fix: symlinks are mode 120000 not 12000! (#1020) 2017-10-22 20:24:01 +02:00
Rhys Arkins
9c9da3f6de fix: error and exit if cannot parse renovate.json (#1019) 2017-10-22 07:47:18 +02:00
Rhys Arkins
2fa50b3771 feat: rebase branch whenever versions need updating (#1018) 2017-10-21 16:42:40 +02:00
Rhys Arkins
50295417d4 fix: don’t prefix ranges with v in pr body (#1017) 2017-10-21 15:15:22 +02:00
Rhys Arkins
636c7d17de feat: skip group name if all depNames are the same (#1015)
This commonly applies to monorepos where the same dependency may be present in multiple.json files. Instead of using the group name to describe the PR, it uses the dependency name.

Closes #848
2017-10-21 07:46:47 +02:00
Rhys Arkins
95edcec90a fix: ignore symlink package files (#1012) 2017-10-20 15:22:48 +02:00
Rhys Arkins
d3df597aa7 fix: only detect meteor files that include json Npm.depends (#1009) 2017-10-20 14:29:12 +02:00
Rhys Arkins
24a2b7b041 fix: enable pagination for merge request search requests (#1010) 2017-10-20 14:22:28 +02:00
Rhys Arkins
622116f7e0 feat: migrate boolean config objects to enabled true/false (#1007) 2017-10-20 13:15:00 +02:00
Rhys Arkins
34a7a459da fix: disabled types should be filtered out by package worker (#1005)
Closes #1004
2017-10-20 09:58:09 +02:00
Rhys Arkins
aba27eb757 feat: enable meteor by default (#1002)
Renovate will now check for and update meteor package.js files unless explicitly *disabled*.
2017-10-20 07:04:04 +02:00
Rhys Arkins
76ddde1cb5 fix: ignored digest pr comment (#1001) 2017-10-20 06:55:52 +02:00
Rhys Arkins
a0f773aa3c feat: retry github 401 bad credentials responses (#1000)
Closes #996
2017-10-20 06:24:09 +02:00
Rhys Arkins
00dabb5dc1 feat: raise pr with warning if lock file generation fails (#994)
Previously, upgrades with failing lock files were not raised as PRs. Usually this is because of missing private module configuration. Now, Renovate will raise a PR but add a comment warning of the error, with the error log. It's raised as a comment because we now won't need to regenerate the lock file error every run, and we don't want to "lose" it if the PR description gets updated.

Closes #600
2017-10-19 14:05:10 +02:00
Rhys Arkins
e8810b33fa feat: add ensure comment removal api (github) (#992) 2017-10-19 13:30:26 +02:00
Rhys Arkins
1146cfbfe4 fix: pin prs should recreate closed (#991) 2017-10-19 13:10:59 +02:00
Rhys Arkins
fa48a7fdef feat: rename open prs before autoclosing (#990)
This is a failsafe against Renovate bugs and potentially also mistakes on the user’s part. Before deleting/pruning any branches, Renovate will rename the PR’s title so that it should not block future PRs.

Closes #989
2017-10-19 07:36:09 +02:00
Rhys Arkins
c93c761d27 refactor: log addReviewers and add empty team reviewers (#988)
See if this helps #782
2017-10-19 06:35:21 +02:00
Rhys Arkins
e5895aeecf refactor: use findPr for getBranchPr 2017-10-19 06:26:29 +02:00
Rhys Arkins
84e368ff1f refactor: remove unused getAllPrs api (github) 2017-10-19 06:26:29 +02:00
Rhys Arkins
01211f119f fix: strip duplicates from dependencies log
* fix: strip duplicates from dependencies log

* chore: update prAlreadyExisted log messages
2017-10-18 21:39:10 +02:00
Rhys Arkins
b5870d90d9 feat: allow rebase after github web branch update (#982)
GitHub provides a tempting “Update branch” button whenever a branch is out of date with master, but the problem was that this then made us flag the branch as modified and hence unrebaseable, so the user would be stuck with keeping it update themselves from then on. With this feature, we ignore the “web-flow” committer when calculcating if there has been only one author.
2017-10-18 15:49:35 +02:00
Rhys Arkins
f980fea6ca feat: comment in closed PR when it is blocking an update (github) (#981)
This feature adds a new behaviour to Renovate, where it will now add a comment to any existing closed PRs that are "blocking" currently valid updates. A new API function "ensureComment" has been added, its purpose is so we can ensure there exists only one comment with a certain subject/heading. This lets us prevent duplicates as well as update existing, without having to keep state about it. ensureComment needs porting to gitlab, but should be quite easy.
2017-10-18 15:28:51 +02:00
Rhys Arkins
a4a14861b9 fix: replace some file sync functions with await (#980)
* refactor: await fs.readFile instead of sync version

* fix: replace fs and tmpDir sync with promises
2017-10-18 13:26:56 +02:00
Rhys Arkins
7a1d08eaab fix: refactor out remaining do-while loops (#978)
* fix: convert prBody trimming from do-while to recursive

* fix: convert gitlab projects do-while to use pagination
2017-10-18 11:40:48 +02:00
Rhys Arkins
cc2288ef31 fix: add try-catch to getFileList (#975) 2017-10-18 08:25:42 +02:00
Rhys Arkins
ffef63f47c feat: suppor gitlab api pagination (#971)
Adds paginated results capability for gitlab and enables it for getFileList. This should enable all files when using APIv4.

Hopeful this c-l-o-s-e-s #962 & #968
2017-10-17 21:46:49 +02:00
Rhys Arkins
9a97a5901e feat: use parse-link-header library (github) (#970)
Now will work with any GitHub host, instead of just api.github.com
2017-10-17 20:44:40 +02:00
Rhys Arkins
2b6077b6f6 fix: make github pagination opt-in (#966) 2017-10-17 13:45:17 +02:00
Rhys Arkins
665ede8475 fix: migrate excludedPackageNames to excludePackageNames (#961) 2017-10-17 11:16:02 +02:00
Rhys Arkins
78cff771af feat: retrieve and cache PR list for better performance 2017-10-17 11:09:03 +02:00
Rhys Arkins
e310887f36 refactor: remove checkForClosedPr
replace with findPr
2017-10-17 11:09:03 +02:00
Rhys Arkins
08120967b3 feat: automatically paginate res.body responses (#959) 2017-10-17 10:12:40 +02:00
Rhys Arkins
c188a71081 fix: set GitHub App headers for every request (#958) 2017-10-17 08:04:58 +02:00
Rhys Arkins
e6e8b541cf refactor: rename ghGotRetry and glGot to get (#957) 2017-10-17 07:15:01 +02:00
Rhys Arkins
3d84c22cf0 feat: skip regenerating lock file maintenance if branch exists (#956) 2017-10-16 21:57:48 +02:00
Rhys Arkins
652b910d81 fix: only detect meteor package.js files containing Npm.depends (#953)
Closes #952
2017-10-16 14:21:45 +02:00
Rhys Arkins
7c410c1283 feat: ignore mistakenly closed PRs and recreated closed (#951) 2017-10-16 13:13:31 +02:00
Rhys Arkins
ee44d1c3ba feat: reimplement findFilePaths using trees (#950)
* refactor: replace github code search with getTree/manual search (#944)

Previously Renovate was using the GitHub code search API once for each filename we are looking for. Instead, we now retrieve a list of files in the repository and cache it so it can be reused for filename matches.

Closes #939

* fix: use recursive=true

* fix: reset fileList for every repo (github)

* feat: implement findFilePaths on gitlab (#945)

* refactor: do not check manually for root package.json

* fix: reset fileList for every repo (gitlab)

* fix tests
2017-10-16 11:59:59 +02:00
Rhys Arkins
4ddd073863 feat: set github app preview header when in app mode (#949)
From https://developer.github.com/v3/apps/available-endpoints/:
> In order to access the API with your GitHub App, you must provide a custom media type in the `Accept` Header for your requests.
```
application/vnd.github.machine-man-preview+json
```
2017-10-16 09:45:31 +02:00
Rhys Arkins
74a590ae8e fix: revert findFilePath changes (#947)
* Revert "feat: implement findFilePaths on gitlab (#945)"

This reverts commit 2820b5eef3.

* Revert "refactor: replace github code search with getTree/manual search (#944)"

This reverts commit 33851a5aea.
2017-10-16 07:33:47 +02:00
Rhys Arkins
2820b5eef3 feat: implement findFilePaths on gitlab (#945) 2017-10-15 22:50:59 +02:00
Rhys Arkins
33851a5aea refactor: replace github code search with getTree/manual search (#944)
Previously Renovate was using the GitHub code search API once for each filename we are looking for. Instead, we now retrieve a list of files in the repository and cache it so it can be reused for filename matches.

Closes #939
2017-10-15 17:38:45 +02:00
Rhys Arkins
e1599073d0 fix: migrate ‘ every day’ schedule to empty (#937) 2017-10-14 07:03:44 +02:00
Rhys Arkins
8fc61e35bc feat: add assignees and reviewers whenever status checks fail (#928)
This feature means that you can configure branches/PRs to automerge, but if status checks fail (preventing automerge) then you can still get assigneed the PR to take action. Previously such PRs remained unassigned because we do not assign automerging PRs by default, to reduce noise.

Closes #722
2017-10-13 10:56:18 +02:00
Rhys Arkins
1a174226ed feat: keep branches/PRs updated when out of schedule (#926)
By default, Renovate will now continue *updating* - but not creating - branches even if off-schedule. This applies to features such as (a) rebasing branches if master changes, (b) updating if new version comes, (c) creating PRs if tests pass, (d) automerging. It is planned that (b) will be configurable in a future feature. To disable this behaviour altogether, set updateNotScheduled to false.

Closes #879
2017-10-13 06:42:17 +02:00
Rhys Arkins
8ee76c99e2 fix: check for file content before converting to buffer (github) (#925) 2017-10-13 06:14:29 +02:00
Rhys Arkins
19949f2604 fix: migrate automergeMajor automergeMinor automergePatch (#922)
This is a misconfiguration by a user but no harm in adding it to migrations.
2017-10-12 18:55:46 +02:00
Rhys Arkins
ad3f8d945f fix: wrap meteor parsing in try/catch (#921) 2017-10-12 18:25:26 +02:00
Rhys Arkins
393c24c652 fix: stop attempting branch merge if pr exists (#920) 2017-10-12 17:39:10 +02:00
Rhys Arkins
8b99ce5294 feat: detect languages during onboarding (#919)
* refactor: simplify onboarding logic

* docker meteor tests

* handle no package files case

* fix coverage
2017-10-12 16:29:20 +02:00
Rhys Arkins
97ebf27382 refactor: getOnboardingStatus returns config object (#918) 2017-10-12 10:58:16 +02:00
Rhys Arkins
e9ee8002df fix: revert docker/meteor onboarding code (#916)
* Revert "feat: support docker and meteor onboarding without npm"

This reverts commit 437145b901.

# Conflicts:
#	test/workers/repository/onboarding.spec.js

* chore: downgrade npm cache message from debug to trace
2017-10-11 19:25:25 +02:00
Rhys Arkins
bf2491bfc1 fix: don’t automerge pinned dependencies (#914) 2017-10-11 16:20:17 +02:00
Rhys Arkins
ba70f2a7c7 fix: log err headers if giving up on rate limit exceeded (#912) 2017-10-11 15:18:50 +02:00
Rhys Arkins
1696244ca0 feat: warn in onboarding if package.json missing or failed to parse (#911)
* chore: downgrade json parsing warning from warn to debug

* feat: warn in onboarding if package.json missing or failed to parse

Closes #891
2017-10-11 14:38:40 +02:00
Rhys Arkins
83ecc08541 fix: add commitMessage for pin groups (#910)
Fixes #895
2017-10-11 13:10:12 +02:00
Rhys Arkins
a60748c5ec feat: improve onboarding help
Adds mention of app author + how to recreate PR.
2017-10-11 12:46:30 +02:00
Rhys Arkins
276fa98a17 fix: eslint error 2017-10-11 12:10:31 +02:00
Rhys Arkins
437145b901 feat: support docker and meteor onboarding without npm 2017-10-11 12:10:31 +02:00
Rhys Arkins
eacd2b258a refactor: check if npm enabled before detecting files 2017-10-11 12:10:31 +02:00
Rhys Arkins
7c17c666f4 fix: better pin description in oboarding 2017-10-11 12:10:31 +02:00
Rhys Arkins
039ff55b88 refactor: rename depType docker to Dockerfile 2017-10-11 12:10:31 +02:00
Rhys Arkins
343814d467 fix: use presets js-app and js-lib (#906) 2017-10-10 12:34:35 +02:00
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
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
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
b4e2341d1e refactor: use prettier instead of eslint-plugin-prettier (#864)
Having eslint flag prettier "errors" in editors can be rather painful. Also chose against linting staged files for prettier because I like to stage partials. Instead:
- Recommended to use plugins for editors to format on save, e.g. `prettier-atom`
- Prettier will be run as part of `npm test`
2017-10-01 07:06:06 +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
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
bc18850e05 fix: use dummy time if missing from npm response (#830) 2017-09-23 08:00:17 +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
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]
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
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
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
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
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
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
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
ea9ace2a76 feat: branch worker updates (#736)
This is a major refactor of branch code to prepare for Yarn workspaces plus creating PRs for branches with failing lockfiles. Marked as "feature" to cause a minor version bump due to the moderate chance of accidentally breaking something.
2017-08-26 16:10:18 +02:00
Rhys Arkins
93d9d9e357 fix: migrate presets when resolving (#733)
Fixes #732
2017-08-25 06:25:25 +02:00
Rhys Arkins
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
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
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
e649d49615 fix: retry after github abuse trigger (#703) 2017-08-19 11:46:30 +02:00
Rhys Arkins
841a3a189a tests: add advanced presets test (#702) 2017-08-19 07:31:36 +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
26cdabe57e fix: array objects should be migrated (#697) 2017-08-18 19:47:13 +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
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
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
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
Rhys Arkins
a2cc6cdcc2 chore: complete package worker coverage (#630) 2017-08-05 22:15: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
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
e913feb6ab fix: npm and yarn use branch logger (#615)
Closes #506
2017-08-04 16:23:45 +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
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
8f8a4de69f fix: Schedule should always be an array (#580)
Massaging of string to array is done in migration function.
2017-08-02 16:14:09 +02:00
Rhys Arkins
6c6b1756cb fix: Migration check should set flag true at all times (#578) 2017-08-02 14:41:25 +02:00
Rhys Arkins
d2ad057a33 feat: Improve depTypes configuration (#577)
depTypes configuration is now refactored from being an array of strings/objects to having each type of dep (`dependencies`, `devDependencies`, `optionalDependencies`, `peerDependencies`) be a first class object in the namespace. The "old" way of configuring is still supported but is transformed using a migrateConfig script. Later, PRs will be raised to impacted repositories to suggest the new config.
2017-08-02 14:05:45 +02:00
Rhys Arkins
7f97424092 fix: Separate config migration check to own file (#576) 2017-08-02 08:54:42 +02:00
Rhys Arkins
c76222fd53 fix: Validate array objects in configuration (#575) 2017-08-02 07:52:28 +02:00
Rhys Arkins
d9d131de6c feat: Full patch separation support (#572)
This PR adds explicit patch support. A user can set `separatePatchReleases` to true and receive not only major/minor updates but also patch updates separately. This functionality is also implicitly enabled if `automerge` is set to `patch`.
This PR also enables separate major/minor/patch configuration, e.g. config overrides for major versions, for patch versions, etc. `branchName` is currently overridden for patch branches using this technique.

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

Fixes #518
2017-08-01 07:22:43 +02:00
Rhys Arkins
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
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
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
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
cd762c7bc6 fix(onboarding): Don’t hyperlink package name if undefined repository URL 2017-07-23 14:25:37 +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
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
8e48d97392 feat(logs): Support custom log detail fields
This removes the need to JSON.stringify() objects in logs. Default bunyan fields plus our custom meta fields are stripped out, and everything else is stringified in the details field.

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

Closes #493
2017-07-18 20:01:00 +02:00
Rhys Arkins
8666835bc8 fix(repository): Ignore uninitiated repositories
Closes #379
2017-07-18 14:31:48 +02:00
Rhys Arkins
e41c44ea77 fix(prBody): Update PR body link 2017-07-18 07:33:37 +02:00
Rhys Arkins
fdaa88efb1 feat(cleanup): Add specific lock file maintenance cleanup
Now cleans up lock file maintenance branch - which is usually scheduled - if it has become unmergeable or pointless.
2017-07-17 16:13:59 +02:00
Rhys Arkins
73df88c473 fix(pr): Prevent accidental hyperlinks in PR body (#490)
GitHub incorrect assumes these #12345 issue numbers refer to the *local* repo, not the source. Adding ` ` should prevent that auto-hyperlinking.

Closes #489
2017-07-16 18:37:17 +02:00
Rhys Arkins
5f02c91823 refactor(config): Warn instead of error when no repositories found 2017-07-15 06:47:20 +02:00
Rhys Arkins
95f7eab826 feat(onboarding): simplify default config (#486)
Onboarding PRs now include much less default configuration options than before.

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

Fixes #483
2017-07-13 13:37:06 +02:00
Rhys Arkins
64e91eed0f fix(github): Hyperlink issues on GitHub only if private repo (#479)
Adding hyperlinks to all #12345 issues/PRs in upstream dependencies causes undesirable noise for maintainers of those repositories.
Now, such hyperlinking is done only for private repos as that won’t result in the same GitHub annotations.

Closes #478
2017-07-09 15:13:03 +02:00
Rhys Arkins
b55ba07b47 feat(repository): Ignore package files discovered inside node_modules
Renovate will now ignore any package.json files found within node_modules folders, with the option to disable this functionality by setting config.ignoreNodeModules=false.
2017-07-08 07:00:58 +02:00
Rhys Arkins
7a841de7e6 feat(onboarding): dependencies.pinVersions=true for private repos (#475)
Closes #369
2017-07-08 06:01:02 +02:00
Rhys Arkins
3fa4d9236e refactor(workers): Rename core function names for readability 2017-07-07 19:44:49 +02:00
Rhys Arkins
1395187ccc feat(npm): Support packagelock.json maintenance (#471)
Renovate will now "maintain" npm@5's `package-lock.json` files on the same schedule as existing `yarn.lock` maintenance.

Closes #470
2017-07-07 13:57:43 +02:00
Rhys Arkins
4897d2721f fix(onboarding): fix typo in description 2017-07-07 12:53:24 +02:00
Rhys Arkins
6bd74c979d refactor: send config to ensurePr 2017-07-07 12:37:33 +02:00
Rhys Arkins
0e00dc3f83 fix(templates): Set semanticPrefix for Pin Dependencies 2017-07-07 11:16:03 +02:00
Rhys Arkins
d8a054410b feat(onboarding): Allow update of renovate.json if it’s unmodified (#469)
This allows for improvements to renovate’s default renovate.json to be passed on to users who haven’t merged or modified their Configure Renovate PR.

Closes #465
2017-07-07 11:09:52 +02:00
Rhys Arkins
fd33996f0f refactor(onboarding): Update onboarding description (#468)
Better describe renovate.json and if/when it needs to be added.
2017-07-07 09:53:22 +02:00
Rhys Arkins
06504b4abe feat(onboarding): conventional commits detection (#463)
When onboarding, retrieve the most recent commits from the repository and use https://github.com/conventional-changelog/conventional-commits-detector to parse the commit messages to detect if any conventional commit approach is being used.

Closes #462
2017-07-07 07:54:09 +02:00
Rhys Arkins
04e20dce8e feat: Prune all orphan branches (#461)
Schedule logic has been refactored to enable the pruning of all orphan branches. 
Now, schedules aren't checked at package-time, instead package upgrades are queued regardless of schedule. 
At branch time, it is checked whether the *branch* is scheduled and then the branch is not created/updated if it's off-schedule.
This enables the repository worker to know all possible branches and hence be able to determine which remaining branches in the repository are "orphans" to be deleted.

Closes #428, Closes #426
2017-07-07 06:25:38 +02:00
Rhys Arkins
eb468341c4 fix: Don’t stringify options body for PR labels (#460)
This has been broken since the upgrade to got 7.x

Closes #456
2017-07-06 19:24:09 +02:00
Rhys Arkins
0ee24ebadf refactor: Use (deps) in semantic prefix defaults (#458)
Closes #417
2017-07-06 14:39:50 +02:00
Rhys Arkins
44de0886a0 feat: Skip schedules when onboarding (#456)
All PRs/branches will be shown in onboarding even if they have been scheduled for another day or time, providing a "full view" in the onboarding.

Closes #429
2017-07-06 14:31:39 +02:00
Rhys Arkins
997c4efac2 feat: baseBranch onboarding (#453)
baseBranch is now used when computing the onboarding description in 'Configure Renovate' PR.
2017-07-06 14:12:52 +02:00
Rhys Arkins
3f35ba73d0 feat: Detect duplicate keys in renovate.json (#455)
Closes #450
2017-07-06 14:09:35 +02:00
Rhys Arkins
ff8d7f23d5 fix: update repositoryWorker tests 2017-07-06 12:31:02 +02:00
Rhys Arkins
1122f76e98 fix: branchifyUpgrades should return an object (#451) 2017-07-06 10:59:25 +02:00
Rhys Arkins
48c960b841 refactor: Move generateConfig code from branchWorker to repositoryWorker (#449)
This allows the onboarding PR to share the grouping logic and not have to duplicate it.
2017-07-06 10:35:27 +02:00
Rhys Arkins
dc5773c2e5 feat: Configurable base branch for PRs (#448)
Collaborator
rarkins commented 14 hours ago
Base branch for Pull Requests is now configurable via a new baseBranch configuration option. To take effect, this much be present in the default branch (e.g. master in most cases) so that it can be discovered and used. See FAQ for more details.

Closes #443
2017-07-06 10:26:18 +02:00
Rhys Arkins
ea4e370d3f feat: Prune stale branches (#441)
A separate routine is run after branch creation to detect any branches that should be deleted. A branch will be removed if:
- It was not created by renovate in the last run, AND
- It has no PR, or its corresponding PR is not mergeable

Closes #426, Closes #428
2017-07-05 11:57:22 +02:00
Rhys Arkins
5c34b74b08 feat: Show schedules in PRs (#439)
Closes #425
2017-07-05 08:09:35 +02:00
Rhys Arkins
1716e122cd feat: expand PR errors (#437)
Errors in PRs are expanded to include:
- If renovate.json parsing fails
- If an empty or unparseable package.json was found

Closes #435
2017-07-05 07:12:25 +02:00
Rhys Arkins
c30472dd43 feat: Add ability to skip status checks for automerge (#438)
This starts off [#359](https://github.com/singapore/renovate/issues/359) (configurable status checks) but only implements one sub-feature of it: disabling status checks to allow automerge if tests fail or if no tests are present.
2017-07-05 07:02:25 +02:00
Rhys Arkins
6034159909 Fix: add extra check for commit author (#436)
* fix: Detect undefined commit.author

Closes #409

* refactor author check

* Add debug

* Update test
2017-07-04 19:22:09 +02:00
Rhys Arkins
e0e0b259c3 feat: Show warnings and errors in regular PRs (#433)
If errors or warnings are present, they will be displayed in the PR body of all PRs now (not just onboarding).

Closes #431
2017-07-04 13:52:23 +02:00
Rhys Arkins
2f987a4037 feat: Show warnings and errors in Onboarding PR (#432)
Warnings and Errors are bubbled up when renovating a repository, together with the existing upgrades. The Onboarding PR ("Configure Renovate") now displays them and encourages the user to fix before merging/closing the PR.

Closes #414
2017-07-04 12:39:28 +02:00
Rhys Arkins
f2833c8275 refactor: Add 'package' stage to config definitions (#421)
* Add package phase

* Rename phase to stage
2017-07-03 10:31:36 +02:00