Commit graph

100 commits

Author SHA1 Message Date
Rhys Arkins
26cdabe57e fix: array objects should be migrated (#697) 2017-08-18 19:47:13 +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
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
99e68cddd3 feat: process all package rules in parent->child order (#666) 2017-08-11 08:03:18 +02:00
Rhys Arkins
d27d35e535 feat: allow strings instead of lists (#665)
Updates definitions for schedule and package rules to allow strings to be massaged to lists - instead of erroring.

Closes #662
2017-08-11 07:29:16 +02:00
Rhys Arkins
88aaaccfb9 fix: don't detect semantic commits if config set globally (#664)
Fixes #656
2017-08-10 22:35:05 +02:00
Rhys Arkins
57091a1cb4 fix: only concat parent list if non-null (#644) 2017-08-07 10:39:32 +02:00
Rhys Arkins
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
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
134065c7c7 refactor: use branch prefix in templates (#604)
This allows for the easy overriding of our default `renovate/` branch naming.

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

Closes #529
2017-08-03 07:55:59 +02:00
Rhys Arkins
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
023e520702 fix: Do not log warning when deprecated config options found (#563) 2017-07-31 14:50:44 +02:00
Rhys Arkins
194b5b4b16 fix: Config validation ignore null and massage schedule to array (#558) 2017-07-29 22:12:19 +02:00
Rhys Arkins
7d493a14bf feat: Log warnings when unknown configuration options or option types found (#554)
This PR adds detection and log warnings for the following config validation errors:
- Unknown config option (e.g misspelling of a valid config option)
- Config option is a wrong type (e.g. string instead of boolean)

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

Closes #548, Closes #555
2017-07-28 21:15:27 +02:00
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
e41c44ea77 fix(prBody): Update PR body link 2017-07-18 07:33:37 +02:00
Rhys Arkins
5f02c91823 refactor(config): Warn instead of error when no repositories found 2017-07-15 06:47:20 +02:00
Rhys Arkins
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
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
372b445260 refactor: set recreateClosed in group and lockFileMaintenance 2017-07-02 06:25:42 +02:00
Rhys Arkins
6f49927a45 feat: schedule support for lock file maintenance
This feature now allows a custom schedule to be defined for lock file maintenance. It is now enabled by default but runs only before 5m on Sundays. Closes #399

BREAKING CHANGE: lock file maintenance is enabled by default.
Rules will apply to both yarn and npm (npm is yet to be implemented however). Existing mainainYarn* variables are removed and replaced by new lockFileMaintenance object.
2017-07-01 06:46:11 +02:00
Rhys Arkins
552b5e68c5 Refactor helpers (#382)
* Move yarn and npm helpers into branch worker

* Fix name

* Move package-json helper

* Update name

* Move changelog

* Move github-app

* Remove unused platform

* Move logger

* Fix lint
2017-06-29 07:29:41 +02:00
Rhys Arkins
463d2fc39d Refactor worker code (#362)
* Move package-file worker

* rename to renovatePackageFile

* Move packageJson

* Add getDepTypeConfig

* Add

* Revert "Add"

This reverts commit d034e6149a.

* Refactor versions

* rename findPackageFileUpgrades

* rename versions

* packageWorker

* Refactor promises

* move snapshots

* Rename

* Refactor versions

* Refactor

* Finish package worker

* Major refactor

* Remove worker tests

* package/versions

* Finish packageWorker tests

* package-json test

* Finish dep-type tests

* Add back package-json helper test

* Refactor package-file

* Add back branch and pr

* Add back remaining worker tests

* update tests

* remove snapshot

* Fix dep-type coverage

* Remove old tests

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

* Move apis tests

* Move onboarding

* Move more apis functions

* Move upgrades

* Refactor index

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

* Rename global worker

* getRepoConfig use options levels

* Refactor packageFileConfig

* Add onboarding configuration
2017-06-26 13:08:57 +02:00
Rhys Arkins
10622a1811 Refactor to enable log context (#331)
Closes #317 

* Install traverse

* Scrub api and logger in stringify config

* Use stringifyConfig

* Ignore logs

* Add meta to CLI logs

* Refactor repo structure

* rename repoWorker

* renamed worker

* Refactor logger location

* Refactor main worker

* Refactor getRepoConfig

* Refactor err

* Refactor repo logger

* Add config serializer and logger

* Refactor redact

* Remove stringifyConfig

* Refactor onboarding

* Set packageFile logger

* Refactor package file logic

* branch and pr logging

* Improve log context

* Fix tests part 1

* more test fixes

* Fix github init

* All tests passing

* Rename cli helper

* Refactor logger

* Add logger tests

* Add config serializer tests

* Add configParser tests

* Fix package file tests

* Expand package-file tests

* Use defaultConfig

* Add package-file tests

* Refactor

* Finish package-file tests
2017-06-22 09:03:36 +02:00
Rhys Arkins
07ad13337b Add GitHub App support (#230)
* Add jsonwebtoken

* Add githubApp option

* Add id and key configs

* Add integer parsing to cli and env

* Remove boolean app enablement

* Drop got

* Add API functions for GitHub Apps

* debug not verbose in api

* Add GitHub App Helper

* Update redact function

* Add GitHub app logic

* Update logging

* Fix lint

* getInstallations tests

* getInstallationToken tests

* getInstallationRepositories tests

* Refactor ghGot structure

* Add github app tests

* Add config tests

* update lockfile
2017-06-02 22:06:15 +02:00
Rhys Arkins
44e7bbf512 Use es5 trailing commas (#183) 2017-04-21 10:25:49 +02:00
Rhys Arkins
06f8d50f5e Use Prettier (#181) 2017-04-21 10:12:41 +02:00
Rhys Arkins
97d2a54561 Add repository autodiscovery (#156)
Closes #146
2017-04-21 07:00:26 +02:00
Rhys Arkins
c1a561ebf7 Refactor platform check and api assignment (#179)
* Refactor platform check and api assignment

* Drop mock

* drop async
2017-04-21 06:43:26 +02:00
Jon Bretman
3818e535ad Move tests to Jest (#94)
* No need to run tests against compiled code
* Better support for reseting modules
* Will make writing tests for the github/npm apis easier
2017-02-09 05:30:00 +01:00
Rhys Arkins
87a025c2d1 Refactor for multiple platforms (#81)
* Add gl-got

* Add platform config definition

* Refactor for multiple platforms

Preparing for #65
2017-01-31 18:16:33 +01:00
Rhys Arkins
528112bc47 Use async await (#78)
All promise syntax has been replaced with async/await.
`renovate` is now transpiled with `babel` to a `dist/` folder, which is the target of `main` and `start` in `package.json` now.
`renovate` can be run in `node.js` v7 without transpilation using `npm run start-raw`

Closes #77
2017-01-31 12:19:06 +01:00
Rhys Arkins
732958c843 Refactor worker 2017-01-22 14:40:14 +01:00
Rhys Arkins
00d6249711 Refactor config
Now generates CLI, env and docs
Makes config more testable
2017-01-20 14:03:18 +01:00