Commit graph

239 commits

Author SHA1 Message Date
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
82357d81bd refactor: logger.trace configs 2017-07-02 06:35:53 +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
8dc7e47526 fix: relative lib require in config definitions 2017-07-02 06:18:07 +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
9209982b6d fix: drop preformatted changelog
No longer supporting preformatted (markdown) changelog input for templates.

BREAKING CHANGE: Preformatted {{changeloge}} no longer supported in PR body template.
Generate changelog using handlebars as in the default templtaes.
2017-07-01 06:40:37 +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
01df41086b fix: semanticCommitsEnabled -> semanticCommits 2017-06-30 06:01:50 +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
9e5eb58b74 Remove duplicate log message 2017-06-28 12:33:58 +02:00
renovate[bot]
5a9a66bd2b Update dependency prettier to version 1.5.2 (#365)
* Update dependency prettier to version 1.5.2

* lint fix
2017-06-28 12:23:57 +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
6e12c35da5 Update docs 2017-06-27 15:36:53 +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
0801960ffb Fix relative requires (#353)
Closes #352 

* Update platform.js

* Update repository.js
2017-06-25 16:32:37 +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
Troy Coutu
e3d2ba1d3e Use iid when setting up harmonized github PR object in getPr (#332) 2017-06-22 09:00:26 +02:00
Rhys Arkins
06cd61e704 Add log to file capability (#330) 2017-06-20 21:34:25 +02:00
Rhys Arkins
19f13b10ee Fix repository redaction (#329) 2017-06-20 21:34:08 +02:00
Rhys Arkins
c96b21a9a2 Refactor bunyan CLI stream (#328)
* Install chalk

* Use chalk for colours

* Strip back code

* Refactor

* remove end
2017-06-20 20:05:59 +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
b9542217f8 Remove log-level verbose (#324)
Closes #318
2017-06-20 08:02:17 +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
d35347da44 Use .npmrc from repository for registry lookups (#309)
* Add ini

* Use repo npmrc

* Fix json

* Fix npmrc nesting

Closes #291
2017-06-16 12:14:38 +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
4cf5ed6174 Trim currentVersion in package.json (#312) 2017-06-16 10:18:28 +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
8f53ae4855 Fix check for string packageFiles config (#307) 2017-06-15 21:42:31 +02:00
Rhys Arkins
7e43fce47b Add check for logJSON (#306)
Fixes #305
2017-06-15 20:57:18 +02:00
Rhys Arkins
299016918a Change autogenerate PR message (#301) 2017-06-13 16:52:33 +02:00
Rhys Arkins
f36305da19 Suppress duplicates in PR changelogs (#302)
Closes #300
2017-06-13 16:49:27 +02:00
Rhys Arkins
fbce505adc Lower upgrades print to debug 2017-06-13 13:09:14 +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
Troy Coutu
ed8a20b5b5 Add gitlab api v4 support to getPr (#295) 2017-06-12 21:05:09 +02:00
Rhys Arkins
e5ea889829 Delete unnecessary config fields (#293) 2017-06-12 15:48:42 +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
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
db031e7361 Revert "Update base SHA after merge PR (#277)" (#278)
This reverts commit 981d446cb0.
2017-06-07 14:42:54 +02:00
Rhys Arkins
981d446cb0 Update base SHA after merge PR (#277) 2017-06-07 14:39:17 +02:00
Rhys Arkins
25a83d829f Fix baseBranch/defaultBranch in github api (#275) 2017-06-07 14:38:20 +02:00
Rhys Arkins
9be60b461f Add configuration faq/guide (#270)
Closes #265
2017-06-05 23:00:01 +02:00
Rhys Arkins
1e3d2449c8 Restore tmp directory cleanup (#268)
Partial implementation of #252
2017-06-05 19:22:39 +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
edade684e6 Support lazy grouping (#241)
Closes #240
2017-06-03 15:27:11 +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
Troy Coutu
ba7f6b6e5c Add support for v4 of Gitlab API (#221)
Closes #220 

* add gitlab api v4 support

* switch to projects/owned route
2017-06-02 08:50:07 +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
Renovate Bot
5ebff14931 Update dependency prettier to version 1.3.1 (#199)
* Update dependency prettier to version 1.3.1

* Run eslint-fix
2017-05-10 09:26:08 +02:00
Rhys Arkins
f2dd18fd5d Fix yarnMaintenanceCommitMessage use (#206)
Closes #205
2017-05-09 21:22:18 +02:00
Renovate Bot
c56c6d9bbe Update dependency prettier to version 1.3.0 (#198)
* Update dependency prettier to version 1.3.0

* Run eslint-fix
2017-05-03 06:42:24 +02:00
Rhys Arkins
6a0524edb7 Enable templates via env and update design decision doc (#192)
Closes #190
2017-04-29 04:42:17 +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
e844388e48 Add description of list configuration to docs and CLI help
Closes #188
2017-04-26 21:51: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