Commit graph

2180 commits

Author SHA1 Message Date
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
Rhys Arkins
6dc143e76c fix: delete token before npm api tests (#418) 2017-07-02 21:29:09 +02:00
Rhys Arkins
faa754d136 Use NPM_TOKEN for registry lookup 2017-07-02 20:52:31 +02:00
Rhys Arkins
1cf8330125 fix: group branchName handlebars error
Closes #410
2017-07-02 07:50:46 +02:00
Rhys Arkins
c608ac2e46 refactor: rename branchWorker.updateBranch -> processBranchUpgrades 2017-07-02 06:44:49 +02:00
Rhys Arkins
b58452620a refactor: rename groupUpgradesByBranch to branchifyUpgrades 2017-07-02 06:40:40 +02:00
Rhys Arkins
3ec668225a fix: use new config for pin.group.prTitle 2017-07-02 06:38:59 +02:00
Rhys Arkins
c4dcad7de8 chore: squash template fields in config log serializer 2017-07-02 06:32:52 +02:00
Rhys Arkins
372b445260 refactor: set recreateClosed in group and lockFileMaintenance 2017-07-02 06:25:42 +02:00
Rhys Arkins
3d9cd11611 refactor: change group config structure
This changes how group are configured to align with the new lock file configuration.

BREAKING CHANGE: old group* template options are no longer supported but can be migrated into group object
2017-07-01 06:49:32 +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
3a68dafab2 fix: drop packageFile.fileName support
No longer massages packageFile.fileName -> packageFile.packageFile

BREAKING CHANGE: “fileName” notation no longer supported
2017-07-01 06:42:12 +02:00
Rhys Arkins
45c3124a8f feat: support "enabled" config option at all configuration levels 2017-06-30 16:04:23 +02:00
Rhys Arkins
6664110c29 feat: schedules (#397)
This PR adds a scheduling feature, including timezone support.
It's described in detail in the FAQ, but the summary is:

*   Timezones can be defined so that schedules are written in timezone of target repository
*   Schedules can be written in "plain english"
*   Multiple schedules allowed
*   Schedules can be defined all the way down to package level

Closes #387
2017-06-30 14:04:46 +02:00
Rhys Arkins
0ac3625e4f fix: more semanticCommitsEnabled -> semanticCommits 2017-06-30 06:04:15 +02:00
Rhys Arkins
4c79dae98c feat: semantic commit support (#389)
Defaults to disabled. Included in onboarding.

Closes #303
2017-06-29 19:50:26 +02:00
Rhys Arkins
87967b4945 fix: Onboarding config should use repo config, not defaults (#386) 2017-06-29 15:38:18 +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
742060c8b5 Improve npm and yarn lock error messages (#380)
Closes #375 

* Detect versions at startup

* Add meaningful error messages when problems with npm or yarn

* Test helpers

* Test global versions
2017-06-28 22:33:27 +02:00
Rhys Arkins
fe82c7ad7c Skip repositories with no package.json (#378)
* Skip repositories with no package.json

Closes #376

* Fix await

* Refactor file file check

* Update tests
2017-06-28 19:37:08 +02:00
Rhys Arkins
698a63ad32 Fetch multiple pages from gitlab projects api endpoint (#377)
Fixes #371
2017-06-28 15:01:05 +02:00
Rhys Arkins
c459ba66d6 Fix rebasing logic (#372)
* Add debug messages to API

* Fix rebase logic

* Fix tests

* Simplify logic

* Update branch.spec.js
2017-06-28 13:20:31 +02:00
Rhys Arkins
a8da588f13 Don’t warn if currentVersion is a known tag
Closes #333
2017-06-28 12:45:18 +02:00
Rhys Arkins
8bc3c00c32 Fix onboarded branchName 2017-06-28 12:35:07 +02:00
Rhys Arkins
285c977cf7 Use package.json renovate config when onboarding (#370)
* Store repoIsOnboarded in config

* Use package file renovate config for onboarding

Closes #368
2017-06-28 12:16:25 +02:00
Rhys Arkins
085e0ed3e4 Return default package.json if GitHub api finds no files 2017-06-28 11:39:51 +02:00
Rhys Arkins
c472b7e6cc Improve onboarding (#367)
* Add branchName to mergeRenovateJson

* Split onboarding into branch and PR

* Update onboarding description

* remove snapshot

* Update tests

* Update onboarding text
2017-06-28 11:23:40 +02:00
Rhys Arkins
a952506259 Perform gitlab terminology translation in api (#366) 2017-06-28 10:10:40 +02:00
Rhys Arkins
46a4d8ba9d Refactor pin groups (#364)
* Group together pins

* Install github-url-from-git

* Get repositoryUrl from npm

* Don’t delete excess pins

* Update configuration.md

* Update tests
2017-06-27 17:46:11 +02:00
Rhys Arkins
6d99afb656 Get repository url from npm query (#363)
* Get repositoryUrl from npm

Closes #350

* Generate repository url from npm query

Closes #350
2017-06-27 17:35:23 +02:00
Rhys Arkins
1669cefbd3 Fix isGitHub 2017-06-27 14:54:07 +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
ec35b6f764 Enable CLI override of app repositories list (#358)
* Filter GitHub App repositories list if configured via CLI

Closes #354

* Fix existing tests

* Add new test
2017-06-26 09:43:24 +02:00
Rhys Arkins
a787e6bad2 Automerge pinned updates (#349)
* Automerge pinned upgrades

Closes #348

* Update test snapshots
2017-06-25 09:06:51 +02:00
Rhys Arkins
08f7a5ca91 Complete code coverage (#347) 2017-06-25 08:14:59 +02:00
Rhys Arkins
19f4b3b0bc Refactor repository worker (#344)
* Move to subdir

* Downgrade eslint to 3

* Refactor api and config usage

* Refactor mergeRenovateJson

* Test mergeRenovateJson

* getOnboardingStatus tests

* Refactor repository structure

* Refactor config.logger

* Revert "Refactor config.logger"

This reverts commit 6d7f81af6e.

* Refactor repository logging

* Refactor try/catch

* Refactor platform and onboarding

* Refactor setNpmrc

* Fix github logger

* npm api use config.logger

* Refactor repo worker logger

* Refactor repo worker

* Refactor branched upgrades

* Repository refactoring

* Move some debug logging to trace

* Deprecate fileName

* Refactor upgrades

* Refactor repository logs

* More repository log refactoring

* Refactor repository location

* Revert "Refactor repository location"

This reverts commit faecbf2951.

* Fix tests

* mergeRenovateJson

* Recombine repository worker

* Add initApis tests

* add detectPackageFiles tests

* Add determineRepoUpgrades tests

* start groupUpgradesByBranch tests

* add test

* add test

* Finish groupUpgradesByBranch coverage

* Test updateBranchesSequentially

* Finish repo coverage

* Finish branch worker coverage

* Finish workers coverage

* Fix isPin

* Complete workers coverage

* Finish helpers coverage

* Add gitlab api tests

* getBranchStatus tests

* test createPr

* start getPr testing

* getPr

* update and merge PR tests

* getFile

* getFileContent tests

* getFileJson tests

* createFile

* updateFile

* createBranch

* commitFilesToBranch

* update yarn

* Update yarn
2017-06-25 07:36:13 +02:00
Rhys Arkins
887efe2ac8 Unit test gitlab api (#343)
Closes #228
2017-06-25 07:11:24 +02:00
Rhys Arkins
53a316d1c3 Improve test coverage (#338)
* Fix github api coverage

* Fix npm api coverage

* Fix renovate init function coverage

* Start gitlab tests

* gitlab initRepo tests

* findFilePaths

* Add branchExists tests

* Fix branch worker coverage

* pr worker

* Refactor repository functions

* Refactor gitlab getRepos
2017-06-22 21:35:32 +02:00
Rhys Arkins
a3a3f88091 Fix gitlab markdown/html (#337)
* Add showdown

* Use showdown to convert pr body to html

Closes #334

* Update test
2017-06-22 15:14:42 +02:00
Rhys Arkins
24955fab77 Support GitLab merge conflict rebasing (#335)
Closes #132 

* Add gitlab deleteBranch

* Add GitLab rebasing logic to branch worker

* Add GitLab getBranch

* Record user email during initRepo

* Add canRebase logic

* lint fix

* Add test
2017-06-22 11:56:23 +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
34421a3837 Replace winston logging with bunyan (#326)
Closes #325 

* Install bunyan

* Set log level for jest

* Replace winston requires with relative logger require

* Add cliHelper

* Strip unused

* Trim unused and update colors

* Update log messages

* Enable dynamic log level

* Update cli.js
2017-06-20 17:57:04 +02:00
Rhys Arkins
d477aa80e9 Fix branch push failure PR (#316)
* Fix GitLab branch status failed - failure

* Fix PR creation when branch automerge fails

Fixes #310
2017-06-16 15:24:59 +02:00
Rhys Arkins
c596673da1 Fix check for yarn.lock maintenance existing (#314)
* Fix check for yarn.lock maintenance existing

Closes #313

* Fix test

* Fix lint
2017-06-16 11:57:04 +02:00
Rhys Arkins
439367e223 Don’t show commit details when none present (#311)
Fixes #308
2017-06-16 09:46:57 +02:00
Rhys Arkins
299016918a Change autogenerate PR message (#301) 2017-06-13 16:52:33 +02:00
Rhys Arkins
03063f30b6 Hyperlink issue numbers in commit messages (#299)
* Add regex for hyperlinking issue numbers in commit messages

Closes #185

* Extend test
2017-06-13 12:22:21 +02:00
Rhys Arkins
91856cec7a Refactor changelog logic to directly use JSON (#296)
Closes #264 

* Basic refactor

* Refactor into module

* Further refactor

* Use json for group pr body

* Add commit links

* improve body

* Refactor names

* Add signature

* Refactor config

* Simplify non-group pr body template

* Fix Pull/Merge terminology

* Fix test

* Fix pr test

* Fix prettier
2017-06-13 11:08:37 +02:00
Rhys Arkins
112ff0b410 Support branch automerging (#274)
Add support for automerging without PR, Closes #177 

* update definitions and docs


* Add mergeBranch api

* support merge commit

* set automergeType

* Update API

* Refactor merge commit

* branch-push working

* Refactor branch

* Add back base tree

* Fix failing tests

* Update definitions and docs

* Fix automerge logic

* Test isBranchStale

* start mergeBranch test

* test mergeBranch branch-push throws

* more tests

* test unknown commit type

* pr tests

* Detect automerge in versions helper

* update tests for new automergeEnabled flag

* refactor pr logic

* complete pr worker tests

* branch automerge tests

* Update docs

* refactor branch automerge check
2017-06-08 06:18:21 +02:00
Rhys Arkins
92a1417b67 Use snapshots for versionsHelper tests (#282) 2017-06-07 21:36:47 +02:00
Hutson Betts
623a720ba5 fix(npm): accept JSON as fallback in content negotiation (#281)
Accept `application/json` as content type fallback in case user is accessing
npm registry that does not support the new `npm.install` content type.
2017-06-07 21:30:37 +02:00
Rhys Arkins
d293143475 Fix github api base branch update (#279)
* Update base commit SHA after merge

* drop unnecessary getcommittree
2017-06-07 15:42:20 +02:00
Rhys Arkins
88648ab4a5 Add npm caching (#266)
* use snapshots

* Use npm cache

Closes #246

* Add test for caching
2017-06-05 12:13:39 +02:00
Rhys Arkins
d234a0d9dd Support changelogs for groups (#257)
Closes #202 

* Externalise hbs templates

* Fix tests

* Move templates

* lint fix

* Pass all upgrades to ensurePr

* Group changelogs

* Fix lint

* Fix tests
2017-06-05 10:21:02 +02:00
Rhys Arkins
ee6b9876be Externalise hbs templates (#255)
* Externalise hbs templates

* Fix tests

* Move templates

* lint fix

* Refactor templates location
2017-06-04 16:42:24 +02:00
Rhys Arkins
156e104b5f Gracefully handle 404’s for npm module lookup (#254)
Closes #252, Closes #211
2017-06-04 12:34:04 +02:00
Rhys Arkins
a50e65e143 Add robustness to package.json parsing (#250)
* Add robustness to package.json parsing

* Add tests
2017-06-04 08:06:40 +02:00
Rhys Arkins
79de1b1ef3 Use npm Registry Filter Header (#249)
Closes #245
2017-06-04 07:10:12 +02:00
Rhys Arkins
775a93172f Add yarn cache support (#239)
* Add yarn cache support

Closes #237

* Fix prettier
2017-06-03 15:25:13 +02:00
Rhys Arkins
1bd22611fd Fix GitHub app merge (#234)
* Add installation debug

* Update initRepo merge detection

* mergePr tests

* guess squash

* Update tests
2017-06-03 09:40:13 +02:00
renovate[bot]
cfb692c0d0 Update dependency prettier to version 1.4.0 (#231)
* Update dependency prettier to version 1.4.0

* Update dependency prettier to version 1.4.0

* Run prettier autofixes
2017-06-02 22:40:00 +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
a663ecddef Add npm5 package-lock.json support (#224)
* Add npm5 package-lock.json support

Closes #222

* Fix comment typo

* Add package-lock.json failure test cases
2017-06-02 08:29:36 +02:00
Rhys Arkins
d453f6cce7 Add try/catch around yarn.lock generation (#225)
* Add try/catch around yarn.lock calls

* Improve test structure
2017-06-02 08:06:44 +02:00
Rhys Arkins
8bb6c5cea2 Fix caret zero dot zero dot logic (#191)
Fixes #189 

* Add @types/helmet as npm fixture

* Add zero dot zero tests for tilde and caret

* Fix caret zero dot zero logic
2017-04-28 21:55:14 +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
8d516e3491 Feature: Don't assign/review automerge PRs (#180)
* Skip assignees and reviewers if automerging

* Add tests
2017-04-21 07:23:36 +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
Rhys Arkins
aa3309ffe1 PR Automerging (#173)
Closes #109

* Add automerge definition

* Add mergeMethod

* add mergePr for GitHub

* update definitions

* autodetect merge type

* Check mergeable state

* Don’t split majors if automerging any

* Update mergePr api commands

* fix initRepo tests

* Add tests

* Fix mergePr call

* Fix description

* Revert branchWorker changes

* revert comment

* Add test

* Add major/minor separation tests

* Add status-success tests

* Add not-pending tests

* Add automerge tests

* Check branch status before merge
2017-04-20 13:01:23 +02:00
Rhys Arkins
5f8711da39 Refactor yarn helper and add tests (#174)
Refactor yarn helper and increase coverage
2017-04-20 12:15:46 +02:00
Rhys Arkins
5f6cf321bb Add missing ensurePr tests (#176) 2017-04-20 12:11:56 +02:00
Rhys Arkins
4097b8291e Fix versions groupName check (#175) 2017-04-20 11:59:02 +02:00
Rhys Arkins
d3023dcb26 Add tests 2017-04-20 07:09:07 +02:00
Rhys Arkins
8113a19b1f Fix GitHub branchExists check (#170)
* Fix: don’t check for closed PR if groupName is configured

* Fix GitHub branchExists check

* Revert "Fix GitHub branchExists check"

This reverts commit 775b3172f1.

* Revert "Revert "Fix GitHub branchExists check""

This reverts commit 84e4a5dbbf.

* Update tests
2017-04-17 08:39:11 +02:00
Rhys Arkins
ca7b25825d Add PR Creation stage configuration (#168)
* Add prCreation config option

* Support ‘status-success’ configuration

* Add option ‘not-pending’
2017-04-17 06:46:24 +02:00
Rhys Arkins
c267e06e7f Make package pattern explicit (#165) 2017-04-15 21:58:41 +02:00
Rhys Arkins
96b21ece41 Refactor branch batching (#163)
Closes #134 

* Refactor to combine upgrades in the same branch

* Fixing tests

* Fix config

* Fix more tests

* Fix newContent

* drop verbose

* Fix package file logic
2017-04-15 20:32:01 +02:00
Rhys Arkins
f70c243804 Refactor upgrade loop logic (#162) 2017-04-15 18:03:11 +02:00
Rhys Arkins
cad086d242 Add separateMajorReleases config option (#161) 2017-04-15 12:44:50 +02:00
Rhys Arkins
c6cbc00b07 Support package-level configuration (#160)
Closes #133 

* Add packages object

* Add first test

* Add override

* More package tests

* Update example config in docs

* Add regex test
2017-04-15 11:37:35 +02:00
Rhys Arkins
4856f22747 Support configuring per dependency-type (#159)
Related: #133 

* Add getDepTypeConfig

* Add depTypeConfig

* Add depType config tests

* Fix depTypes list
2017-04-15 08:51:42 +02:00
Rhys Arkins
425ada41cf Refactor per-dependency configs (#158)
* Assign configs to individual deps

* Fix

* Trim config object
2017-04-15 07:57:04 +02:00
Rhys Arkins
8d289ac445 Support simple range upgrades (#155)
Closes #31 

* Add config.pinVersions

* Check config.pinVersions before pinning

* Fix no pinning

* Add tests for existing functionality

* Add test for new feature

* Add semver-utils

* Supports tilde ranges

* Add tests for tilde and caret

* Add support for lesser than ranges

* Document range upgrade logic

* Support shorthand and .x ranges

* Refactor upgrade logic

* Simplify refactor

* revert test change

* Add isRange and update PR title template

* Refactor major/minor

* Refactor isRange

* Refactor newRange

* Use lodash for rejecting pin

* Revert "Use lodash for rejecting pin"

This reverts commit 7f0b704bbf.

* Fix major check

* Use lodash for rejecting

* Use lodash map

* rename

* Refactor mapping

* Refactor test config
2017-04-13 21:22:24 +02:00
Rhys Arkins
e959c492b9 Refactor change log versions (#154)
* Rename workingVersion to changeLogFromVersion

* Add changeLogToVersion
2017-04-13 12:44:34 +02:00
Rhys Arkins
54eaacebe3 Enhance logic for PR rebase check (GitHub) (#130)
* Enhance logic for PR rebase check (GitHub)

Closes #119

* don’t set false

* update snapshots

* Update tests
2017-03-13 10:05:19 +01:00
Renovate Bot
e0e4c7be9f Update dependency jest to version 19.x (#113)
* Update dependency jest to version 19.0.0

* Update jest snapshot
2017-02-21 11:50:35 +01:00
Rhys Arkins
ef30a73c3a Refactor for more worker tests (#104) 2017-02-14 22:04:57 +01:00
Rhys Arkins
ed132014e5 Refactor worker code for testing (#102)
Major refactor of worker code in order to add tests. Closes #99
2017-02-14 08:08:40 +01:00
Jon Bretman
56f6696abb Add more tests (#98) 2017-02-11 20:18:54 +01: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
Rhys Arkins
d2ceb9a50c Remove unused test files 2017-01-20 13:51:54 +01:00
Rhys Arkins
0356dd0eca Refactor templates to use handlebars (#57) 2017-01-18 01:48:17 +01:00
Rhys Arkins
1586627b64 Configurable ignore behaviour (#56) 2017-01-17 14:27:48 +01:00
Rhys Arkins
2e8721ebee Don’t upgrade to future versions unnecessarily
Closes #55

commit 4914c5bbf401711b61d9a54330532175a51a167c
Author: Rhys Arkins <rhys@keylocation.sg>
Date:   Tue Jan 17 12:45:45 2017 +0100

    Update debug

commit 55c8307381397399afda01038b6c50416cba27a3
Author: Rhys Arkins <rhys@keylocation.sg>
Date:   Tue Jan 17 12:44:08 2017 +0100

    Ignore versions newer than “latest”

commit 8aa3e7daa937c0d86f89e1d704853ebee46a54a8
Author: Rhys Arkins <rhys@keylocation.sg>
Date:   Tue Jan 17 11:17:31 2017 +0100

    Ignore futures if current is not future
2017-01-17 12:46:32 +01:00
Rhys Arkins
a53f906917 Refactor version filtering 2017-01-17 10:26:36 +01:00
Rhys Arkins
8d6bad0909 Refactor helpers
Also deprecates RENOVATE_TOKEN for GITHUB_TOKEN
2017-01-15 23:56:09 +01:00
Rhys Arkins
3133513aa8 Fix test lint 2017-01-15 15:52:13 +01:00
Rhys Arkins
977060eb17 Add test index 2017-01-15 15:24:45 +01:00
Rhys Arkins
14bfee0244 Refactor tests 2017-01-15 15:19:19 +01:00
Rhys Arkins
0f13d75073 Rename renovate file to worker 2017-01-15 15:09:20 +01:00
Rhys Arkins
7163700c7c Rename app to lib 2017-01-15 13:13:08 +01:00
Rhys Arkins
245f64312f Refactor logger
Avoid passing it around between modules
2017-01-14 13:50:39 +01:00
Rhys Arkins
5921d0e089 Support configurable dep types
Closes #29
2017-01-13 16:04:05 +01:00
Rhys Arkins
dacaad7492 Fix pin branch name (#36) 2017-01-13 10:06:38 +01:00
Rhys Arkins
74c3aba2ba Fix missing dev dependencies (#35)
* Add test for missing devDependencies case

* Add check for depType
2017-01-13 10:03:32 +01:00
Rhys Arkins
8e859dfe42 Increase npm tests (#25) 2017-01-12 19:57:38 +01:00
Rhys Arkins
aebf03a4d1 Major refactor to add npm tests (#24) 2017-01-12 17:04:25 +01:00
Rhys Arkins
733ea77d85 Fix mocha lint 2017-01-12 10:10:47 +01:00
Rhys Arkins
1e24017992 Add tests for package-json
commit 8e72ab18f39f6e177757e1442e9f491d22982e58
Author: Rhys Arkins <rhys@keylocation.sg>
Date:   Thu Jan 12 09:33:33 2017 +0100

    Remove use strict

commit 3d13fa9e69b0050ba211128b8b73d210eb0b549a
Author: Rhys Arkins <rhys@keylocation.sg>
Date:   Thu Jan 12 09:31:22 2017 +0100

    Add circle.yml

commit d5fad78f3847f8b384a508d3ab6e4cd19939be4e
Author: Rhys Arkins <rhys@keylocation.sg>
Date:   Thu Jan 12 09:28:58 2017 +0100

    Try use strict

commit 32ed86bfb6e04fe4270381dc3faa1184192a6f91
Author: Rhys Arkins <rhys@keylocation.sg>
Date:   Thu Jan 12 09:12:46 2017 +0100

    Add package-json tests
2017-01-12 09:36:22 +01:00