Commit graph

274 commits

Author SHA1 Message Date
Rhys Arkins
1cf8330125 fix: group branchName handlebars error
Closes #410
2017-07-02 07:50:46 +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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
6a0524edb7 Enable templates via env and update design decision doc (#192)
Closes #190
2017-04-29 04:42:17 +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
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
4283fbf7f8 Improve prCreation description 2017-04-20 07:11:45 +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
adcd152c3f Fix monorepo yarn maintenance (#167)
Closes #166 

* Support multiple yarn.lock files for maintenance

Closes #166

* Refactor maintainYarnLock logic
2017-04-17 04:54:42 +02:00
Rhys Arkins
05be49757c Dependency groups (#164)
Closes #10, Closes #48

* Update configuration options

* Upgrade dependencies to latest if groupName is configured

* Update docs

* Add groupName logic
2017-04-15 22:04:14 +02:00
Rhys Arkins
cad086d242 Add separateMajorReleases config option (#161) 2017-04-15 12:44:50 +02:00
Rhys Arkins
701aaef972 Support yarn.lock maintenance (#105)
Closes #96 

* Improve yarn logs

* Add processYarnLock

* Update worker.js

* Update worker.js

* Fix and update docs

* Make Yarn Maintenance strings into templates
2017-04-13 22:39:46 +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
Hutson Betts
f6421b0bb9 fix(file): use path.isAbsolute for Windows compatibility (#142)
Use Node's built-in `path.isAbsolute` for compatibility with
Window's file paths.
2017-03-26 06:08:34 +02:00
singapore
a98bd9f476 Update config definition descriptions (#129)
* Update definitions.js

* Update docs
2017-03-13 10:07:57 +01:00
Rhys Arkins
191ed70898 Add Gitlab support (#83)
Closes #65
2017-02-11 08:14:19 +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
Jon Bretman
541edb1807 Fix some small bugs (#92)
* Remove leading `/` from file paths returned from GitHub API search
* Return PR object from `createPr` function in api/github
* Set the logging level as soon as it's known
* Make sure endpoint is set at the repository level
2017-02-07 21:45:35 +01:00
Sébastien ELET
7829dfea96 Add option to rebase stalled PRs (#89)
Closes #54 

* feat(rebaseStalePr): add option to rebase stalled PRs

* refactor(pr): rename isStalled to isStale

* docs(*): rebuild the docs
2017-02-06 07:56:33 +01:00
Rhys Arkins
76de590415 Support custom endpoints 2017-02-05 09:13:56 +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
Sébastien ELET
7c6a891b73 Add option for Requested Reviewers (#79)
This feature allows for the addition of requested reviewers for Pull Requests.
2017-01-31 14:54:16 +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
3096550672 Add onboarding (#76)
* Check for closed PR

* Refactor

* Make onboarding configurable
2017-01-30 07:34:35 +01:00
Rhys Arkins
dfd86e3740 Remove recreateUnmergeable option and update docs 2017-01-29 21:53:12 +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
b068ad6597 Move all templates into config root 2017-01-20 13:55:27 +01:00
Rhys Arkins
1c25eb7b4e Support enabled boolean configuration
Closes #60
2017-01-19 10:27:31 +01:00
Rhys Arkins
bb5c144af3 Reorder defaults 2017-01-19 10:15:57 +01:00
Rhys Arkins
6f19935a34 Add assignees to config 2017-01-18 21:16:53 +01:00
Rhys Arkins
9fc83cd171 Redact token in logs
commit e6ca456e63f9f42089275ceb14e42442d8cbe8eb
Author: Rhys Arkins <rhys@keylocation.sg>
Date:   Wed Jan 18 14:11:53 2017 +0100

    Redact string

commit 154367927f60a895708ef0f83192342bbf7a4093
Author: Rhys Arkins <rhys@keylocation.sg>
Date:   Wed Jan 18 14:02:12 2017 +0100

    Redact config
2017-01-18 14:14:07 +01:00
Rhys Arkins
26caf655a3 Fix changelog in pr body 2017-01-18 13:26:26 +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
9a56bb96fb Support package.json autodiscovery (default)
Closes #53

commit e80dbfd9caa56edc3c9980622e6ebffecbc6e104
Author: Rhys Arkins <rhys@keylocation.sg>
Date:   Tue Jan 17 09:11:03 2017 +0100

    Update docs

commit 78830806efe35150e9ec4cb5416d43092ccf0fc7
Author: Rhys Arkins <rhys@keylocation.sg>
Date:   Tue Jan 17 08:52:23 2017 +0100

    Refactor

commit c44979212f7c51d395a4b4dbffe831af5467b4fc
Author: Rhys Arkins <rhys@keylocation.sg>
Date:   Tue Jan 17 07:25:28 2017 +0100

    Set default packageFiles to []

commit c830f0b37928460ed857260e6c4b4c3c23443f1e
Author: Rhys Arkins <rhys@keylocation.sg>
Date:   Tue Jan 17 07:14:33 2017 +0100

    Add github.fileFile
2017-01-17 09:12:02 +01:00
Rhys Arkins
57a41cac04 Recreate unmergeable PRs
Closes #32

commit b9706b2e0de85d3c2953ddda16cfc15ec92279e3
Author: Rhys Arkins <rhys@keylocation.sg>
Date:   Mon Jan 16 18:09:36 2017 +0100

    Fix lint

commit 04bb13b233609cba425b171ba529810b0ba614a1
Author: Rhys Arkins <rhys@keylocation.sg>
Date:   Mon Jan 16 18:08:33 2017 +0100

    Defer changelog and prBody

commit 2f1501aeedf1a3a2fb61db7df8ee1c0424efebb2
Author: Rhys Arkins <rhys@keylocation.sg>
Date:   Mon Jan 16 18:08:15 2017 +0100

    recreateClosed

commit 09cecdfcdd8a991c0d25bc7e27aef273c28595e0
Author: Rhys Arkins <rhys@keylocation.sg>
Date:   Mon Jan 16 13:24:58 2017 +0100

    docs

commit f219c1165086409a806dff8370050ae7909d8176
Author: Rhys Arkins <rhys@keylocation.sg>
Date:   Mon Jan 16 12:40:46 2017 +0100

    Recreate unmergeable PRs

commit c40b6bda284ddefccaddf1487a550d7c3d487a1a
Author: Rhys Arkins <rhys@keylocation.sg>
Date:   Mon Jan 16 12:19:15 2017 +0100

    Delete unmergeable PRs

commit 58283ea70b2b844f02fd025fb11541405b6e3280
Author: Rhys Arkins <rhys@keylocation.sg>
Date:   Mon Jan 16 12:19:03 2017 +0100

    Add github deleteBranch, getBranchPr
2017-01-16 18:10:39 +01:00
Rhys Arkins
8d6bad0909 Refactor helpers
Also deprecates RENOVATE_TOKEN for GITHUB_TOKEN
2017-01-15 23:56:09 +01:00
Rhys Arkins
18bd697dae Add short versions to CLI 2017-01-15 17:24:13 +01:00
Rhys Arkins
ab585178bd Refactor env parsing 2017-01-15 16:29:34 +01:00
Rhys Arkins
5fc82077b7 Refactor config parsing to pass tests 2017-01-15 16:12:56 +01:00
Rhys Arkins
7163700c7c Rename app to lib 2017-01-15 13:13:08 +01:00