From fbc485fc337c35825679d4c195f3a07cc2a2d96e Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Wed, 29 Apr 2020 14:45:51 +0200 Subject: [PATCH] feat(presets): internalize presets (#6090) Moves Renovate's currently external renovatebot/presets data into this repo. --- lib/config/presets/__fixtures__/presets.json | 2568 ----------------- .../presets/__snapshots__/github.spec.ts.snap | 6 - .../presets/__snapshots__/index.spec.ts.snap | 1042 +------ lib/config/presets/common.ts | 2 +- lib/config/presets/github.spec.ts | 29 - lib/config/presets/github.ts | 30 - lib/config/presets/index.spec.ts | 13 - lib/config/presets/index.ts | 15 +- lib/config/presets/internal/config.ts | 50 + lib/config/presets/internal/default.ts | 579 ++++ lib/config/presets/internal/docker.ts | 35 + lib/config/presets/internal/group.ts | 560 ++++ lib/config/presets/internal/helpers.ts | 31 + lib/config/presets/internal/index.spec.ts | 22 + lib/config/presets/internal/index.ts | 29 + lib/config/presets/internal/monorepo.ts | 134 + lib/config/presets/internal/packages.ts | 81 + lib/config/presets/internal/preview.ts | 27 + lib/config/presets/internal/schedule.ts | 37 + 19 files changed, 1600 insertions(+), 3690 deletions(-) delete mode 100644 lib/config/presets/__fixtures__/presets.json create mode 100644 lib/config/presets/internal/config.ts create mode 100644 lib/config/presets/internal/default.ts create mode 100644 lib/config/presets/internal/docker.ts create mode 100644 lib/config/presets/internal/group.ts create mode 100644 lib/config/presets/internal/helpers.ts create mode 100644 lib/config/presets/internal/index.spec.ts create mode 100644 lib/config/presets/internal/index.ts create mode 100644 lib/config/presets/internal/monorepo.ts create mode 100644 lib/config/presets/internal/packages.ts create mode 100644 lib/config/presets/internal/preview.ts create mode 100644 lib/config/presets/internal/schedule.ts diff --git a/lib/config/presets/__fixtures__/presets.json b/lib/config/presets/__fixtures__/presets.json deleted file mode 100644 index d62b9c939e..0000000000 --- a/lib/config/presets/__fixtures__/presets.json +++ /dev/null @@ -1,2568 +0,0 @@ -{ - "config": { - "base": { - "description": "Default base configuration for all languages", - "extends": [ - ":separateMajorReleases", - ":combinePatchMinorReleases", - ":ignoreUnstable", - ":prImmediately", - ":semanticPrefixFixDepsChoreOthers", - ":updateNotScheduled", - ":automergeDisabled", - ":ignoreModulesAndTests", - ":autodetectPinVersions", - ":prHourlyLimit2", - ":prConcurrentLimit20", - "group:monorepos", - "group:recommended", - "helpers:disableTypesNodeMajor" - ] - }, - "base-js": { - "description": "Base configuration for Javascript (deprecated)", - "extends": ["config:base"] - }, - "js-app": { - "description": "Default configuration for webapps", - "extends": ["config:base", ":pinAllExceptPeerDependencies"] - }, - "js-lib": { - "description": "Default configuration for libraries", - "extends": ["config:base", ":pinOnlyDevDependencies"] - }, - "semverAllMonthly": { - "description": "Preserve semver ranges and update everything together once a month", - "extends": [ - ":preserveSemverRanges", - "group:all", - "schedule:monthly", - ":maintainLockFilesMonthly" - ], - "lockFileMaintenance": { - "commitMessageAction": "Update", - "extends": ["group:all"] - }, - "separateMajorMinor": false - } - }, - "default": { - "app": { - "description": "deprecated alias for config:js-app", - "extends": ["config:js-app"] - }, - "assignAndReview": { - "description": "Set <code>{{arg0}}</code> as assignee and reviewer of PRs", - "extends": [":assignee({{arg0}})", ":reviewer({{arg0}})"] - }, - "assignee": { - "assignees": ["{{arg0}}"], - "description": "Assign PRs to <code>{{arg0}}</code>" - }, - "autodetectPinVersions": { - "description": "Autodetect whether to pin dependencies or maintain ranges", - "rangeStrategy": "auto" - }, - "automergeAll": { - "automerge": true, - "description": "Automerge all upgrades (including major) if they pass tests" - }, - "automergeBranch": { - "automergeType": "branch", - "description": "If automerging, push the new commit directly to base branch (no PR)" - }, - "automergeBranchMergeCommit": { - "automergeType": "branch-merge-commit", - "description": "If automerging, perform a merge-commit on branch (no PR) - deprecated, use :automergeBranch instead" - }, - "automergeBranchPush": { - "automergeType": "branch-push", - "description": "If automerging, push the new commit directly to base branch (no PR) - deprecated, use :automergeBranch instead" - }, - "automergeDigest": { - "description": "Automerge digest upgrades if they pass tests", - "digest": {"automerge": true} - }, - "automergeDisabled": { - "automerge": false, - "description": "Disable automerging feature - wait for humans to merge all PRs" - }, - "automergeLinters": { - "description": "Update lint packages automatically if tests pass", - "packageRules": [{"extends": ["packages:linters"], "automerge": true}] - }, - "automergeMajor": { - "automerge": true, - "description": "Automerge all upgrades (including major) if they pass tests" - }, - "automergeMinor": { - "description": "Automerge patch and minor upgrades if they pass tests", - "lockFileMaintenance": {"automerge": true}, - "minor": {"automerge": true}, - "patch": {"automerge": true}, - "pin": {"automerge": true} - }, - "automergePatch": { - "description": "Automerge patch upgrades if they pass tests", - "lockFileMaintenance": {"automerge": true}, - "patch": {"automerge": true}, - "pin": {"automerge": true}, - "separateMinorPatch": true - }, - "automergePr": { - "automergeType": "pr", - "description": "Raise a PR first before any automerging" - }, - "automergeRequireAllStatusChecks": { - "description": "Require all status checks to pass before any automerging", - "requiredStatusChecks": [] - }, - "automergeTesters": { - "description": "Update testing packages automatically if tests pass", - "packageRules": [{"extends": ["packages:test"], "automerge": true}] - }, - "automergeTypes": { - "description": "Update @types/* packages automatically if tests pass", - "packageRules": [{"packagePatterns": ["^@types/"], "automerge": true}] - }, - "base": { - "description": "deprecated alias for config:base", - "extends": ["config:base"] - }, - "combinePatchMinorReleases": { - "description": "Do not separate patch and minor upgrades into separate PRs for the same dependency", - "separateMinorPatch": false - }, - "description": "This presets file is intended for simple and commonly used presets. This is a special preset file, because each element below can be accessed using the `:` prefix e.g `:enableRenovate`.", - "disableDevDependencies": { - "description": "Do not renovate <code>devDependencies</code> versions/ranges", - "packageRules": [{"depTypeList": ["devDependencies"], "enabled": false}] - }, - "disableDigestUpdates": { - "description": "Disable digest and git hash updates", - "digest": {"enabled": false} - }, - "disableLockFiles": { - "description": "Disable lock file updates", - "updateLockFiles": false - }, - "disableMajorUpdates": { - "description": "Disables major updates", - "major": {"enabled": false} - }, - "disablePeerDependencies": { - "description": "Do not renovate <code>peerDependencies</code> versions/ranges", - "packageRules": [{"depTypeList": ["peerDependencies"], "enabled": false}] - }, - "disableRateLimiting": { - "description": "Remove hourly and concurrent rate limits", - "prConcurrentLimit": 0, - "prHourlyLimit": 0 - }, - "disableRenovate": {"description": "Disable renovate", "enabled": false}, - "disableVulnerabilityAlerts": { - "description": "Disable vulnerability alerts completely", - "vulnerabilityAlerts": {"enabled": false} - }, - "doNotPinPackage": { - "description": "Disable version pinning for <code>{{arg0}}</code>", - "packageRules": [ - {"packageNames": ["{{arg0}}"], "rangeStrategy": "replace"} - ] - }, - "docker": { - "description": "Keep Dockerfile FROM sources updated", - "docker": {"enabled": true} - }, - "enableRenovate": {"description": "Enable renovate", "enabled": true}, - "enableVulnerabilityAlerts": { - "description": "Raise PR when vulnerability alerts are detected", - "vulnerabilityAlerts": {"enabled": true} - }, - "enableVulnerabilityAlertsWithLabel": { - "description": "Raise PR when vulnerability alerts are detected with label <code>{{arg0}}</code>", - "vulnerabilityAlerts": {"enabled": true, "labels": ["{{arg0}}"]} - }, - "followTag": { - "description": "For package <code>{{arg0}}</code>, strictly follow release tag <code>{{arg1}}</code>", - "packageRules": [{"packageNames": ["{{arg0}}"], "followTag": "{{arg1}}"}] - }, - "gitSignOff": { - "commitBody": "Signed-off-by: {{{gitAuthor}}}", - "description": "Append git Signed-off-by signature to git commits." - }, - "githubComToken": { - "description": "Use provided token for github.com lookups", - "hostRules": [ - {"domainName": "github.com", "encrypted": {"token": "{{arg0}}"}} - ] - }, - "gomod": { - "description": "Enable Go modules support", - "gomod": {"enabled": true} - }, - "group": { - "description": "Group {{arg1}} packages into same branch/PR", - "packageRules": [{"extends": ["{{arg0}}"], "groupName": "{{arg1}}"}] - }, - "ignoreModulesAndTests": { - "description": "Ignore `node_modules`, `bower_components`, `vendor` and various test/tests directories", - "ignorePaths": [ - "**/node_modules/**", - "**/bower_components/**", - "**/vendor/**", - "**/examples/**", - "**/__tests__/**", - "**/test/**", - "**/tests/**", - "**/__fixtures__/**" - ] - }, - "ignoreUnstable": { - "description": "Upgrade to unstable versions only if the existing version is unstable", - "ignoreUnstable": true - }, - "includeNodeModules": { - "description": "Include <code>package.json</code> files found within <code>node_modules</code> folders or <code>bower_components</code>.", - "ignorePaths": [] - }, - "label": { - "description": "Apply label <code>{{arg0}}</code> to PRs", - "labels": ["{{arg0}}"] - }, - "labels": { - "description": "Apply labels <code>{{arg0}}</code> and <code>{{arg1}}</code> to PRs", - "labels": ["{{arg0}}", "{{arg1}}"] - }, - "library": { - "description": "deprecated alias for config:js-lib", - "extends": ["config:js-lib"] - }, - "maintainLockFilesDisabled": { - "description": "Update existing lock files only when <code>package.json</code> is modified", - "lockFileMaintenance": {"enabled": false} - }, - "maintainLockFilesMonthly": { - "description": "Run lock file maintenance (updates) on the first day of each month", - "lockFileMaintenance": {"enabled": true, "extends": "schedule:monthly"} - }, - "maintainLockFilesWeekly": { - "description": "Run lock file maintenance (updates) early Monday mornings", - "lockFileMaintenance": {"enabled": true, "extends": "schedule:weekly"} - }, - "masterIssue": { - "description": "Enable Renovate master issue creation", - "masterIssue": true - }, - "masterIssueApproval": { - "description": "Enable Renovate master issue approval workflow", - "masterIssueApproval": true - }, - "meteor": { - "description": "Keep Meteor Npm.depends packages updated", - "meteor": {"enabled": true} - }, - "noUnscheduledUpdates": { - "description": "Make no updates to branches when not scheduled", - "updateNotScheduled": false - }, - "npm": { - "description": "Keep package.json npm dependencies updated", - "npm": {"enabled": true} - }, - "onlyNpm": { - "description": "Renovate only npm dependencies", - "docker": {"enabled": false}, - "meteor": {"enabled": false} - }, - "pathSemanticCommitType": { - "description": "Use semanticCommitType {{arg0}} for all package files matching path {{arg1}}", - "packageRules": [ - {"paths": ["{{arg0}}"], "semanticCommitType": "{{arg1}}"} - ] - }, - "pinAllExceptPeerDependencies": { - "description": "Pin dependency versions for all except <code>peerDependencies</code>", - "packageRules": [ - {"packagePatterns": ["*"], "rangeStrategy": "pin"}, - { - "depTypeList": ["engines", "peerDependencies"], - "rangeStrategy": "auto" - } - ] - }, - "pinDependencies": { - "description": "Pin dependency versions for <code>dependencies</code>", - "packageRules": [ - {"depTypeList": ["dependencies"], "rangeStrategy": "pin"} - ] - }, - "pinDevDependencies": { - "description": "Pin dependency versions for <code>devDependencies</code>", - "packageRules": [ - {"depTypeList": ["devDependencies"], "rangeStrategy": "pin"} - ] - }, - "pinDigestsDisabled": { - "description": "Disable pinning of docker dependency digests", - "pinDigests": false - }, - "pinOnlyDevDependencies": { - "description": "Pin dependency versions for <code>devDependencies</code> and retain semver ranges for others", - "packageRules": [ - {"packagePatterns": ["*"], "rangeStrategy": "replace"}, - {"depTypeList": ["devDependencies"], "rangeStrategy": "pin"}, - {"depTypeList": ["peerDependencies"], "rangeStrategy": "widen"} - ] - }, - "pinSkipCi": { - "description": "Add [skip ci] to commit message body whenever pinning", - "pin": {"commitBody": "[skip ci]"} - }, - "pinVersions": { - "description": "Use version pinning (maintain a single version only and not semver ranges)", - "rangeStrategy": "pin" - }, - "prConcurrentLimit10": { - "description": "Limit to maximum 10 open PRs", - "prConcurrentLimit": 10 - }, - "prConcurrentLimit20": { - "description": "Limit to maximum 20 open PRs at any time", - "prConcurrentLimit": 20 - }, - "prConcurrentLimitNone": { - "description": "Remove limit for open PRs", - "prConcurrentLimit": 0 - }, - "prHourlyLimit1": { - "description": "Rate limit PR creation to a maximum of one per hour", - "prHourlyLimit": 1 - }, - "prHourlyLimit2": { - "description": "Rate limit PR creation to a maximum of two per hour", - "prHourlyLimit": 2 - }, - "prHourlyLimit4": { - "description": "Rate limit PR creation to a maximum of four per hour", - "prHourlyLimit": 4 - }, - "prHourlyLimitNone": { - "description": "Removes rate limit for PR creation per hour", - "prHourlyLimit": 0 - }, - "prImmediately": { - "description": "Raise PRs immediately (after branch is created)", - "prCreation": "immediate" - }, - "prNotPending": { - "description": "Wait until branch tests have passed or failed before creating the PR", - "prCreation": "not-pending" - }, - "preserveSemverRanges": { - "description": "Preserve (but continue to upgrade) any existing semver ranges", - "rangeStrategy": "replace" - }, - "rebaseStalePrs": { - "description": "Rebase existing PRs any time the base branch has been updated", - "rebaseStalePrs": true - }, - "renovatePrefix": { - "branchPrefix": "renovate/", - "description": "Use <code>renovate/</code> as prefix for all branch names" - }, - "respectLatest": { - "description": "Upgrade versions up to the \"latest\" tag in npm registry", - "respectLatest": true - }, - "reviewer": { - "description": "Add <code>{{arg0}}</code> as reviewer for PRs", - "reviewers": ["{{arg0}}"] - }, - "semanticCommitScope": { - "description": "Use semantic commit scope <code>{{arg0}}</code> for all commits and PR titles", - "semanticCommitScope": "{{arg0}}" - }, - "semanticCommitScopeDisabled": { - "description": "Disable semantic commit scope for all commits and PR titles", - "semanticCommitScope": null - }, - "semanticCommitType": { - "description": "Use <code>{{arg0}}</code> as semantic commit type for commit messages and PR titles", - "semanticCommitType": "{{arg0}}" - }, - "semanticCommitTypeAll": { - "description": "If semantic commits detected, use semantic commit type <code>{{arg0}}</code> for all", - "packageRules": [ - {"packagePatterns": ["*"], "semanticCommitType": "{{arg0}}"} - ] - }, - "semanticCommits": { - "description": "Use semantic prefixes for commit messages and PR titles", - "semanticCommits": true - }, - "semanticCommitsDisabled": { - "description": "Disable semantic prefixes for commit messages and PR titles", - "semanticCommits": false - }, - "semanticPrefixChore": { - "description": "Use <code>chore</code> as semantic commit type for commit messages and PR titles", - "extends": [":semanticCommitType(chore)"] - }, - "semanticPrefixFix": { - "description": "Use <code>fix</code> as semantic commit type for commit messages and PR titles", - "extends": [":semanticCommitType(fix)"] - }, - "semanticPrefixFixDepsChoreOthers": { - "description": "If semantic commits detected, use semantic commit type <code>fix</code> for dependencies and <code>chore</code> for all others", - "packageRules": [ - {"packagePatterns": ["*"], "semanticCommitType": "chore"}, - {"depTypeList": ["dependencies"], "semanticCommitType": "fix"} - ] - }, - "separateMajorReleases": { - "description": "Separate major versions of dependencies into individual branches/PRs", - "separateMajorMinor": true - }, - "separateMultipleMajorReleases": { - "description": "Separate each available major versions of dependencies into individual branches/PRs", - "separateMajorMinor": true, - "separateMultipleMajor": true - }, - "separatePatchReleases": { - "description": "Separate patch and minor releases of dependencies into separate PRs", - "separateMinorPatch": true - }, - "skipStatusChecks": { - "description": "Skip status checks and automerge right away", - "requiredStatusChecks": null - }, - "timezone": { - "description": "Evaluate schedules according to timezone {{arg0}}", - "timezone": "{{arg0}}" - }, - "unpublishSafe": { - "description": "Set a status check to warn when upgrades < 24 hours old might get unpublished", - "unpublishSafe": true - }, - "unpublishSafeDisabled": { - "description": "Create branches/PRs for dependency upgrades as soon as they're available", - "unpublishSafe": false - }, - "updateNotScheduled": { - "description": "Keep existing branches updated even when not scheduled", - "updateNotScheduled": true - }, - "widenPeerDependencies": { - "description": "Always widen peerDependencies semver ranges when updating, instead of replacing", - "packageRules": [ - {"depTypeList": ["peerDependencies"], "versionStrategy": "widen"} - ] - } - }, - "docker": { - "disable": { - "circleci": {"enabled": false}, - "docker": {"enabled": false}, - "docker-compose": {"enabled": false} - }, - "disableMajor": {"docker": {"major": {"enabled": false}}}, - "enableMajor": {"docker": {"major": {"enabled": true}}}, - "pinDigests": { - "description": "Pin Docker digests", - "docker": {"pinDigests": true} - } - }, - "group": { - "SwashbuckleMonorepo": { - "packageRules": [ - { - "description": "Group packages from Swashbuckle monorepo together", - "extends": "monorepo:Swashbuckle", - "groupName": "Swashbuckle monorepo" - } - ] - }, - "accountsMonorepo": { - "packageRules": [ - { - "description": "Group packages from accounts monorepo together", - "extends": "monorepo:accounts", - "groupName": "accounts monorepo" - } - ] - }, - "ag-gridMonorepo": { - "packageRules": [ - { - "description": "Group packages from ag-grid monorepo together", - "extends": "monorepo:ag-grid", - "groupName": "ag-grid monorepo" - } - ] - }, - "algolia-react-instantsearchMonorepo": { - "packageRules": [ - { - "description": "Group packages from algolia-react-instantsearch monorepo together", - "extends": "monorepo:algolia-react-instantsearch", - "groupName": "algolia-react-instantsearch monorepo" - } - ] - }, - "all": { - "description": "Group all updates together", - "groupName": "all dependencies", - "groupSlug": "all", - "lockFileMaintenance": {"enabled": false}, - "packageRules": [ - { - "packagePatterns": ["*"], - "groupName": "all dependencies", - "groupSlug": "all" - } - ], - "separateMajorMinor": false - }, - "allApollographql": { - "description": "Group all packages published by Apollo GraphQL together", - "packageRules": [ - { - "extends": "packages:apollographql", - "groupName": "Apollo GraphQL packages" - } - ] - }, - "allNonMajor": { - "description": "Group all minor and patch updates together", - "packageRules": [ - { - "packagePatterns": ["*"], - "minor": { - "groupName": "all non-major dependencies", - "groupSlug": "all-minor-patch" - } - } - ] - }, - "angular1Monorepo": { - "packageRules": [ - { - "description": "Group packages from angular1 monorepo together", - "extends": "monorepo:angular1", - "groupName": "angular1 monorepo" - } - ] - }, - "angularMonorepo": { - "packageRules": [ - { - "description": "Group packages from angular monorepo together", - "extends": "monorepo:angular", - "groupName": "angular monorepo" - } - ] - }, - "angularcliMonorepo": { - "packageRules": [ - { - "description": "Group packages from angularcli monorepo together", - "extends": "monorepo:angularcli", - "groupName": "angularcli monorepo" - } - ] - }, - "angularmaterialMonorepo": { - "packageRules": [ - { - "description": "Group packages from angularmaterial monorepo together", - "extends": "monorepo:angularmaterial", - "groupName": "angularmaterial monorepo" - } - ] - }, - "apollo-serverMonorepo": { - "packageRules": [ - { - "description": "Group packages from apollo-server monorepo together", - "extends": "monorepo:apollo-server", - "groupName": "apollo-server monorepo" - } - ] - }, - "apolloclientMonorepo": { - "packageRules": [ - { - "description": "Group packages from apolloclient monorepo together", - "extends": "monorepo:apolloclient", - "groupName": "apolloclient monorepo" - } - ] - }, - "apollolinkMonorepo": { - "packageRules": [ - { - "description": "Group packages from apollolink monorepo together", - "extends": "monorepo:apollolink", - "groupName": "apollolink monorepo" - } - ] - }, - "arcus background-jobsMonorepo": { - "packageRules": [ - { - "description": "Group packages from arcus background-jobs monorepo together", - "extends": "monorepo:arcus background-jobs", - "groupName": "arcus background-jobs monorepo" - } - ] - }, - "arcus event-gridMonorepo": { - "packageRules": [ - { - "description": "Group packages from arcus event-grid monorepo together", - "extends": "monorepo:arcus event-grid", - "groupName": "arcus event-grid monorepo" - } - ] - }, - "arcus messagingMonorepo": { - "packageRules": [ - { - "description": "Group packages from arcus messaging monorepo together", - "extends": "monorepo:arcus messaging", - "groupName": "arcus messaging monorepo" - } - ] - }, - "arcus observabilityMonorepo": { - "packageRules": [ - { - "description": "Group packages from arcus observability monorepo together", - "extends": "monorepo:arcus observability", - "groupName": "arcus observability monorepo" - } - ] - }, - "arcus securityMonorepo": { - "packageRules": [ - { - "description": "Group packages from arcus security monorepo together", - "extends": "monorepo:arcus security", - "groupName": "arcus security monorepo" - } - ] - }, - "arcus webapiMonorepo": { - "packageRules": [ - { - "description": "Group packages from arcus webapi monorepo together", - "extends": "monorepo:arcus webapi", - "groupName": "arcus webapi monorepo" - } - ] - }, - "aspnet AspNetWebStackMonorepo": { - "packageRules": [ - { - "description": "Group packages from aspnet AspNetWebStack monorepo together", - "extends": "monorepo:aspnet AspNetWebStack", - "groupName": "aspnet AspNetWebStack monorepo" - } - ] - }, - "aspnet ExtensionsMonorepo": { - "packageRules": [ - { - "description": "Group packages from aspnet Extensions monorepo together", - "extends": "monorepo:aspnet Extensions", - "groupName": "aspnet Extensions monorepo" - } - ] - }, - "aws-cdkMonorepo": { - "packageRules": [ - { - "description": "Group packages from aws-cdk monorepo together", - "extends": "monorepo:aws-cdk", - "groupName": "aws-cdk monorepo" - } - ] - }, - "aws-java-sdkMonorepo": { - "packageRules": [ - { - "description": "Group packages from aws-java-sdk monorepo together", - "extends": "monorepo:aws-java-sdk", - "groupName": "aws-java-sdk monorepo" - } - ] - }, - "awsappsyncMonorepo": { - "packageRules": [ - { - "description": "Group packages from awsappsync monorepo together", - "extends": "monorepo:awsappsync", - "groupName": "awsappsync monorepo" - } - ] - }, - "azure azure-libraries-for-netMonorepo": { - "packageRules": [ - { - "description": "Group packages from azure azure-libraries-for-net monorepo together", - "extends": "monorepo:azure azure-libraries-for-net", - "groupName": "azure azure-libraries-for-net monorepo" - } - ] - }, - "azure azure-sdk-for-netMonorepo": { - "packageRules": [ - { - "description": "Group packages from azure azure-sdk-for-net monorepo together", - "extends": "monorepo:azure azure-sdk-for-net", - "groupName": "azure azure-sdk-for-net monorepo" - } - ] - }, - "azure azure-storage-netMonorepo": { - "packageRules": [ - { - "description": "Group packages from azure azure-storage-net monorepo together", - "extends": "monorepo:azure azure-storage-net", - "groupName": "azure azure-storage-net monorepo" - } - ] - }, - "babel6Monorepo": { - "packageRules": [ - { - "description": "Group packages from babel6 monorepo together", - "extends": "monorepo:babel6", - "groupName": "babel6 monorepo" - } - ] - }, - "babelMonorepo": { - "packageRules": [ - { - "description": "Group packages from babel monorepo together", - "extends": "monorepo:babel", - "groupName": "babel monorepo" - } - ] - }, - "basetMonorepo": { - "packageRules": [ - { - "description": "Group packages from baset monorepo together", - "extends": "monorepo:baset", - "groupName": "baset monorepo" - } - ] - }, - "braveMonorepo": { - "packageRules": [ - { - "description": "Group packages from brave monorepo together", - "extends": "monorepo:brave", - "groupName": "brave monorepo" - } - ] - }, - "bugsnag-jsMonorepo": { - "packageRules": [ - { - "description": "Group packages from bugsnag-js monorepo together", - "extends": "monorepo:bugsnag-js", - "groupName": "bugsnag-js monorepo" - } - ] - }, - "capacitorMonorepo": { - "packageRules": [ - { - "description": "Group packages from capacitor monorepo together", - "extends": "monorepo:capacitor", - "groupName": "capacitor monorepo" - } - ] - }, - "clarityMonorepo": { - "packageRules": [ - { - "description": "Group packages from clarity monorepo together", - "extends": "monorepo:clarity", - "groupName": "clarity monorepo" - } - ] - }, - "commitlintMonorepo": { - "packageRules": [ - { - "description": "Group packages from commitlint monorepo together", - "extends": "monorepo:commitlint", - "groupName": "commitlint monorepo" - } - ] - }, - "definitelyTyped": { - "description": "Group all @types packages together", - "packageRules": [ - {"groupName": "definitelyTyped", "packagePatterns": ["^@types/"]} - ] - }, - "devextreme-reactiveMonorepo": { - "packageRules": [ - { - "description": "Group packages from devextreme-reactive monorepo together", - "extends": "monorepo:devextreme-reactive", - "groupName": "devextreme-reactive monorepo" - } - ] - }, - "dotNetCore": { - "description": ".NET Core Docker containers", - "packageRules": [ - { - "datasources": ["docker"], - "packagePatterns": ["^mcr.microsoft.com/dotnet/core/"], - "groupName": ".NET Core Docker containers" - } - ] - }, - "dropwizardMonorepo": { - "packageRules": [ - { - "description": "Group packages from dropwizard monorepo together", - "extends": "monorepo:dropwizard", - "groupName": "dropwizard monorepo" - } - ] - }, - "electron-forgeMonorepo": { - "packageRules": [ - { - "description": "Group packages from electron-forge monorepo together", - "extends": "monorepo:electron-forge", - "groupName": "electron-forge monorepo" - } - ] - }, - "ember-decoratorsMonorepo": { - "packageRules": [ - { - "description": "Group packages from ember-decorators monorepo together", - "extends": "monorepo:ember-decorators", - "groupName": "ember-decorators monorepo" - } - ] - }, - "emotionMonorepo": { - "packageRules": [ - { - "description": "Group packages from emotion monorepo together", - "extends": "monorepo:emotion", - "groupName": "emotion monorepo" - } - ] - }, - "expoMonorepo": { - "packageRules": [ - { - "description": "Group packages from expo monorepo together", - "extends": "monorepo:expo", - "groupName": "expo monorepo" - } - ] - }, - "fimbullinterMonorepo": { - "packageRules": [ - { - "description": "Group packages from fimbullinter monorepo together", - "extends": "monorepo:fimbullinter", - "groupName": "fimbullinter monorepo" - } - ] - }, - "flopflipMonorepo": { - "packageRules": [ - { - "description": "Group packages from flopflip monorepo together", - "extends": "monorepo:flopflip", - "groupName": "flopflip monorepo" - } - ] - }, - "fortawesome": { - "description": "Group all packages by Font Awesome together", - "packageRules": [ - {"groupName": "Font Awesome", "packagePatterns": ["^@fortawesome/"]} - ] - }, - "framework7Monorepo": { - "packageRules": [ - { - "description": "Group packages from framework7 monorepo together", - "extends": "monorepo:framework7", - "groupName": "framework7 monorepo" - } - ] - }, - "fusionjs": { - "description": "Fusion.js packages", - "packageNames": [ - "fusion-cli", - "fusion-core", - "fusion-test-utils", - "fusion-tokens" - ], - "packagePatterns": [ - "^fusion-plugin-*", - "^fusion-react*", - "^fusion-apollo*" - ] - }, - "gatsbyMonorepo": { - "packageRules": [ - { - "description": "Group packages from gatsby monorepo together", - "extends": "monorepo:gatsby", - "groupName": "gatsby monorepo" - } - ] - }, - "goOpenapi": { - "description": "Group go-openapi packages together", - "packageRules": [ - { - "datasources": ["go"], - "groupName": "go-openapi packages", - "groupSlug": "go-openapi", - "packagePatterns": ["^github.com/go-openapi/"] - } - ] - }, - "graphql-modulesMonorepo": { - "packageRules": [ - { - "description": "Group packages from graphql-modules monorepo together", - "extends": "monorepo:graphql-modules", - "groupName": "graphql-modules monorepo" - } - ] - }, - "graphql-toolkitMonorepo": { - "packageRules": [ - { - "description": "Group packages from graphql-toolkit monorepo together", - "extends": "monorepo:graphql-toolkit", - "groupName": "graphql-toolkit monorepo" - } - ] - }, - "graphqlcodegeneratorMonorepo": { - "packageRules": [ - { - "description": "Group packages from graphqlcodegenerator monorepo together", - "extends": "monorepo:graphqlcodegenerator", - "groupName": "graphqlcodegenerator monorepo" - } - ] - }, - "hamcrestMonorepo": { - "packageRules": [ - { - "description": "Group packages from hamcrest monorepo together", - "extends": "monorepo:hamcrest", - "groupName": "hamcrest monorepo" - } - ] - }, - "hapijsMonorepo": { - "packageRules": [ - { - "description": "Group packages from hapijs monorepo together", - "extends": "monorepo:hapijs", - "groupName": "hapijs monorepo" - } - ] - }, - "hibernateCommons": { - "description": "Group Java Hibernate Commons packages", - "packageRules": [ - { - "packagePatterns": ["^org.hibernate.common:"], - "groupName": "hibernate commons" - } - ] - }, - "hibernateCore": { - "description": "Group Java Hibernate Core packages", - "packageRules": [ - {"packagePatterns": ["^org.hibernate:"], "groupName": "hibernate core"} - ] - }, - "hibernateOgm": { - "description": "Group Java Hibernate OGM packages", - "packageRules": [ - { - "packagePatterns": ["^org.hibernate.ogm:"], - "groupName": "hibernate ogm" - } - ] - }, - "hibernateValidator": { - "description": "Group Java Hibernate Validator packages", - "packageRules": [ - { - "packagePatterns": ["^org.hibernate.validator:"], - "groupName": "hibernate validator" - } - ] - }, - "illuminate": { - "description": "Group PHP illuminate packages together", - "packageRules": [ - { - "packagePatterns": ["^illuminate/"], - "groupName": "illuminate packages", - "groupSlug": "illuminate" - } - ] - }, - "infrastructureMonorepo": { - "packageRules": [ - { - "description": "Group packages from infrastructure monorepo together", - "extends": "monorepo:infrastructure", - "groupName": "infrastructure monorepo" - } - ] - }, - "ionic-nativeMonorepo": { - "packageRules": [ - { - "description": "Group packages from ionic-native monorepo together", - "extends": "monorepo:ionic-native", - "groupName": "ionic-native monorepo" - } - ] - }, - "jasmineMonorepo": { - "packageRules": [ - { - "description": "Group packages from jasmine monorepo together", - "extends": "monorepo:jasmine", - "groupName": "jasmine monorepo" - } - ] - }, - "jekyllEcosystem": { - "description": "Group jekyll and related ruby packages together", - "packageRules": [ - { - "sourceUrlPrefixes": [ - "https://github.com/jekyll/", - "https://github.com/github/pages-gem" - ], - "groupName": "jekyll ecosystem packages" - } - ] - }, - "jerseyMonorepo": { - "packageRules": [ - { - "description": "Group packages from jersey monorepo together", - "extends": "monorepo:jersey", - "groupName": "jersey monorepo" - } - ] - }, - "jestMonorepo": { - "packageRules": [ - { - "description": "Group packages from jest monorepo together", - "extends": "monorepo:jest", - "groupName": "jest monorepo" - } - ] - }, - "jsTest": { - "description": "Group JS test packages together", - "packageRules": [ - {"extends": "packages:jsTest", "groupName": "JS test packages"} - ] - }, - "jsTestMonMajor": { - "description": "Group non-major JS test package updates together", - "packageRules": [ - { - "extends": "packages:jsTest", - "minor": {"groupName": "JS test packages"} - } - ] - }, - "jsUnitTest": { - "description": "Group JS unit test packages together", - "packageRules": [ - {"extends": "packages:jsUnitTest", "groupName": "JS unit test packages"} - ] - }, - "jsUnitTestNonMajor": { - "description": "Group JS unit test packages together", - "packageRules": [ - { - "extends": "packages:jsUnitTest", - "minor": {"groupName": "JS unit test packages"} - } - ] - }, - "lernaMonorepo": { - "packageRules": [ - { - "description": "Group packages from lerna monorepo together", - "extends": "monorepo:lerna", - "groupName": "lerna monorepo" - } - ] - }, - "linguiMonorepo": { - "packageRules": [ - { - "description": "Group packages from lingui monorepo together", - "extends": "monorepo:lingui", - "groupName": "lingui monorepo" - } - ] - }, - "linters": { - "description": "Group various lint packages together", - "packageRules": [{"extends": "packages:linters", "groupName": "linters"}] - }, - "lodashMonorepo": { - "packageRules": [ - { - "description": "Group packages from lodash monorepo together", - "extends": "monorepo:lodash", - "groupName": "lodash monorepo" - } - ] - }, - "loopbackMonorepo": { - "packageRules": [ - { - "description": "Group packages from loopback monorepo together", - "extends": "monorepo:loopback", - "groupName": "loopback monorepo" - } - ] - }, - "materialMonorepo": { - "packageRules": [ - { - "description": "Group packages from material monorepo together", - "extends": "monorepo:material", - "groupName": "material monorepo" - } - ] - }, - "mdc-reactMonorepo": { - "packageRules": [ - { - "description": "Group packages from mdc-react monorepo together", - "extends": "monorepo:mdc-react", - "groupName": "mdc-react monorepo" - } - ] - }, - "mdxMonorepo": { - "packageRules": [ - { - "description": "Group packages from mdx monorepo together", - "extends": "monorepo:mdx", - "groupName": "mdx monorepo" - } - ] - }, - "monorepos": { - "description": "Group known monorepo packages together", - "extends": [ - "group:ag-gridMonorepo", - "group:arcus event-gridMonorepo", - "group:arcus securityMonorepo", - "group:arcus messagingMonorepo", - "group:arcus observabilityMonorepo", - "group:arcus webapiMonorepo", - "group:arcus background-jobsMonorepo", - "group:algolia-react-instantsearchMonorepo", - "group:apollo-serverMonorepo", - "group:aspnet AspNetWebStackMonorepo", - "group:aspnet ExtensionsMonorepo", - "group:aws-cdkMonorepo", - "group:azure azure-libraries-for-netMonorepo", - "group:azure azure-sdk-for-netMonorepo", - "group:azure azure-storage-netMonorepo", - "group:bugsnag-jsMonorepo", - "group:devextreme-reactiveMonorepo", - "group:electron-forgeMonorepo", - "group:ember-decoratorsMonorepo", - "group:graphql-modulesMonorepo", - "group:ionic-nativeMonorepo", - "group:mdc-reactMonorepo", - "group:ngx-formlyMonorepo", - "group:ngxs-storeMonorepo", - "group:react-apolloMonorepo", - "group:react-dndMonorepo", - "group:react-navigationMonorepo", - "group:reactivestack-cookiesMonorepo", - "group:semantic-releaseMonorepo", - "group:telus-tdsMonorepo", - "group:typescript-eslintMonorepo", - "group:typography-jsMonorepo", - "group:vue-cliMonorepo", - "group:accountsMonorepo", - "group:angular1Monorepo", - "group:angularMonorepo", - "group:angularcliMonorepo", - "group:apolloclientMonorepo", - "group:apollolinkMonorepo", - "group:awsappsyncMonorepo", - "group:babelMonorepo", - "group:basetMonorepo", - "group:braveMonorepo", - "group:capacitorMonorepo", - "group:clarityMonorepo", - "group:commitlintMonorepo", - "group:dropwizardMonorepo", - "group:emotionMonorepo", - "group:expoMonorepo", - "group:fimbullinterMonorepo", - "group:flopflipMonorepo", - "group:framework7Monorepo", - "group:gatsbyMonorepo", - "group:graphqlcodegeneratorMonorepo", - "group:graphql-toolkitMonorepo", - "group:hamcrestMonorepo", - "group:hapijsMonorepo", - "group:infrastructureMonorepo", - "group:jasmineMonorepo", - "group:jerseyMonorepo", - "group:jestMonorepo", - "group:lernaMonorepo", - "group:linguiMonorepo", - "group:lodashMonorepo", - "group:loopbackMonorepo", - "group:materialMonorepo", - "group:mdxMonorepo", - "group:muiMonorepo", - "group:nestMonorepo", - "group:neutrinoMonorepo", - "group:nextjsMonorepo", - "group:ngrxMonorepo", - "group:nrwlMonorepo", - "group:nuxtjsMonorepo", - "group:openfeignMonorepo", - "group:picassoMonorepo", - "group:pollyjsMonorepo", - "group:pouchdbMonorepo", - "group:reactMonorepo", - "group:reactrouterMonorepo", - "group:reakitMonorepo", - "group:remarkMonorepo", - "group:router5Monorepo", - "group:sentryMonorepo", - "group:springfoxMonorepo", - "group:sanityMonorepo", - "group:storybookMonorepo", - "group:strapiMonorepo", - "group:strykerMonorepo", - "group:surveyjsMonorepo", - "group:SwashbuckleMonorepo", - "group:treatMonorepo", - "group:typefacesMonorepo", - "group:uppyMonorepo", - "group:vueMonorepo", - "group:vuepressMonorepo", - "group:webdriverioMonorepo", - "group:workboxMonorepo", - "group:babel6Monorepo", - "group:wordpressMonorepo", - "group:angularmaterialMonorepo", - "group:aws-java-sdkMonorepo" - ], - "ignoreDeps": [] - }, - "muiMonorepo": { - "packageRules": [ - { - "description": "Group packages from mui monorepo together", - "extends": "monorepo:mui", - "groupName": "mui monorepo" - } - ] - }, - "nestMonorepo": { - "packageRules": [ - { - "description": "Group packages from nest monorepo together", - "extends": "monorepo:nest", - "groupName": "nest monorepo" - } - ] - }, - "neutrinoMonorepo": { - "packageRules": [ - { - "description": "Group packages from neutrino monorepo together", - "extends": "monorepo:neutrino", - "groupName": "neutrino monorepo" - } - ] - }, - "nextjsMonorepo": { - "packageRules": [ - { - "description": "Group packages from nextjs monorepo together", - "extends": "monorepo:nextjs", - "groupName": "nextjs monorepo" - } - ] - }, - "ngrxMonorepo": { - "packageRules": [ - { - "description": "Group packages from ngrx monorepo together", - "extends": "monorepo:ngrx", - "groupName": "ngrx monorepo" - } - ] - }, - "ngx-formlyMonorepo": { - "packageRules": [ - { - "description": "Group packages from ngx-formly monorepo together", - "extends": "monorepo:ngx-formly", - "groupName": "ngx-formly monorepo" - } - ] - }, - "ngxs-storeMonorepo": { - "packageRules": [ - { - "description": "Group packages from ngxs-store monorepo together", - "extends": "monorepo:ngxs-store", - "groupName": "ngxs-store monorepo" - } - ] - }, - "nrwlMonorepo": { - "packageRules": [ - { - "description": "Group packages from nrwl monorepo together", - "extends": "monorepo:nrwl", - "groupName": "nrwl monorepo" - } - ] - }, - "nuxtjsMonorepo": { - "packageRules": [ - { - "description": "Group packages from nuxtjs monorepo together", - "extends": "monorepo:nuxtjs", - "groupName": "nuxtjs monorepo" - } - ] - }, - "openfeignMonorepo": { - "packageRules": [ - { - "description": "Group packages from openfeign monorepo together", - "extends": "monorepo:openfeign", - "groupName": "openfeign monorepo" - } - ] - }, - "picassoMonorepo": { - "packageRules": [ - { - "description": "Group packages from picasso monorepo together", - "extends": "monorepo:picasso", - "groupName": "picasso monorepo" - } - ] - }, - "pollyjsMonorepo": { - "packageRules": [ - { - "description": "Group packages from pollyjs monorepo together", - "extends": "monorepo:pollyjs", - "groupName": "pollyjs monorepo" - } - ] - }, - "polymer": { - "description": "Group all @polymer packages together", - "packageRules": [ - {"groupName": "polymer packages", "packagePatterns": ["^@polymer/"]} - ] - }, - "postcss": { - "description": "Group postcss packages together", - "packageRules": [ - {"extends": "packages:postcss", "groupName": "postcss packages"} - ] - }, - "pouchdbMonorepo": { - "packageRules": [ - { - "description": "Group packages from pouchdb monorepo together", - "extends": "monorepo:pouchdb", - "groupName": "pouchdb monorepo" - } - ] - }, - "react-apolloMonorepo": { - "packageRules": [ - { - "description": "Group packages from react-apollo monorepo together", - "extends": "monorepo:react-apollo", - "groupName": "react-apollo monorepo" - } - ] - }, - "react-dndMonorepo": { - "packageRules": [ - { - "description": "Group packages from react-dnd monorepo together", - "extends": "monorepo:react-dnd", - "groupName": "react-dnd monorepo" - } - ] - }, - "react-navigationMonorepo": { - "packageRules": [ - { - "description": "Group packages from react-navigation monorepo together", - "extends": "monorepo:react-navigation", - "groupName": "react-navigation monorepo" - } - ] - }, - "reactMonorepo": { - "packageRules": [ - { - "description": "Group packages from react monorepo together", - "extends": "monorepo:react", - "groupName": "react monorepo" - } - ] - }, - "reactivestack-cookiesMonorepo": { - "packageRules": [ - { - "description": "Group packages from reactivestack-cookies monorepo together", - "extends": "monorepo:reactivestack-cookies", - "groupName": "reactivestack-cookies monorepo" - } - ] - }, - "reactrouterMonorepo": { - "packageRules": [ - { - "description": "Group packages from reactrouter monorepo together", - "extends": "monorepo:reactrouter", - "groupName": "reactrouter monorepo" - } - ] - }, - "reakitMonorepo": { - "packageRules": [ - { - "description": "Group packages from reakit monorepo together", - "extends": "monorepo:reakit", - "groupName": "reakit monorepo" - } - ] - }, - "recommended": { - "description": "Use curated list of recommended non-monorepo package groupings", - "extends": [ - "group:allApollographql", - "group:fortawesome", - "group:goOpenapi", - "group:fusionjs", - "group:hibernateCore", - "group:hibernateValidator", - "group:hibernateOgm", - "group:hibernateCommons", - "group:illuminate", - "group:jekyllEcosystem", - "group:polymer", - "group:rubyOmniauth", - "group:socketio", - "group:springAmqp", - "group:springAndroid", - "group:springBatch", - "group:springBoot", - "group:springCloud", - "group:springCore", - "group:springData", - "group:springHateoas", - "group:springIntegration", - "group:springKafka", - "group:springLdap", - "group:springMobile", - "group:springOsgi", - "group:springRestDocs", - "group:springRoo", - "group:springScala", - "group:springSecurity", - "group:springSession", - "group:springShell", - "group:springSocial", - "group:springStatemachine", - "group:springWebflow", - "group:springWs", - "group:symfony" - ], - "ignoreDeps": [] - }, - "remarkMonorepo": { - "packageRules": [ - { - "description": "Group packages from remark monorepo together", - "extends": "monorepo:remark", - "groupName": "remark monorepo" - } - ] - }, - "router5Monorepo": { - "packageRules": [ - { - "description": "Group packages from router5 monorepo together", - "extends": "monorepo:router5", - "groupName": "router5 monorepo" - } - ] - }, - "rubyOmniauth": { - "description": "Group omniauth packages together", - "packageRules": [ - { - "datasources": ["rubygems"], - "packagePatterns": ["^omniauth"], - "groupName": "omniauth packages" - } - ] - }, - "sanityMonorepo": { - "packageRules": [ - { - "description": "Group packages from sanity monorepo together", - "extends": "monorepo:sanity", - "groupName": "sanity monorepo" - } - ] - }, - "semantic-releaseMonorepo": { - "packageRules": [ - { - "description": "Group packages from semantic-release monorepo together", - "extends": "monorepo:semantic-release", - "groupName": "semantic-release monorepo" - } - ] - }, - "sentryMonorepo": { - "packageRules": [ - { - "description": "Group packages from sentry monorepo together", - "extends": "monorepo:sentry", - "groupName": "sentry monorepo" - } - ] - }, - "socketio": { - "description": "Group socket.io packages", - "packageRules": [ - {"groupName": "socket.io packages", "packagePatterns": ["^socket.io"]} - ] - }, - "springAmqp": { - "description": "Group Java Spring AMQP packages", - "packageRules": [ - { - "groupName": "spring amqp", - "packagePatterns": ["^org.springframework.amqp:"] - } - ] - }, - "springAndroid": { - "description": "Group Java Spring Android packages", - "packageRules": [ - { - "groupName": "spring android", - "packagePatterns": ["^org.springframework.android:"] - } - ] - }, - "springBatch": { - "description": "Group Java Spring Batch packages", - "packageRules": [ - { - "groupName": "spring batch", - "packagePatterns": ["^org.springframework.batch:"] - } - ] - }, - "springBoot": { - "description": "Group Java Spring Boot packages", - "packageRules": [ - { - "groupName": "spring boot", - "packagePatterns": ["^org.springframework.boot:"] - } - ] - }, - "springCloud": { - "description": "Group Java Spring Cloud packages", - "packageRules": [ - { - "groupName": "spring cloud", - "packagePatterns": ["^org.springframework.cloud:"] - } - ] - }, - "springCore": { - "description": "Group Java Spring Core packages", - "packageRules": [ - { - "groupName": "spring core", - "packagePatterns": ["^org.springframework:"] - } - ] - }, - "springData": { - "description": "Group Java Spring Data packages", - "packageRules": [ - { - "groupName": "spring data", - "packagePatterns": ["^org.springframework.data:"] - } - ] - }, - "springHateoas": { - "description": "Group Java Spring HATEOAS packages", - "packageRules": [ - { - "groupName": "spring hateoas", - "packagePatterns": ["^org.springframework.hateoas:"] - } - ] - }, - "springIntegration": { - "description": "Group Java Spring Integration packages", - "packageRules": [ - { - "groupName": "spring integration", - "packagePatterns": ["^org.springframework.integration:"] - } - ] - }, - "springKafka": { - "description": "Group Java Spring Kafka packages", - "packageRules": [ - { - "groupName": "spring kafka", - "packagePatterns": ["^org.springframework.kafka:"] - } - ] - }, - "springLdap": { - "description": "Group Java Spring LDAP packages", - "packageRules": [ - { - "groupName": "spring ldap", - "packagePatterns": ["^org.springframework.ldap:"] - } - ] - }, - "springMobile": { - "description": "Group Java Spring Mobile packages", - "packageRules": [ - { - "groupName": "spring mobile", - "packagePatterns": ["^org.springframework.mobile:"] - } - ] - }, - "springOsgi": { - "description": "Group Java Spring OSGi packages", - "packageRules": [ - { - "groupName": "spring osgi", - "packagePatterns": ["^org.springframework.osgi:"] - } - ] - }, - "springRestDocs": { - "description": "Group Java Spring REST Docs packages", - "packageRules": [ - { - "groupName": "spring restdocs", - "packagePatterns": ["^org.springframework.restdocs:"] - } - ] - }, - "springRoo": { - "description": "Group Java Spring Roo packages", - "packageRules": [ - { - "groupName": "spring roo", - "packagePatterns": ["^org.springframework.roo:"] - } - ] - }, - "springScala": { - "description": "Group Java Spring Scala packages", - "packageRules": [ - { - "groupName": "spring scala", - "packagePatterns": ["^org.springframework.scala:"] - } - ] - }, - "springSecurity": { - "description": "Group Java Spring Security packages", - "packageRules": [ - { - "groupName": "spring security", - "packagePatterns": ["^org.springframework.security:"] - } - ] - }, - "springSession": { - "description": "Group Java Spring Session packages", - "packageRules": [ - { - "groupName": "spring session", - "packagePatterns": ["^org.springframework.session:"] - } - ] - }, - "springShell": { - "description": "Group Java Spring Shell packages", - "packageRules": [ - { - "groupName": "spring shell", - "packagePatterns": ["^org.springframework.shell:"] - } - ] - }, - "springSocial": { - "description": "Group Java Spring Social packages", - "packageRules": [ - { - "groupName": "spring social", - "packagePatterns": ["^org.springframework.social:"] - } - ] - }, - "springStatemachine": { - "description": "Group Java Spring Statemachine packages", - "packageRules": [ - { - "groupName": "spring statemachine", - "packagePatterns": ["^org.springframework.statemachine:"] - } - ] - }, - "springWebflow": { - "description": "Group Java Spring WebFlow packages", - "packageRules": [ - { - "groupName": "spring webflow", - "packagePatterns": ["^org.springframework.webflow:"] - } - ] - }, - "springWs": { - "description": "Group Java Spring WS packages", - "packageRules": [ - { - "groupName": "spring ws", - "packagePatterns": ["^org.springframework.ws:"] - } - ] - }, - "springfoxMonorepo": { - "packageRules": [ - { - "description": "Group packages from springfox monorepo together", - "extends": "monorepo:springfox", - "groupName": "springfox monorepo" - } - ] - }, - "storybookMonorepo": { - "packageRules": [ - { - "description": "Group packages from storybook monorepo together", - "extends": "monorepo:storybook", - "groupName": "storybook monorepo" - } - ] - }, - "strapiMonorepo": { - "packageRules": [ - { - "description": "Group packages from strapi monorepo together", - "extends": "monorepo:strapi", - "groupName": "strapi monorepo" - } - ] - }, - "strykerMonorepo": { - "packageRules": [ - { - "description": "Group packages from stryker monorepo together", - "extends": "monorepo:stryker", - "groupName": "stryker monorepo" - } - ] - }, - "surveyjsMonorepo": { - "packageRules": [ - { - "description": "Group packages from surveyjs monorepo together", - "extends": "monorepo:surveyjs", - "groupName": "surveyjs monorepo" - } - ] - }, - "symfony": { - "description": "Group PHP symfony packages together", - "packageRules": [ - { - "packagePatterns": ["^symfony/"], - "groupName": "symfony packages", - "groupSlug": "symfony" - } - ] - }, - "telus-tdsMonorepo": { - "packageRules": [ - { - "description": "Group packages from telus-tds monorepo together", - "extends": "monorepo:telus-tds", - "groupName": "telus-tds monorepo" - } - ] - }, - "test": { - "description": "Group all test packages together", - "packageRules": [ - {"extends": "packages:test", "groupName": "test packages"} - ] - }, - "testNonMajor": { - "description": "Group all non-major test package updates together", - "packageRules": [ - {"extends": "packages:test", "minor": {"groupName": "test packages"}} - ] - }, - "treatMonorepo": { - "packageRules": [ - { - "description": "Group packages from treat monorepo together", - "extends": "monorepo:treat", - "groupName": "treat monorepo" - } - ] - }, - "typefacesMonorepo": { - "packageRules": [ - { - "description": "Group packages from typefaces monorepo together", - "extends": "monorepo:typefaces", - "groupName": "typefaces monorepo" - } - ] - }, - "typescript-eslintMonorepo": { - "packageRules": [ - { - "description": "Group packages from typescript-eslint monorepo together", - "extends": "monorepo:typescript-eslint", - "groupName": "typescript-eslint monorepo" - } - ] - }, - "typography-jsMonorepo": { - "packageRules": [ - { - "description": "Group packages from typography-js monorepo together", - "extends": "monorepo:typography-js", - "groupName": "typography-js monorepo" - } - ] - }, - "unitTest": { - "description": "Group all unit test packages together", - "packageRules": [ - {"extends": "packages:unitTest", "groupName": "unit test packages"} - ] - }, - "unitTestNonMajor": { - "description": "Group all unit test packages together", - "packageRules": [ - { - "extends": "packages:unitTest", - "minor": {"groupName": "unit test packages"} - } - ] - }, - "uppyMonorepo": { - "packageRules": [ - { - "description": "Group packages from uppy monorepo together", - "extends": "monorepo:uppy", - "groupName": "uppy monorepo" - } - ] - }, - "vue-cliMonorepo": { - "packageRules": [ - { - "description": "Group packages from vue-cli monorepo together", - "extends": "monorepo:vue-cli", - "groupName": "vue-cli monorepo" - } - ] - }, - "vueMonorepo": { - "packageRules": [ - { - "description": "Group packages from vue monorepo together", - "extends": "monorepo:vue", - "groupName": "vue monorepo" - } - ] - }, - "vuepressMonorepo": { - "packageRules": [ - { - "description": "Group packages from vuepress monorepo together", - "extends": "monorepo:vuepress", - "groupName": "vuepress monorepo" - } - ] - }, - "webdriverioMonorepo": { - "packageRules": [ - { - "description": "Group packages from webdriverio monorepo together", - "extends": "monorepo:webdriverio", - "groupName": "webdriverio monorepo" - } - ] - }, - "wordpressMonorepo": { - "packageRules": [ - { - "description": "Group packages from wordpress monorepo together", - "extends": "monorepo:wordpress", - "groupName": "wordpress monorepo" - } - ] - }, - "workboxMonorepo": { - "packageRules": [ - { - "description": "Group packages from workbox monorepo together", - "extends": "monorepo:workbox", - "groupName": "workbox monorepo" - } - ] - } - }, - "helpers": { - "disableTypesNodeMajor": { - "packageRules": [ - {"packageNames": ["@types/node"], "major": {"enabled": false}} - ] - }, - "followTypescriptNext": { - "description": "Keep <typescript> version in sync with the <code>next</code> tag", - "extends": [":followTag(typescript, next)"] - }, - "followTypescriptRc": { - "description": "Keep <typescript> version in sync with the <code>rc</code> tag", - "extends": [":followTag(typescript, rc)"] - }, - "oddIsUnstable": { - "description": "DEPRECATED: Odd version numbers are classified as unstable" - }, - "oddIsUnstablePackages": { - "description": "DEPRECATED: Preconfigure dependencies where an odd major version indicates unstable (Docker-only)" - } - }, - "monorepo": { - "Swashbuckle": { - "description": "Swashbuckle monorepo", - "sourceUrlPrefixes": [ - "https://github.com/domaindrivendev/Swashbuckle.AspNetCore" - ] - }, - "accounts": { - "description": "accounts monorepo", - "sourceUrlPrefixes": ["https://github.com/accounts-js/accounts"] - }, - "ag-grid": { - "description": "ag-grid monorepo", - "sourceUrlPrefixes": ["https://github.com/ag-grid/ag-grid"] - }, - "algolia-react-instantsearch": { - "description": "algolia-react-instantsearch monorepo", - "sourceUrlPrefixes": ["https://github.com/algolia/react-instantsearch"] - }, - "angular": { - "description": "angular monorepo", - "sourceUrlPrefixes": ["https://github.com/angular/angular"] - }, - "angular1": { - "description": "angular1 monorepo", - "sourceUrlPrefixes": ["https://github.com/angular/angular.js"] - }, - "angularcli": { - "description": "angularcli monorepo", - "sourceUrlPrefixes": ["https://github.com/angular/angular-cli"] - }, - "angularmaterial": { - "description": "angularmaterial monorepo", - "packagePatterns": ["^@angular/material", "^@angular/cdk"] - }, - "apollo-server": { - "description": "apollo-server monorepo", - "sourceUrlPrefixes": ["https://github.com/apollographql/apollo-server"] - }, - "apolloclient": { - "description": "apolloclient monorepo", - "sourceUrlPrefixes": ["https://github.com/apollographql/apollo-client"] - }, - "apollolink": { - "description": "apollolink monorepo", - "sourceUrlPrefixes": ["https://github.com/apollographql/apollo-link"] - }, - "arcus background-jobs": { - "description": "arcus background-jobs monorepo", - "sourceUrlPrefixes": [ - "https://github.com/arcus-azure/arcus.backgroundjobs" - ] - }, - "arcus event-grid": { - "description": "arcus event-grid monorepo", - "sourceUrlPrefixes": ["https://github.com/arcus-azure/arcus.eventgrid"] - }, - "arcus messaging": { - "description": "arcus messaging monorepo", - "sourceUrlPrefixes": ["https://github.com/arcus-azure/arcus.messaging"] - }, - "arcus observability": { - "description": "arcus observability monorepo", - "sourceUrlPrefixes": [ - "https://github.com/arcus-azure/arcus.observability" - ] - }, - "arcus security": { - "description": "arcus security monorepo", - "sourceUrlPrefixes": ["https://github.com/arcus-azure/arcus.security"] - }, - "arcus webapi": { - "description": "arcus webapi monorepo", - "sourceUrlPrefixes": ["https://github.com/arcus-azure/arcus.webapi"] - }, - "aspnet AspNetWebStack": { - "description": "aspnet AspNetWebStack monorepo", - "sourceUrlPrefixes": ["https://github.com/aspnet/AspNetWebStack"] - }, - "aspnet Extensions": { - "description": "aspnet Extensions monorepo", - "sourceUrlPrefixes": ["https://github.com/aspnet/Extensions"] - }, - "aws-cdk": { - "description": "aws-cdk monorepo", - "sourceUrlPrefixes": ["https://github.com/aws/aws-cdk"] - }, - "aws-java-sdk": { - "description": "aws-java-sdk monorepo", - "packagePatterns": ["^com.amazonaws:aws-java-sdk-"] - }, - "awsappsync": { - "description": "awsappsync monorepo", - "sourceUrlPrefixes": [ - "https://github.com/awslabs/aws-mobile-appsync-sdk-js" - ] - }, - "azure azure-libraries-for-net": { - "description": "azure azure-libraries-for-net monorepo", - "sourceUrlPrefixes": ["https://github.com/Azure/azure-libraries-for-net"] - }, - "azure azure-sdk-for-net": { - "description": "azure azure-sdk-for-net monorepo", - "sourceUrlPrefixes": ["https://github.com/Azure/azure-sdk-for-net"] - }, - "azure azure-storage-net": { - "description": "azure azure-storage-net monorepo", - "sourceUrlPrefixes": ["https://github.com/Azure/azure-storage-net"] - }, - "babel": { - "description": "babel monorepo", - "sourceUrlPrefixes": ["https://github.com/babel/babel"] - }, - "babel6": { - "description": "babel6 monorepo", - "packagePatterns": ["^babel6$"] - }, - "baset": { - "description": "baset monorepo", - "sourceUrlPrefixes": ["https://github.com/igmat/baset"] - }, - "brave": { - "description": "brave monorepo", - "sourceUrlPrefixes": ["https://github.com/openzipkin/brave"] - }, - "bugsnag-js": { - "description": "bugsnag-js monorepo", - "sourceUrlPrefixes": ["https://github.com/bugsnag/bugsnag-js"] - }, - "capacitor": { - "description": "capacitor monorepo", - "sourceUrlPrefixes": ["https://github.com/ionic-team/capacitor"] - }, - "clarity": { - "description": "clarity monorepo", - "sourceUrlPrefixes": ["https://github.com/vmware/clarity"] - }, - "commitlint": { - "description": "commitlint monorepo", - "sourceUrlPrefixes": [ - "https://github.com/conventional-changelog/commitlint" - ] - }, - "devextreme-reactive": { - "description": "devextreme-reactive monorepo", - "sourceUrlPrefixes": ["https://github.com/DevExpress/devextreme-reactive"] - }, - "dropwizard": { - "description": "dropwizard monorepo", - "sourceUrlPrefixes": ["https://github.com/dropwizard/dropwizard"] - }, - "electron-forge": { - "description": "electron-forge monorepo", - "sourceUrlPrefixes": [ - "https://github.com/electron-userland/electron-forge" - ] - }, - "ember-decorators": { - "description": "ember-decorators monorepo", - "sourceUrlPrefixes": [ - "https://github.com/ember-decorators/ember-decorators" - ] - }, - "emotion": { - "description": "emotion monorepo", - "sourceUrlPrefixes": ["https://github.com/emotion-js/emotion"] - }, - "expo": { - "description": "expo monorepo", - "sourceUrlPrefixes": ["https://github.com/expo/expo"] - }, - "fimbullinter": { - "description": "fimbullinter monorepo", - "sourceUrlPrefixes": ["https://github.com/fimbullinter/wotan"] - }, - "flopflip": { - "description": "flopflip monorepo", - "sourceUrlPrefixes": ["https://github.com/tdeekens/flopflip"] - }, - "framework7": { - "description": "framework7 monorepo", - "sourceUrlPrefixes": ["https://github.com/framework7io/framework7"] - }, - "gatsby": { - "description": "gatsby monorepo", - "sourceUrlPrefixes": ["https://github.com/gatsbyjs/gatsby"] - }, - "graphql-modules": { - "description": "graphql-modules monorepo", - "sourceUrlPrefixes": ["https://github.com/Urigo/graphql-modules"] - }, - "graphql-toolkit": { - "description": "graphql-toolkit monorepo", - "sourceUrlPrefixes": ["https://github.com/ardatan/graphql-toolkit"] - }, - "graphqlcodegenerator": { - "description": "graphqlcodegenerator monorepo", - "sourceUrlPrefixes": [ - "https://github.com/dotansimha/graphql-code-generator", - "https://github.com/dotansimha/graphql-codegen" - ] - }, - "hamcrest": { - "description": "hamcrest monorepo", - "sourceUrlPrefixes": ["https://github.com/hamcrest/JavaHamcrest"] - }, - "hapijs": { - "description": "hapijs monorepo", - "sourceUrlPrefixes": ["https://github.com/hapijs"] - }, - "infrastructure": { - "description": "infrastructure monorepo", - "sourceUrlPrefixes": ["https://github.com/instructure/instructure-ui"] - }, - "ionic-native": { - "description": "ionic-native monorepo", - "sourceUrlPrefixes": ["https://github.com/ionic-team/ionic-native"] - }, - "jasmine": { - "description": "jasmine monorepo", - "sourceUrlPrefixes": ["https://github.com/jasmine/jasmine"] - }, - "jersey": { - "description": "jersey monorepo", - "sourceUrlPrefixes": ["https://github.com/eclipse-ee4j/jersey"] - }, - "jest": { - "description": "jest monorepo", - "sourceUrlPrefixes": ["https://github.com/facebook/jest"] - }, - "lerna": { - "description": "lerna monorepo", - "sourceUrlPrefixes": ["https://github.com/lerna/lerna"] - }, - "lingui": { - "description": "lingui monorepo", - "sourceUrlPrefixes": ["https://github.com/lingui/js-lingui"] - }, - "lodash": { - "description": "lodash monorepo", - "sourceUrlPrefixes": ["https://github.com/lodash/"] - }, - "loopback": { - "description": "loopback monorepo", - "sourceUrlPrefixes": ["https://github.com/strongloop/loopback-next"] - }, - "material": { - "description": "material monorepo", - "sourceUrlPrefixes": [ - "https://github.com/material-components/material-components-web" - ] - }, - "mdc-react": { - "description": "mdc-react monorepo", - "sourceUrlPrefixes": ["material-components/material-components-web-react"] - }, - "mdx": { - "description": "mdx monorepo", - "sourceUrlPrefixes": ["https://github.com/mdx-js/mdx"] - }, - "mui": { - "description": "mui monorepo", - "sourceUrlPrefixes": ["https://github.com/mui-org/material-ui"] - }, - "nest": { - "description": "nest monorepo", - "sourceUrlPrefixes": ["https://github.com/nestjs/nest"] - }, - "neutrino": { - "description": "neutrino monorepo", - "sourceUrlPrefixes": [ - "https://github.com/neutrinojs/neutrino", - "https://github.com/mozilla-neutrino/neutrino-dev" - ] - }, - "nextjs": { - "description": "nextjs monorepo", - "sourceUrlPrefixes": ["https://github.com/zeit/next.js"] - }, - "ngrx": { - "description": "ngrx monorepo", - "sourceUrlPrefixes": ["https://github.com/ngrx/"] - }, - "ngx-formly": { - "description": "ngx-formly monorepo", - "sourceUrlPrefixes": ["https://github.com/ngx-formly/ngx-formly"] - }, - "ngxs-store": { - "description": "ngxs-store monorepo", - "sourceUrlPrefixes": ["https://github.com/ngxs/store"] - }, - "nrwl": { - "description": "nrwl monorepo", - "sourceUrlPrefixes": ["https://github.com/nrwl/"] - }, - "nuxtjs": { - "description": "nuxtjs monorepo", - "sourceUrlPrefixes": ["https://github.com/nuxt/nuxt.js"] - }, - "openfeign": { - "description": "openfeign monorepo", - "sourceUrlPrefixes": ["https://github.com/OpenFeign/feign"] - }, - "picasso": { - "description": "picasso monorepo", - "sourceUrlPrefixes": ["https://github.com/qlik-oss/picasso.js"] - }, - "pollyjs": { - "description": "pollyjs monorepo", - "sourceUrlPrefixes": ["https://github.com/Netflix/pollyjs"] - }, - "pouchdb": { - "description": "pouchdb monorepo", - "sourceUrlPrefixes": ["https://github.com/pouchdb/pouchdb"] - }, - "react": { - "description": "react monorepo", - "sourceUrlPrefixes": ["https://github.com/facebook/react"] - }, - "react-apollo": { - "description": "react-apollo monorepo", - "sourceUrlPrefixes": ["https://github.com/apollographql/react-apollo"] - }, - "react-dnd": { - "description": "react-dnd monorepo", - "sourceUrlPrefixes": ["https://github.com/react-dnd/react-dnd"] - }, - "react-navigation": { - "description": "react-navigation monorepo", - "sourceUrlPrefixes": [ - "https://github.com/react-navigation/react-navigation" - ] - }, - "reactivestack-cookies": { - "description": "reactivestack-cookies monorepo", - "sourceUrlPrefixes": ["https://github.com/reactivestack/cookies"] - }, - "reactrouter": { - "description": "reactrouter monorepo", - "sourceUrlPrefixes": ["https://github.com/ReactTraining/react-router"] - }, - "reakit": { - "description": "reakit monorepo", - "sourceUrlPrefixes": ["https://github.com/reakit/reakit"] - }, - "remark": { - "description": "remark monorepo", - "sourceUrlPrefixes": ["https://github.com/remarkjs/remark"] - }, - "router5": { - "description": "router5 monorepo", - "sourceUrlPrefixes": ["https://github.com/router5/router5"] - }, - "sanity": { - "description": "sanity monorepo", - "sourceUrlPrefixes": ["https://github.com/sanity-io/sanity"] - }, - "semantic-release": { - "description": "semantic-release monorepo", - "sourceUrlPrefixes": ["https://github.com/semantic-release/"] - }, - "sentry": { - "description": "sentry monorepo", - "sourceUrlPrefixes": ["https://github.com/getsentry/sentry-javascript"] - }, - "springfox": { - "description": "springfox monorepo", - "sourceUrlPrefixes": ["https://github.com/springfox/springfox"] - }, - "storybook": { - "description": "storybook monorepo", - "sourceUrlPrefixes": ["https://github.com/storybookjs/storybook"] - }, - "strapi": { - "description": "strapi monorepo", - "sourceUrlPrefixes": ["https://github.com/strapi/strapi"] - }, - "stryker": { - "description": "stryker monorepo", - "sourceUrlPrefixes": ["https://github.com/stryker-mutator/stryker"] - }, - "surveyjs": { - "description": "surveyjs monorepo", - "sourceUrlPrefixes": ["https://github.com/surveyjs/surveyjs"] - }, - "telus-tds": { - "description": "telus-tds monorepo", - "sourceUrlPrefixes": ["https://github.com/telusdigital/tds"] - }, - "treat": { - "description": "treat monorepo", - "sourceUrlPrefixes": ["https://github.com/seek-oss/treat"] - }, - "typefaces": { - "description": "typefaces monorepo", - "sourceUrlPrefixes": ["https://github.com/KyleAMathews/typefaces"] - }, - "typescript-eslint": { - "description": "typescript-eslint monorepo", - "sourceUrlPrefixes": [ - "https://github.com/typescript-eslint/typescript-eslint" - ] - }, - "typography-js": { - "description": "typography-js monorepo", - "sourceUrlPrefixes": ["https://github.com/KyleAMathews/typography.js"] - }, - "uppy": { - "description": "uppy monorepo", - "sourceUrlPrefixes": ["https://github.com/transloadit/uppy"] - }, - "vue": { - "description": "vue monorepo", - "sourceUrlPrefixes": ["https://github.com/vuejs/vue"] - }, - "vue-cli": { - "description": "vue-cli monorepo", - "sourceUrlPrefixes": ["https://github.com/vuejs/vue-cli"] - }, - "vuepress": { - "description": "vuepress monorepo", - "sourceUrlPrefixes": ["https://github.com/vuejs/vuepress"] - }, - "webdriverio": { - "description": "webdriverio monorepo", - "sourceUrlPrefixes": ["https://github.com/webdriverio/webdriverio"] - }, - "wordpress": { - "description": "wordpress monorepo", - "packagePatterns": ["^@wordpress/"] - }, - "workbox": { - "description": "workbox monorepo", - "sourceUrlPrefixes": ["https://github.com/googlechrome/workbox"] - } - }, - "packages": { - "angularJs": { - "description": "All angular.js packages", - "packageNames": [ - "angular", - "angular-animate", - "angular-scroll", - "angular-sanitize" - ] - }, - "apollographql": { - "description": "All packages published by Apollo GraphQL", - "sourceUrlPrefixes": ["https://github.com/apollographql/"] - }, - "eslint": { - "description": "All eslint packages", - "packageNames": ["babel-eslint"], - "packagePatterns": ["^eslint"] - }, - "gatsby": { - "description": "All packages published by Gatsby", - "extends": ["monorepo:gatsby"] - }, - "jsTest": { - "description": "JavaScript test packages", - "extends": ["packages:jsUnitTest"] - }, - "jsUnitTest": { - "description": "Unit test packages for javascript", - "packageNames": [ - "coveralls", - "istanbul", - "mock-fs", - "nock", - "nyc", - "proxyquire", - "supertest" - ], - "packagePatterns": [ - "^chai", - "^jest", - "^mocha", - "^qunit", - "^sinon", - "^should" - ] - }, - "linters": { - "description": "All lint-related packages", - "extends": ["packages:eslint", "packages:stylelint", "packages:tslint"], - "packageNames": ["remark-lint"] - }, - "mapbox": { - "description": "All mapbox-related packages", - "packagePatterns": ["^(leaflet|mapbox)"] - }, - "postcss": { - "description": "All postcss packages", - "packageNames": ["postcss"], - "packagePatterns": ["^postcss-"] - }, - "stylelint": { - "description": "All stylelint packages", - "packagePatterns": ["^stylelint"] - }, - "test": {"description": "Test packages", "extends": ["packages:unitTest"]}, - "tslint": { - "description": "All tslint packages", - "packageNames": ["codelyzer"], - "packagePatterns": ["\\btslint\\b"] - }, - "unitTest": { - "description": "All unit test packages", - "extends": ["packages:jsUnitTest"] - } - }, - "preview": { - "buildkite": { - "buildkite": {"enabled": true}, - "description": "Enable buildkite functionality" - }, - "dockerCompose": { - "description": "Enable docker compose image updating", - "docker-compose": {"enabled": true} - }, - "dockerVersions": { - "description": "Upgrade docker tags to newer versions", - "docker": {"major": {"enabled": true}, "minor": {"enabled": true}} - } - }, - "schedule": { - "daily": {"description": "Schedule daily", "schedule": "before 2am"}, - "earlyMondays": { - "description": "Weekly schedule on early monday mornings", - "schedule": "before 3am on Monday" - }, - "monthly": { - "description": "Schedule monthly", - "schedule": "before 3am on the first day of the month" - }, - "nonOfficeHours": { - "description": "Schedule for typical non-office hours (night time and weekends)", - "schedule": [ - "after 10pm every weekday", - "before 5am every weekday", - "every weekend" - ] - }, - "weekdays": { - "description": "Schedule for weekdays", - "schedule": "every weekday" - }, - "weekends": { - "description": "Schedule for weekends", - "schedule": "every weekend" - }, - "weekly": { - "description": "Schedule weekly", - "extends": ["schedule:earlyMondays"] - } - } -} \ No newline at end of file diff --git a/lib/config/presets/__snapshots__/github.spec.ts.snap b/lib/config/presets/__snapshots__/github.spec.ts.snap index 9274f8368d..8d45caf789 100644 --- a/lib/config/presets/__snapshots__/github.spec.ts.snap +++ b/lib/config/presets/__snapshots__/github.spec.ts.snap @@ -5,9 +5,3 @@ Object { "from": "api", } `; - -exports[`config/presets/github fetchJSONFile() returns renovate internal 1`] = ` -Object { - "from": "www", -} -`; diff --git a/lib/config/presets/__snapshots__/index.spec.ts.snap b/lib/config/presets/__snapshots__/index.spec.ts.snap index d6c7eaa15f..cdc6389980 100644 --- a/lib/config/presets/__snapshots__/index.spec.ts.snap +++ b/lib/config/presets/__snapshots__/index.spec.ts.snap @@ -146,22 +146,22 @@ Object { exports[`config/presets parsePreset returns default package name 1`] = ` Object { - "packageName": "renovatebot/presets", + "packageName": "default", "params": undefined, - "presetName": "presets/default/base", - "presetSource": "github", + "presetName": "base", + "presetSource": "internal", } `; exports[`config/presets parsePreset returns default package name with params 1`] = ` Object { - "packageName": "renovatebot/presets", + "packageName": "default", "params": Array [ "packages/eslint", "eslint", ], - "presetName": "presets/default/group", - "presetSource": "github", + "presetName": "group", + "presetSource": "internal", } `; @@ -411,1036 +411,6 @@ Object { } `; -exports[`config/presets resolvePreset resolves group monorepos 1`] = ` -Object { - "description": Array [ - "Group known monorepo packages together", - ], - "ignoreDeps": Array [], - "packageRules": Array [ - Object { - "description": Array [ - "ag-grid monorepo", - "Group packages from ag-grid monorepo together", - ], - "groupName": "ag-grid monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/ag-grid/ag-grid", - ], - }, - Object { - "description": Array [ - "arcus event-grid monorepo", - "Group packages from arcus event-grid monorepo together", - ], - "groupName": "arcus event-grid monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/arcus-azure/arcus.eventgrid", - ], - }, - Object { - "description": Array [ - "arcus security monorepo", - "Group packages from arcus security monorepo together", - ], - "groupName": "arcus security monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/arcus-azure/arcus.security", - ], - }, - Object { - "description": Array [ - "arcus messaging monorepo", - "Group packages from arcus messaging monorepo together", - ], - "groupName": "arcus messaging monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/arcus-azure/arcus.messaging", - ], - }, - Object { - "description": Array [ - "arcus observability monorepo", - "Group packages from arcus observability monorepo together", - ], - "groupName": "arcus observability monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/arcus-azure/arcus.observability", - ], - }, - Object { - "description": Array [ - "arcus webapi monorepo", - "Group packages from arcus webapi monorepo together", - ], - "groupName": "arcus webapi monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/arcus-azure/arcus.webapi", - ], - }, - Object { - "description": Array [ - "arcus background-jobs monorepo", - "Group packages from arcus background-jobs monorepo together", - ], - "groupName": "arcus background-jobs monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/arcus-azure/arcus.backgroundjobs", - ], - }, - Object { - "description": Array [ - "algolia-react-instantsearch monorepo", - "Group packages from algolia-react-instantsearch monorepo together", - ], - "groupName": "algolia-react-instantsearch monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/algolia/react-instantsearch", - ], - }, - Object { - "description": Array [ - "apollo-server monorepo", - "Group packages from apollo-server monorepo together", - ], - "groupName": "apollo-server monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/apollographql/apollo-server", - ], - }, - Object { - "description": Array [ - "aspnet AspNetWebStack monorepo", - "Group packages from aspnet AspNetWebStack monorepo together", - ], - "groupName": "aspnet AspNetWebStack monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/aspnet/AspNetWebStack", - ], - }, - Object { - "description": Array [ - "aspnet Extensions monorepo", - "Group packages from aspnet Extensions monorepo together", - ], - "groupName": "aspnet Extensions monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/aspnet/Extensions", - ], - }, - Object { - "description": Array [ - "aws-cdk monorepo", - "Group packages from aws-cdk monorepo together", - ], - "groupName": "aws-cdk monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/aws/aws-cdk", - ], - }, - Object { - "description": Array [ - "azure azure-libraries-for-net monorepo", - "Group packages from azure azure-libraries-for-net monorepo together", - ], - "groupName": "azure azure-libraries-for-net monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/Azure/azure-libraries-for-net", - ], - }, - Object { - "description": Array [ - "azure azure-sdk-for-net monorepo", - "Group packages from azure azure-sdk-for-net monorepo together", - ], - "groupName": "azure azure-sdk-for-net monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/Azure/azure-sdk-for-net", - ], - }, - Object { - "description": Array [ - "azure azure-storage-net monorepo", - "Group packages from azure azure-storage-net monorepo together", - ], - "groupName": "azure azure-storage-net monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/Azure/azure-storage-net", - ], - }, - Object { - "description": Array [ - "bugsnag-js monorepo", - "Group packages from bugsnag-js monorepo together", - ], - "groupName": "bugsnag-js monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/bugsnag/bugsnag-js", - ], - }, - Object { - "description": Array [ - "devextreme-reactive monorepo", - "Group packages from devextreme-reactive monorepo together", - ], - "groupName": "devextreme-reactive monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/DevExpress/devextreme-reactive", - ], - }, - Object { - "description": Array [ - "electron-forge monorepo", - "Group packages from electron-forge monorepo together", - ], - "groupName": "electron-forge monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/electron-userland/electron-forge", - ], - }, - Object { - "description": Array [ - "ember-decorators monorepo", - "Group packages from ember-decorators monorepo together", - ], - "groupName": "ember-decorators monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/ember-decorators/ember-decorators", - ], - }, - Object { - "description": Array [ - "graphql-modules monorepo", - "Group packages from graphql-modules monorepo together", - ], - "groupName": "graphql-modules monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/Urigo/graphql-modules", - ], - }, - Object { - "description": Array [ - "ionic-native monorepo", - "Group packages from ionic-native monorepo together", - ], - "groupName": "ionic-native monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/ionic-team/ionic-native", - ], - }, - Object { - "description": Array [ - "mdc-react monorepo", - "Group packages from mdc-react monorepo together", - ], - "groupName": "mdc-react monorepo", - "sourceUrlPrefixes": Array [ - "material-components/material-components-web-react", - ], - }, - Object { - "description": Array [ - "ngx-formly monorepo", - "Group packages from ngx-formly monorepo together", - ], - "groupName": "ngx-formly monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/ngx-formly/ngx-formly", - ], - }, - Object { - "description": Array [ - "ngxs-store monorepo", - "Group packages from ngxs-store monorepo together", - ], - "groupName": "ngxs-store monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/ngxs/store", - ], - }, - Object { - "description": Array [ - "react-apollo monorepo", - "Group packages from react-apollo monorepo together", - ], - "groupName": "react-apollo monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/apollographql/react-apollo", - ], - }, - Object { - "description": Array [ - "react-dnd monorepo", - "Group packages from react-dnd monorepo together", - ], - "groupName": "react-dnd monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/react-dnd/react-dnd", - ], - }, - Object { - "description": Array [ - "react-navigation monorepo", - "Group packages from react-navigation monorepo together", - ], - "groupName": "react-navigation monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/react-navigation/react-navigation", - ], - }, - Object { - "description": Array [ - "reactivestack-cookies monorepo", - "Group packages from reactivestack-cookies monorepo together", - ], - "groupName": "reactivestack-cookies monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/reactivestack/cookies", - ], - }, - Object { - "description": Array [ - "semantic-release monorepo", - "Group packages from semantic-release monorepo together", - ], - "groupName": "semantic-release monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/semantic-release/", - ], - }, - Object { - "description": Array [ - "telus-tds monorepo", - "Group packages from telus-tds monorepo together", - ], - "groupName": "telus-tds monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/telusdigital/tds", - ], - }, - Object { - "description": Array [ - "typescript-eslint monorepo", - "Group packages from typescript-eslint monorepo together", - ], - "groupName": "typescript-eslint monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/typescript-eslint/typescript-eslint", - ], - }, - Object { - "description": Array [ - "typography-js monorepo", - "Group packages from typography-js monorepo together", - ], - "groupName": "typography-js monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/KyleAMathews/typography.js", - ], - }, - Object { - "description": Array [ - "vue-cli monorepo", - "Group packages from vue-cli monorepo together", - ], - "groupName": "vue-cli monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/vuejs/vue-cli", - ], - }, - Object { - "description": Array [ - "accounts monorepo", - "Group packages from accounts monorepo together", - ], - "groupName": "accounts monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/accounts-js/accounts", - ], - }, - Object { - "description": Array [ - "angular1 monorepo", - "Group packages from angular1 monorepo together", - ], - "groupName": "angular1 monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/angular/angular.js", - ], - }, - Object { - "description": Array [ - "angular monorepo", - "Group packages from angular monorepo together", - ], - "groupName": "angular monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/angular/angular", - ], - }, - Object { - "description": Array [ - "angularcli monorepo", - "Group packages from angularcli monorepo together", - ], - "groupName": "angularcli monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/angular/angular-cli", - ], - }, - Object { - "description": Array [ - "apolloclient monorepo", - "Group packages from apolloclient monorepo together", - ], - "groupName": "apolloclient monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/apollographql/apollo-client", - ], - }, - Object { - "description": Array [ - "apollolink monorepo", - "Group packages from apollolink monorepo together", - ], - "groupName": "apollolink monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/apollographql/apollo-link", - ], - }, - Object { - "description": Array [ - "awsappsync monorepo", - "Group packages from awsappsync monorepo together", - ], - "groupName": "awsappsync monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/awslabs/aws-mobile-appsync-sdk-js", - ], - }, - Object { - "description": Array [ - "babel monorepo", - "Group packages from babel monorepo together", - ], - "groupName": "babel monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/babel/babel", - ], - }, - Object { - "description": Array [ - "baset monorepo", - "Group packages from baset monorepo together", - ], - "groupName": "baset monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/igmat/baset", - ], - }, - Object { - "description": Array [ - "brave monorepo", - "Group packages from brave monorepo together", - ], - "groupName": "brave monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/openzipkin/brave", - ], - }, - Object { - "description": Array [ - "capacitor monorepo", - "Group packages from capacitor monorepo together", - ], - "groupName": "capacitor monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/ionic-team/capacitor", - ], - }, - Object { - "description": Array [ - "clarity monorepo", - "Group packages from clarity monorepo together", - ], - "groupName": "clarity monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/vmware/clarity", - ], - }, - Object { - "description": Array [ - "commitlint monorepo", - "Group packages from commitlint monorepo together", - ], - "groupName": "commitlint monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/conventional-changelog/commitlint", - ], - }, - Object { - "description": Array [ - "dropwizard monorepo", - "Group packages from dropwizard monorepo together", - ], - "groupName": "dropwizard monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/dropwizard/dropwizard", - ], - }, - Object { - "description": Array [ - "emotion monorepo", - "Group packages from emotion monorepo together", - ], - "groupName": "emotion monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/emotion-js/emotion", - ], - }, - Object { - "description": Array [ - "expo monorepo", - "Group packages from expo monorepo together", - ], - "groupName": "expo monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/expo/expo", - ], - }, - Object { - "description": Array [ - "fimbullinter monorepo", - "Group packages from fimbullinter monorepo together", - ], - "groupName": "fimbullinter monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/fimbullinter/wotan", - ], - }, - Object { - "description": Array [ - "flopflip monorepo", - "Group packages from flopflip monorepo together", - ], - "groupName": "flopflip monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/tdeekens/flopflip", - ], - }, - Object { - "description": Array [ - "framework7 monorepo", - "Group packages from framework7 monorepo together", - ], - "groupName": "framework7 monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/framework7io/framework7", - ], - }, - Object { - "description": Array [ - "gatsby monorepo", - "Group packages from gatsby monorepo together", - ], - "groupName": "gatsby monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/gatsbyjs/gatsby", - ], - }, - Object { - "description": Array [ - "graphqlcodegenerator monorepo", - "Group packages from graphqlcodegenerator monorepo together", - ], - "groupName": "graphqlcodegenerator monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/dotansimha/graphql-code-generator", - "https://github.com/dotansimha/graphql-codegen", - ], - }, - Object { - "description": Array [ - "graphql-toolkit monorepo", - "Group packages from graphql-toolkit monorepo together", - ], - "groupName": "graphql-toolkit monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/ardatan/graphql-toolkit", - ], - }, - Object { - "description": Array [ - "hamcrest monorepo", - "Group packages from hamcrest monorepo together", - ], - "groupName": "hamcrest monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/hamcrest/JavaHamcrest", - ], - }, - Object { - "description": Array [ - "hapijs monorepo", - "Group packages from hapijs monorepo together", - ], - "groupName": "hapijs monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/hapijs", - ], - }, - Object { - "description": Array [ - "infrastructure monorepo", - "Group packages from infrastructure monorepo together", - ], - "groupName": "infrastructure monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/instructure/instructure-ui", - ], - }, - Object { - "description": Array [ - "jasmine monorepo", - "Group packages from jasmine monorepo together", - ], - "groupName": "jasmine monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/jasmine/jasmine", - ], - }, - Object { - "description": Array [ - "jersey monorepo", - "Group packages from jersey monorepo together", - ], - "groupName": "jersey monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/eclipse-ee4j/jersey", - ], - }, - Object { - "description": Array [ - "jest monorepo", - "Group packages from jest monorepo together", - ], - "groupName": "jest monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/facebook/jest", - ], - }, - Object { - "description": Array [ - "lerna monorepo", - "Group packages from lerna monorepo together", - ], - "groupName": "lerna monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/lerna/lerna", - ], - }, - Object { - "description": Array [ - "lingui monorepo", - "Group packages from lingui monorepo together", - ], - "groupName": "lingui monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/lingui/js-lingui", - ], - }, - Object { - "description": Array [ - "lodash monorepo", - "Group packages from lodash monorepo together", - ], - "groupName": "lodash monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/lodash/", - ], - }, - Object { - "description": Array [ - "loopback monorepo", - "Group packages from loopback monorepo together", - ], - "groupName": "loopback monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/strongloop/loopback-next", - ], - }, - Object { - "description": Array [ - "material monorepo", - "Group packages from material monorepo together", - ], - "groupName": "material monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/material-components/material-components-web", - ], - }, - Object { - "description": Array [ - "mdx monorepo", - "Group packages from mdx monorepo together", - ], - "groupName": "mdx monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/mdx-js/mdx", - ], - }, - Object { - "description": Array [ - "mui monorepo", - "Group packages from mui monorepo together", - ], - "groupName": "mui monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/mui-org/material-ui", - ], - }, - Object { - "description": Array [ - "nest monorepo", - "Group packages from nest monorepo together", - ], - "groupName": "nest monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/nestjs/nest", - ], - }, - Object { - "description": Array [ - "neutrino monorepo", - "Group packages from neutrino monorepo together", - ], - "groupName": "neutrino monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/neutrinojs/neutrino", - "https://github.com/mozilla-neutrino/neutrino-dev", - ], - }, - Object { - "description": Array [ - "nextjs monorepo", - "Group packages from nextjs monorepo together", - ], - "groupName": "nextjs monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/zeit/next.js", - ], - }, - Object { - "description": Array [ - "ngrx monorepo", - "Group packages from ngrx monorepo together", - ], - "groupName": "ngrx monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/ngrx/", - ], - }, - Object { - "description": Array [ - "nrwl monorepo", - "Group packages from nrwl monorepo together", - ], - "groupName": "nrwl monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/nrwl/", - ], - }, - Object { - "description": Array [ - "nuxtjs monorepo", - "Group packages from nuxtjs monorepo together", - ], - "groupName": "nuxtjs monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/nuxt/nuxt.js", - ], - }, - Object { - "description": Array [ - "openfeign monorepo", - "Group packages from openfeign monorepo together", - ], - "groupName": "openfeign monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/OpenFeign/feign", - ], - }, - Object { - "description": Array [ - "picasso monorepo", - "Group packages from picasso monorepo together", - ], - "groupName": "picasso monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/qlik-oss/picasso.js", - ], - }, - Object { - "description": Array [ - "pollyjs monorepo", - "Group packages from pollyjs monorepo together", - ], - "groupName": "pollyjs monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/Netflix/pollyjs", - ], - }, - Object { - "description": Array [ - "pouchdb monorepo", - "Group packages from pouchdb monorepo together", - ], - "groupName": "pouchdb monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/pouchdb/pouchdb", - ], - }, - Object { - "description": Array [ - "react monorepo", - "Group packages from react monorepo together", - ], - "groupName": "react monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/facebook/react", - ], - }, - Object { - "description": Array [ - "reactrouter monorepo", - "Group packages from reactrouter monorepo together", - ], - "groupName": "reactrouter monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/ReactTraining/react-router", - ], - }, - Object { - "description": Array [ - "reakit monorepo", - "Group packages from reakit monorepo together", - ], - "groupName": "reakit monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/reakit/reakit", - ], - }, - Object { - "description": Array [ - "remark monorepo", - "Group packages from remark monorepo together", - ], - "groupName": "remark monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/remarkjs/remark", - ], - }, - Object { - "description": Array [ - "router5 monorepo", - "Group packages from router5 monorepo together", - ], - "groupName": "router5 monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/router5/router5", - ], - }, - Object { - "description": Array [ - "sentry monorepo", - "Group packages from sentry monorepo together", - ], - "groupName": "sentry monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/getsentry/sentry-javascript", - ], - }, - Object { - "description": Array [ - "springfox monorepo", - "Group packages from springfox monorepo together", - ], - "groupName": "springfox monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/springfox/springfox", - ], - }, - Object { - "description": Array [ - "sanity monorepo", - "Group packages from sanity monorepo together", - ], - "groupName": "sanity monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/sanity-io/sanity", - ], - }, - Object { - "description": Array [ - "storybook monorepo", - "Group packages from storybook monorepo together", - ], - "groupName": "storybook monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/storybookjs/storybook", - ], - }, - Object { - "description": Array [ - "strapi monorepo", - "Group packages from strapi monorepo together", - ], - "groupName": "strapi monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/strapi/strapi", - ], - }, - Object { - "description": Array [ - "stryker monorepo", - "Group packages from stryker monorepo together", - ], - "groupName": "stryker monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/stryker-mutator/stryker", - ], - }, - Object { - "description": Array [ - "surveyjs monorepo", - "Group packages from surveyjs monorepo together", - ], - "groupName": "surveyjs monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/surveyjs/surveyjs", - ], - }, - Object { - "description": Array [ - "Swashbuckle monorepo", - "Group packages from Swashbuckle monorepo together", - ], - "groupName": "Swashbuckle monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/domaindrivendev/Swashbuckle.AspNetCore", - ], - }, - Object { - "description": Array [ - "treat monorepo", - "Group packages from treat monorepo together", - ], - "groupName": "treat monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/seek-oss/treat", - ], - }, - Object { - "description": Array [ - "typefaces monorepo", - "Group packages from typefaces monorepo together", - ], - "groupName": "typefaces monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/KyleAMathews/typefaces", - ], - }, - Object { - "description": Array [ - "uppy monorepo", - "Group packages from uppy monorepo together", - ], - "groupName": "uppy monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/transloadit/uppy", - ], - }, - Object { - "description": Array [ - "vue monorepo", - "Group packages from vue monorepo together", - ], - "groupName": "vue monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/vuejs/vue", - ], - }, - Object { - "description": Array [ - "vuepress monorepo", - "Group packages from vuepress monorepo together", - ], - "groupName": "vuepress monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/vuejs/vuepress", - ], - }, - Object { - "description": Array [ - "webdriverio monorepo", - "Group packages from webdriverio monorepo together", - ], - "groupName": "webdriverio monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/webdriverio/webdriverio", - ], - }, - Object { - "description": Array [ - "workbox monorepo", - "Group packages from workbox monorepo together", - ], - "groupName": "workbox monorepo", - "sourceUrlPrefixes": Array [ - "https://github.com/googlechrome/workbox", - ], - }, - Object { - "description": Array [ - "Group packages from babel6 monorepo together", - ], - "groupName": "babel6 monorepo", - "packagePatterns": Array [ - "^babel6$", - ], - }, - Object { - "description": Array [ - "Group packages from wordpress monorepo together", - ], - "groupName": "wordpress monorepo", - "packagePatterns": Array [ - "^@wordpress/", - ], - }, - Object { - "description": Array [ - "Group packages from angularmaterial monorepo together", - ], - "groupName": "angularmaterial monorepo", - "packagePatterns": Array [ - "^@angular/material", - "^@angular/cdk", - ], - }, - Object { - "description": Array [ - "Group packages from aws-java-sdk monorepo together", - ], - "groupName": "aws-java-sdk monorepo", - "packagePatterns": Array [ - "^com.amazonaws:aws-java-sdk-", - ], - }, - ], -} -`; - exports[`config/presets resolvePreset resolves linters 1`] = ` Object { "description": Array [ diff --git a/lib/config/presets/common.ts b/lib/config/presets/common.ts index b002bd4b64..aa1a13736f 100644 --- a/lib/config/presets/common.ts +++ b/lib/config/presets/common.ts @@ -8,5 +8,5 @@ export interface PresetApi { pkgName: string, presetName?: string, baseConfig?: RenovateConfig - ): Promise<Preset>; + ): Promise<Preset> | Preset; } diff --git a/lib/config/presets/github.spec.ts b/lib/config/presets/github.spec.ts index 3a3637ef0d..9208344137 100644 --- a/lib/config/presets/github.spec.ts +++ b/lib/config/presets/github.spec.ts @@ -19,11 +19,6 @@ describe('config/presets/github', () => { got.mockReset(); return global.renovateCache.rmAll(); }); - describe('setInternalPreset()', () => { - it('allows override', () => { - github.setInternalPreset({ body: {} }); - }); - }); describe('fetchJSONFile()', () => { beforeEach(() => { clearRepoCache(); @@ -42,30 +37,6 @@ describe('config/presets/github', () => { ); expect(res).toMatchSnapshot(); }); - it('returns renovate internal', async () => { - hostRules.find.mockReturnValueOnce({ token: 'abc' }); - got.mockImplementationOnce(() => ({ - body: { from: 'www' }, - })); - const res = await github.fetchJSONFile( - 'renovatebot/presets', - 'presets.json', - 'https://api.github.com/' - ); - expect(res).toMatchSnapshot(); - }); - it('throws platform error', async () => { - got.mockImplementationOnce(() => { - throw new Error(); - }); - await expect( - github.fetchJSONFile( - 'renovatebot/presets', - 'presets.json', - 'https://api.github.com/' - ) - ).rejects.toThrow(PLATFORM_FAILURE); - }); }); describe('getPreset()', () => { it('passes up platform-failure', async () => { diff --git a/lib/config/presets/github.ts b/lib/config/presets/github.ts index 432a5caa62..88cac43546 100644 --- a/lib/config/presets/github.ts +++ b/lib/config/presets/github.ts @@ -4,45 +4,15 @@ import { Http, HttpOptions } from '../../util/http'; import { PLATFORM_FAILURE } from '../../constants/error-messages'; import { ensureTrailingSlash } from '../../util/url'; import { PLATFORM_TYPE_GITHUB } from '../../constants/platforms'; -import { getRepoCache } from '../../util/cache'; const http = new Http(PLATFORM_TYPE_GITHUB); -export function setInternalPreset(content: { body: Preset }): void { - const cache = getRepoCache(); - cache.internalPresets = Promise.resolve(content); -} - -async function fetchInternalPreset(): Promise<Preset> { - const res = await http.getJson<Preset>( - 'https://raw.githubusercontent.com/renovatebot/presets/master/presets.json' - ); - return res.body; -} - -function getInternalPreset(): Promise<Preset> { - const cache = getRepoCache(); - cache.internalPresets = cache.internalPresets || fetchInternalPreset(); - return cache.internalPresets; -} - export async function fetchJSONFile( repo: string, fileName: string, endpoint: string ): Promise<Preset> { const url = `${endpoint}repos/${repo}/contents/${fileName}`; - if ( - url === - 'https://api.github.com/repos/renovatebot/presets/contents/presets.json' - ) { - try { - const res = await getInternalPreset(); - return res; - } catch (err) { - throw new Error(PLATFORM_FAILURE); - } - } const opts: HttpOptions = { headers: { accept: global.appMode diff --git a/lib/config/presets/index.spec.ts b/lib/config/presets/index.spec.ts index f60dad5fe5..3233ac6b0b 100644 --- a/lib/config/presets/index.spec.ts +++ b/lib/config/presets/index.spec.ts @@ -1,15 +1,12 @@ import * as _npm from './npm'; -import * as _github from './github'; import * as presets from '.'; import presetIkatyang from './__fixtures__/renovate-config-ikatyang.json'; -import githubPresets from './__fixtures__/presets.json'; import { RenovateConfig } from '..'; jest.mock('./npm'); jest.mock('./github'); const npm: any = _npm; -const github: any = _github; npm.getPreset = jest.fn((dep, presetName) => { if (dep === 'renovate-config-ikatyang') { @@ -32,11 +29,6 @@ npm.getPreset = jest.fn((dep, presetName) => { return null; }); -github.getPreset = jest.fn((dep, filePreset) => { - const [, presetName, subPresetName] = filePreset.split('/'); - return githubPresets[presetName][subPresetName]; -}); - describe('config/presets', () => { describe('resolvePreset', () => { let config: RenovateConfig; @@ -131,11 +123,6 @@ describe('config/presets', () => { expect(e.validationError).toMatchSnapshot(); expect(e.validationMessage).toMatchSnapshot(); }); - it('resolves group monorepos', async () => { - config.extends = ['group:monorepos']; - const res = await presets.resolveConfigPresets(config); - expect(res).toMatchSnapshot(); - }); it('combines two package alls', async () => { config.extends = ['packages:eslint', 'packages:stylelint']; const res = await presets.resolveConfigPresets(config); diff --git a/lib/config/presets/index.ts b/lib/config/presets/index.ts index dbd9b69bb0..ed76115e1f 100644 --- a/lib/config/presets/index.ts +++ b/lib/config/presets/index.ts @@ -6,6 +6,7 @@ import * as github from './github'; import * as npm from './npm'; import * as gitlab from './gitlab'; import * as local from './local'; +import * as internal from './internal'; import { RenovateConfig } from '../common'; import { mergeChildConfig } from '../utils'; import { regEx } from '../../util/regex'; @@ -21,6 +22,7 @@ const presetSources: Record<string, PresetApi> = { npm, gitlab, local, + internal, }; export function replaceArgs( @@ -97,14 +99,13 @@ export function parsePreset(input: string): ParsedPreset { if ( presetsPackages.some((presetPackage) => str.startsWith(`${presetPackage}:`)) ) { - presetSource = 'github'; - packageName = 'renovatebot/presets'; - presetName = `presets/` + str.replace(':', '/'); + presetSource = 'internal'; + [packageName, presetName] = str.split(':'); } else if (str.startsWith(':')) { // default namespace - presetSource = 'github'; - packageName = 'renovatebot/presets'; - presetName = `presets/default/` + str.slice(1); + presetSource = 'internal'; + packageName = 'default'; + presetName = str.slice(1); } else if (str.startsWith('@')) { // scoped namespace [, packageName] = /(@.*?)(:|$)/.exec(str); @@ -204,7 +205,7 @@ export async function resolveConfigPresets( try { fetchedPreset = await getPreset(preset, baseConfig); } catch (err) { - logger.debug({ err }, 'Preset fetch error'); + logger.debug({ preset, err }, 'Preset fetch error'); // istanbul ignore if if ( err.message === PLATFORM_FAILURE || diff --git a/lib/config/presets/internal/config.ts b/lib/config/presets/internal/config.ts new file mode 100644 index 0000000000..e2f763604c --- /dev/null +++ b/lib/config/presets/internal/config.ts @@ -0,0 +1,50 @@ +import { Preset } from '../common'; + +export const presets: Record<string, Preset> = { + base: { + description: 'Default base configuration for all languages', + extends: [ + ':separateMajorReleases', + ':combinePatchMinorReleases', + ':ignoreUnstable', + ':prImmediately', + ':semanticPrefixFixDepsChoreOthers', + ':updateNotScheduled', + ':automergeDisabled', + ':ignoreModulesAndTests', + ':autodetectPinVersions', + ':prHourlyLimit2', + ':prConcurrentLimit20', + 'group:monorepos', + 'group:recommended', + 'helpers:disableTypesNodeMajor', + ], + }, + 'base-js': { + description: 'Base configuration for Javascript (deprecated)', + extends: ['config:base'], + }, + 'js-app': { + description: 'Default configuration for webapps', + extends: ['config:base', ':pinAllExceptPeerDependencies'], + }, + 'js-lib': { + description: 'Default configuration for libraries', + extends: ['config:base', ':pinOnlyDevDependencies'], + }, + semverAllMonthly: { + description: + 'Preserve semver ranges and update everything together once a month', + separateMajorMinor: false, + extends: [ + ':preserveSemverRanges', + 'group:all', + 'schedule:monthly', + ':maintainLockFilesMonthly', + ], + lockFileMaintenance: { + extends: ['group:all'], + commitMessageAction: 'Update', + }, + }, +}; diff --git a/lib/config/presets/internal/default.ts b/lib/config/presets/internal/default.ts new file mode 100644 index 0000000000..3c9aacb79b --- /dev/null +++ b/lib/config/presets/internal/default.ts @@ -0,0 +1,579 @@ +import { Preset } from '../common'; + +export const presets: Record<string, Preset> = { + enableRenovate: { + description: 'Enable renovate', + enabled: true, + }, + disableRenovate: { + description: 'Disable renovate', + enabled: false, + }, + disableMajorUpdates: { + description: 'Disables major updates', + major: { + enabled: false, + }, + }, + ignoreModulesAndTests: { + description: + 'Ignore `node_modules`, `bower_components`, `vendor` and various test/tests directories', + ignorePaths: [ + '**/node_modules/**', + '**/bower_components/**', + '**/vendor/**', + '**/examples/**', + '**/__tests__/**', + '**/test/**', + '**/tests/**', + '**/__fixtures__/**', + ], + }, + includeNodeModules: { + description: + 'Include <code>package.json</code> files found within <code>node_modules</code> folders or <code>bower_components</code>.', + ignorePaths: [], + }, + pinVersions: { + description: + 'Use version pinning (maintain a single version only and not semver ranges)', + rangeStrategy: 'pin', + }, + preserveSemverRanges: { + description: + 'Preserve (but continue to upgrade) any existing semver ranges', + rangeStrategy: 'replace', + }, + pinAllExceptPeerDependencies: { + description: + 'Pin dependency versions for all except <code>peerDependencies</code>', + packageRules: [ + { + packagePatterns: ['*'], + rangeStrategy: 'pin', + }, + { + depTypeList: ['engines', 'peerDependencies'], + rangeStrategy: 'auto', + }, + ], + }, + pinDependencies: { + description: 'Pin dependency versions for <code>dependencies</code>', + packageRules: [ + { + depTypeList: ['dependencies'], + rangeStrategy: 'pin', + }, + ], + }, + pinDevDependencies: { + description: 'Pin dependency versions for <code>devDependencies</code>', + packageRules: [ + { + depTypeList: ['devDependencies'], + rangeStrategy: 'pin', + }, + ], + }, + pinOnlyDevDependencies: { + description: + 'Pin dependency versions for <code>devDependencies</code> and retain semver ranges for others', + packageRules: [ + { + packagePatterns: ['*'], + rangeStrategy: 'replace', + }, + { + depTypeList: ['devDependencies'], + rangeStrategy: 'pin', + }, + { + depTypeList: ['peerDependencies'], + rangeStrategy: 'widen', + }, + ], + }, + autodetectPinVersions: { + description: 'Autodetect whether to pin dependencies or maintain ranges', + rangeStrategy: 'auto', + }, + separateMajorReleases: { + description: + 'Separate major versions of dependencies into individual branches/PRs', + separateMajorMinor: true, + }, + separateMultipleMajorReleases: { + description: + 'Separate each available major versions of dependencies into individual branches/PRs', + separateMajorMinor: true, + separateMultipleMajor: true, + }, + separatePatchReleases: { + description: + 'Separate patch and minor releases of dependencies into separate PRs', + separateMinorPatch: true, + }, + combinePatchMinorReleases: { + description: + 'Do not separate patch and minor upgrades into separate PRs for the same dependency', + separateMinorPatch: false, + }, + renovatePrefix: { + description: 'Use <code>renovate/</code> as prefix for all branch names', + branchPrefix: 'renovate/', + }, + semanticCommitType: { + description: + 'Use <code>{{arg0}}</code> as semantic commit type for commit messages and PR titles', + semanticCommitType: '{{arg0}}', + }, + semanticPrefixChore: { + description: + 'Use <code>chore</code> as semantic commit type for commit messages and PR titles', + extends: [':semanticCommitType(chore)'], + }, + semanticPrefixFix: { + description: + 'Use <code>fix</code> as semantic commit type for commit messages and PR titles', + extends: [':semanticCommitType(fix)'], + }, + disablePeerDependencies: { + description: + 'Do not renovate <code>peerDependencies</code> versions/ranges', + packageRules: [ + { + depTypeList: ['peerDependencies'], + enabled: false, + }, + ], + }, + disableDevDependencies: { + description: 'Do not renovate <code>devDependencies</code> versions/ranges', + packageRules: [ + { + depTypeList: ['devDependencies'], + enabled: false, + }, + ], + }, + disableDigestUpdates: { + description: 'Disable digest and git hash updates', + digest: { + enabled: false, + }, + }, + semanticPrefixFixDepsChoreOthers: { + description: + 'If semantic commits detected, use semantic commit type <code>fix</code> for dependencies and <code>chore</code> for all others', + packageRules: [ + { + packagePatterns: ['*'], + semanticCommitType: 'chore', + }, + { + depTypeList: ['dependencies'], + semanticCommitType: 'fix', + }, + ], + }, + semanticCommitTypeAll: { + description: + 'If semantic commits detected, use semantic commit type <code>{{arg0}}</code> for all', + packageRules: [ + { + packagePatterns: ['*'], + semanticCommitType: '{{arg0}}', + }, + ], + }, + rebaseStalePrs: { + description: + 'Rebase existing PRs any time the base branch has been updated', + rebaseWhen: 'behind-base-branch', + }, + unpublishSafe: { + description: + 'Set a status check to warn when upgrades < 24 hours old might get unpublished', + unpublishSafe: true, + }, + unpublishSafeDisabled: { + description: + "Create branches/PRs for dependency upgrades as soon as they're available", + unpublishSafe: false, + }, + prImmediately: { + description: 'Raise PRs immediately (after branch is created)', + prCreation: 'immediate', + }, + prNotPending: { + description: + 'Wait until branch tests have passed or failed before creating the PR', + prCreation: 'not-pending', + }, + prHourlyLimitNone: { + description: 'Removes rate limit for PR creation per hour', + prHourlyLimit: 0, + }, + prHourlyLimit1: { + description: 'Rate limit PR creation to a maximum of one per hour', + prHourlyLimit: 1, + }, + prHourlyLimit2: { + description: 'Rate limit PR creation to a maximum of two per hour', + prHourlyLimit: 2, + }, + prHourlyLimit4: { + description: 'Rate limit PR creation to a maximum of four per hour', + prHourlyLimit: 4, + }, + prConcurrentLimitNone: { + description: 'Remove limit for open PRs', + prConcurrentLimit: 0, + }, + prConcurrentLimit10: { + description: 'Limit to maximum 10 open PRs', + prConcurrentLimit: 10, + }, + prConcurrentLimit20: { + description: 'Limit to maximum 20 open PRs at any time', + prConcurrentLimit: 20, + }, + disableRateLimiting: { + description: 'Remove hourly and concurrent rate limits', + prConcurrentLimit: 0, + prHourlyLimit: 0, + }, + automergeDisabled: { + description: + 'Disable automerging feature - wait for humans to merge all PRs', + automerge: false, + }, + automergeDigest: { + description: 'Automerge digest upgrades if they pass tests', + digest: { + automerge: true, + }, + }, + automergePatch: { + description: 'Automerge patch upgrades if they pass tests', + separateMinorPatch: true, + patch: { + automerge: true, + }, + pin: { + automerge: true, + }, + lockFileMaintenance: { + automerge: true, + }, + }, + automergeMinor: { + description: 'Automerge patch and minor upgrades if they pass tests', + minor: { + automerge: true, + }, + patch: { + automerge: true, + }, + pin: { + automerge: true, + }, + lockFileMaintenance: { + automerge: true, + }, + }, + automergeMajor: { + description: 'Automerge all upgrades (including major) if they pass tests', + automerge: true, + }, + automergeAll: { + description: 'Automerge all upgrades (including major) if they pass tests', + automerge: true, + }, + automergeBranch: { + description: + 'If automerging, push the new commit directly to base branch (no PR)', + automergeType: 'branch', + }, + automergeBranchMergeCommit: { + description: + 'If automerging, perform a merge-commit on branch (no PR) - deprecated, use :automergeBranch instead', + automergeType: 'branch-merge-commit', + }, + automergeBranchPush: { + description: + 'If automerging, push the new commit directly to base branch (no PR) - deprecated, use :automergeBranch instead', + automergeType: 'branch-push', + }, + automergePr: { + description: 'Raise a PR first before any automerging', + automergeType: 'pr', + }, + automergeRequireAllStatusChecks: { + description: 'Require all status checks to pass before any automerging', + requiredStatusChecks: [], + }, + skipStatusChecks: { + description: 'Skip status checks and automerge right away', + requiredStatusChecks: null, + }, + maintainLockFilesDisabled: { + description: + 'Update existing lock files only when <code>package.json</code> is modified', + lockFileMaintenance: { + enabled: false, + }, + }, + pinDigestsDisabled: { + description: 'Disable pinning of docker dependency digests', + pinDigests: false, + }, + maintainLockFilesWeekly: { + description: 'Run lock file maintenance (updates) early Monday mornings', + lockFileMaintenance: { + enabled: true, + extends: 'schedule:weekly', + }, + }, + maintainLockFilesMonthly: { + description: + 'Run lock file maintenance (updates) on the first day of each month', + lockFileMaintenance: { + enabled: true, + extends: 'schedule:monthly', + }, + }, + ignoreUnstable: { + description: + 'Upgrade to unstable versions only if the existing version is unstable', + ignoreUnstable: true, + }, + respectLatest: { + description: 'Upgrade versions up to the "latest" tag in npm registry', + respectLatest: true, + }, + updateNotScheduled: { + description: 'Keep existing branches updated even when not scheduled', + updateNotScheduled: true, + }, + noUnscheduledUpdates: { + description: 'Make no updates to branches when not scheduled', + updateNotScheduled: false, + }, + automergeLinters: { + description: 'Update lint packages automatically if tests pass', + packageRules: [ + { + extends: ['packages:linters'], + automerge: true, + }, + ], + }, + automergeTesters: { + description: 'Update testing packages automatically if tests pass', + packageRules: [ + { + extends: ['packages:test'], + automerge: true, + }, + ], + }, + automergeTypes: { + description: 'Update @types/* packages automatically if tests pass', + packageRules: [ + { + packagePatterns: ['^@types/'], + automerge: true, + }, + ], + }, + doNotPinPackage: { + description: 'Disable version pinning for <code>{{arg0}}</code>', + packageRules: [ + { + packageNames: ['{{arg0}}'], + rangeStrategy: 'replace', + }, + ], + }, + pinSkipCi: { + description: 'Add [skip ci] to commit message body whenever pinning', + pin: { + commitBody: '[skip ci]', + }, + }, + gitSignOff: { + description: 'Append git Signed-off-by signature to git commits.', + commitBody: 'Signed-off-by: {{{gitAuthor}}}', + }, + npm: { + description: 'Keep package.json npm dependencies updated', + npm: { + enabled: true, + }, + }, + gomod: { + description: 'Enable Go modules support', + gomod: { + enabled: true, + }, + }, + onlyNpm: { + description: 'Renovate only npm dependencies', + docker: { + enabled: false, + }, + meteor: { + enabled: false, + }, + }, + docker: { + description: 'Keep Dockerfile FROM sources updated', + docker: { + enabled: true, + }, + }, + meteor: { + description: 'Keep Meteor Npm.depends packages updated', + meteor: { + enabled: true, + }, + }, + group: { + description: 'Group {{arg1}} packages into same branch/PR', + packageRules: [ + { + extends: ['{{arg0}}'], + groupName: '{{arg1}}', + }, + ], + }, + label: { + description: 'Apply label <code>{{arg0}}</code> to PRs', + labels: ['{{arg0}}'], + }, + labels: { + description: + 'Apply labels <code>{{arg0}}</code> and <code>{{arg1}}</code> to PRs', + labels: ['{{arg0}}', '{{arg1}}'], + }, + assignee: { + description: 'Assign PRs to <code>{{arg0}}</code>', + assignees: ['{{arg0}}'], + }, + reviewer: { + description: 'Add <code>{{arg0}}</code> as reviewer for PRs', + reviewers: ['{{arg0}}'], + }, + assignAndReview: { + description: 'Set <code>{{arg0}}</code> as assignee and reviewer of PRs', + extends: [':assignee({{arg0}})', ':reviewer({{arg0}})'], + }, + enableVulnerabilityAlerts: { + description: 'Raise PR when vulnerability alerts are detected', + vulnerabilityAlerts: { + enabled: true, + }, + }, + enableVulnerabilityAlertsWithLabel: { + description: + 'Raise PR when vulnerability alerts are detected with label <code>{{arg0}}</code>', + vulnerabilityAlerts: { + enabled: true, + labels: ['{{arg0}}'], + }, + }, + disableVulnerabilityAlerts: { + description: 'Disable vulnerability alerts completely', + vulnerabilityAlerts: { + enabled: false, + }, + }, + semanticCommits: { + description: 'Use semantic prefixes for commit messages and PR titles', + semanticCommits: true, + }, + semanticCommitsDisabled: { + description: 'Disable semantic prefixes for commit messages and PR titles', + semanticCommits: false, + }, + disableLockFiles: { + description: 'Disable lock file updates', + updateLockFiles: false, + }, + semanticCommitScope: { + description: + 'Use semantic commit scope <code>{{arg0}}</code> for all commits and PR titles', + semanticCommitScope: '{{arg0}}', + }, + semanticCommitScopeDisabled: { + description: 'Disable semantic commit scope for all commits and PR titles', + semanticCommitScope: null, + }, + widenPeerDependencies: { + description: + 'Always widen peerDependencies semver ranges when updating, instead of replacing', + packageRules: [ + { + depTypeList: ['peerDependencies'], + rangeStrategy: 'widen', + }, + ], + }, + masterIssue: { + description: 'Enable Renovate master issue creation', + masterIssue: true, + }, + masterIssueApproval: { + description: 'Enable Renovate master issue approval workflow', + masterIssueApproval: true, + }, + timezone: { + description: 'Evaluate schedules according to timezone {{arg0}}', + timezone: '{{arg0}}', + }, + pathSemanticCommitType: { + description: + 'Use semanticCommitType {{arg0}} for all package files matching path {{arg1}}', + packageRules: [ + { + paths: ['{{arg0}}'], + semanticCommitType: '{{arg1}}', + }, + ], + }, + followTag: { + description: + 'For package <code>{{arg0}}</code>, strictly follow release tag <code>{{arg1}}</code>', + packageRules: [ + { + packageNames: ['{{arg0}}'], + followTag: '{{arg1}}', + }, + ], + }, + githubComToken: { + description: 'Use provided token for github.com lookups', + hostRules: [ + { + domainName: 'github.com', + encrypted: { + token: '{{arg0}}', + }, + }, + ], + }, + base: { + description: 'deprecated alias for config:base', + extends: ['config:base'], + }, + app: { + description: 'deprecated alias for config:js-app', + extends: ['config:js-app'], + }, + library: { + description: 'deprecated alias for config:js-lib', + extends: ['config:js-lib'], + }, +}; diff --git a/lib/config/presets/internal/docker.ts b/lib/config/presets/internal/docker.ts new file mode 100644 index 0000000000..5d5ae47f5a --- /dev/null +++ b/lib/config/presets/internal/docker.ts @@ -0,0 +1,35 @@ +import { Preset } from '../common'; + +export const presets: Record<string, Preset> = { + disable: { + docker: { + enabled: false, + }, + 'docker-compose': { + enabled: false, + }, + circleci: { + enabled: false, + }, + }, + enableMajor: { + docker: { + major: { + enabled: true, + }, + }, + }, + disableMajor: { + docker: { + major: { + enabled: false, + }, + }, + }, + pinDigests: { + description: 'Pin Docker digests', + docker: { + pinDigests: true, + }, + }, +}; diff --git a/lib/config/presets/internal/group.ts b/lib/config/presets/internal/group.ts new file mode 100644 index 0000000000..4626b0e818 --- /dev/null +++ b/lib/config/presets/internal/group.ts @@ -0,0 +1,560 @@ +import * as monorepos from './monorepo'; +import { Preset } from '../common'; + +const staticGroups = { + all: { + description: 'Group all updates together', + groupName: 'all dependencies', + separateMajorMinor: false, + groupSlug: 'all', + packageRules: [ + { + packagePatterns: ['*'], + groupName: 'all dependencies', + groupSlug: 'all', + }, + ], + lockFileMaintenance: { + enabled: false, + }, + }, + allNonMajor: { + description: 'Group all minor and patch updates together', + packageRules: [ + { + packagePatterns: ['*'], + minor: { + groupName: 'all non-major dependencies', + groupSlug: 'all-minor-patch', + }, + }, + ], + }, + recommended: { + description: + 'Use curated list of recommended non-monorepo package groupings', + extends: [ + 'group:allApollographql', + 'group:fortawesome', + 'group:goOpenapi', + 'group:fusionjs', + 'group:hibernateCore', + 'group:hibernateValidator', + 'group:hibernateOgm', + 'group:hibernateCommons', + 'group:illuminate', + 'group:jekyllEcosystem', + 'group:polymer', + 'group:rubyOmniauth', + 'group:socketio', + 'group:springAmqp', + 'group:springAndroid', + 'group:springBatch', + 'group:springBoot', + 'group:springCloud', + 'group:springCore', + 'group:springData', + 'group:springHateoas', + 'group:springIntegration', + 'group:springKafka', + 'group:springLdap', + 'group:springMobile', + 'group:springOsgi', + 'group:springRestDocs', + 'group:springRoo', + 'group:springScala', + 'group:springSecurity', + 'group:springSession', + 'group:springShell', + 'group:springSocial', + 'group:springStatemachine', + 'group:springWebflow', + 'group:springWs', + 'group:symfony', + ], + ignoreDeps: [], + }, + allApollographql: { + description: 'Group all packages published by Apollo GraphQL together', + packageRules: [ + { + extends: 'packages:apollographql', + groupName: 'Apollo GraphQL packages', + }, + ], + }, + definitelyTyped: { + description: 'Group all @types packages together', + packageRules: [ + { + groupName: 'definitelyTyped', + packagePatterns: ['^@types/'], + }, + ], + }, + dotNetCore: { + description: '.NET Core Docker containers', + packageRules: [ + { + datasources: ['docker'], + packagePatterns: ['^mcr.microsoft.com/dotnet/core/'], + groupName: '.NET Core Docker containers', + }, + ], + }, + fortawesome: { + description: 'Group all packages by Font Awesome together', + packageRules: [ + { + groupName: 'Font Awesome', + packagePatterns: ['^@fortawesome/'], + }, + ], + }, + fusionjs: { + description: 'Fusion.js packages', + packageNames: [ + 'fusion-cli', + 'fusion-core', + 'fusion-test-utils', + 'fusion-tokens', + ], + packagePatterns: ['^fusion-plugin-*', '^fusion-react*', '^fusion-apollo*'], + }, + illuminate: { + description: 'Group PHP illuminate packages together', + packageRules: [ + { + packagePatterns: ['^illuminate/'], + groupName: 'illuminate packages', + groupSlug: 'illuminate', + }, + ], + }, + symfony: { + description: 'Group PHP symfony packages together', + packageRules: [ + { + packagePatterns: ['^symfony/'], + groupName: 'symfony packages', + groupSlug: 'symfony', + }, + ], + }, + polymer: { + description: 'Group all @polymer packages together', + packageRules: [ + { + groupName: 'polymer packages', + packagePatterns: ['^@polymer/'], + }, + ], + }, + hibernateCore: { + description: 'Group Java Hibernate Core packages', + packageRules: [ + { + packagePatterns: ['^org.hibernate:'], + groupName: 'hibernate core', + }, + ], + }, + hibernateValidator: { + description: 'Group Java Hibernate Validator packages', + packageRules: [ + { + packagePatterns: ['^org.hibernate.validator:'], + groupName: 'hibernate validator', + }, + ], + }, + hibernateOgm: { + description: 'Group Java Hibernate OGM packages', + packageRules: [ + { + packagePatterns: ['^org.hibernate.ogm:'], + groupName: 'hibernate ogm', + }, + ], + }, + hibernateCommons: { + description: 'Group Java Hibernate Commons packages', + packageRules: [ + { + packagePatterns: ['^org.hibernate.common:'], + groupName: 'hibernate commons', + }, + ], + }, + springAmqp: { + description: 'Group Java Spring AMQP packages', + packageRules: [ + { + groupName: 'spring amqp', + packagePatterns: ['^org.springframework.amqp:'], + }, + ], + }, + springAndroid: { + description: 'Group Java Spring Android packages', + packageRules: [ + { + groupName: 'spring android', + packagePatterns: ['^org.springframework.android:'], + }, + ], + }, + springBatch: { + description: 'Group Java Spring Batch packages', + packageRules: [ + { + groupName: 'spring batch', + packagePatterns: ['^org.springframework.batch:'], + }, + ], + }, + springBoot: { + description: 'Group Java Spring Boot packages', + packageRules: [ + { + groupName: 'spring boot', + packagePatterns: ['^org.springframework.boot:'], + }, + ], + }, + springCloud: { + description: 'Group Java Spring Cloud packages', + packageRules: [ + { + groupName: 'spring cloud', + packagePatterns: ['^org.springframework.cloud:'], + }, + ], + }, + springCore: { + description: 'Group Java Spring Core packages', + packageRules: [ + { + groupName: 'spring core', + packagePatterns: ['^org.springframework:'], + }, + ], + }, + springData: { + description: 'Group Java Spring Data packages', + packageRules: [ + { + groupName: 'spring data', + packagePatterns: ['^org.springframework.data:'], + }, + ], + }, + springHateoas: { + description: 'Group Java Spring HATEOAS packages', + packageRules: [ + { + groupName: 'spring hateoas', + packagePatterns: ['^org.springframework.hateoas:'], + }, + ], + }, + springIntegration: { + description: 'Group Java Spring Integration packages', + packageRules: [ + { + groupName: 'spring integration', + packagePatterns: ['^org.springframework.integration:'], + }, + ], + }, + springKafka: { + description: 'Group Java Spring Kafka packages', + packageRules: [ + { + groupName: 'spring kafka', + packagePatterns: ['^org.springframework.kafka:'], + }, + ], + }, + springLdap: { + description: 'Group Java Spring LDAP packages', + packageRules: [ + { + groupName: 'spring ldap', + packagePatterns: ['^org.springframework.ldap:'], + }, + ], + }, + springMobile: { + description: 'Group Java Spring Mobile packages', + packageRules: [ + { + groupName: 'spring mobile', + packagePatterns: ['^org.springframework.mobile:'], + }, + ], + }, + springOsgi: { + description: 'Group Java Spring OSGi packages', + packageRules: [ + { + groupName: 'spring osgi', + packagePatterns: ['^org.springframework.osgi:'], + }, + ], + }, + springRestDocs: { + description: 'Group Java Spring REST Docs packages', + packageRules: [ + { + groupName: 'spring restdocs', + packagePatterns: ['^org.springframework.restdocs:'], + }, + ], + }, + springRoo: { + description: 'Group Java Spring Roo packages', + packageRules: [ + { + groupName: 'spring roo', + packagePatterns: ['^org.springframework.roo:'], + }, + ], + }, + springScala: { + description: 'Group Java Spring Scala packages', + packageRules: [ + { + groupName: 'spring scala', + packagePatterns: ['^org.springframework.scala:'], + }, + ], + }, + springSecurity: { + description: 'Group Java Spring Security packages', + packageRules: [ + { + groupName: 'spring security', + packagePatterns: ['^org.springframework.security:'], + }, + ], + }, + springSession: { + description: 'Group Java Spring Session packages', + packageRules: [ + { + groupName: 'spring session', + packagePatterns: ['^org.springframework.session:'], + }, + ], + }, + springShell: { + description: 'Group Java Spring Shell packages', + packageRules: [ + { + groupName: 'spring shell', + packagePatterns: ['^org.springframework.shell:'], + }, + ], + }, + springSocial: { + description: 'Group Java Spring Social packages', + packageRules: [ + { + groupName: 'spring social', + packagePatterns: ['^org.springframework.social:'], + }, + ], + }, + springStatemachine: { + description: 'Group Java Spring Statemachine packages', + packageRules: [ + { + groupName: 'spring statemachine', + packagePatterns: ['^org.springframework.statemachine:'], + }, + ], + }, + springWebflow: { + description: 'Group Java Spring WebFlow packages', + packageRules: [ + { + groupName: 'spring webflow', + packagePatterns: ['^org.springframework.webflow:'], + }, + ], + }, + springWs: { + description: 'Group Java Spring WS packages', + packageRules: [ + { + groupName: 'spring ws', + packagePatterns: ['^org.springframework.ws:'], + }, + ], + }, + socketio: { + description: 'Group socket.io packages', + packageRules: [ + { + groupName: 'socket.io packages', + packagePatterns: ['^socket.io'], + }, + ], + }, + postcss: { + description: 'Group postcss packages together', + packageRules: [ + { + extends: 'packages:postcss', + groupName: 'postcss packages', + }, + ], + }, + jekyllEcosystem: { + description: 'Group jekyll and related ruby packages together', + packageRules: [ + { + sourceUrlPrefixes: [ + 'https://github.com/jekyll/', + 'https://github.com/github/pages-gem', + ], + groupName: 'jekyll ecosystem packages', + }, + ], + }, + rubyOmniauth: { + description: 'Group omniauth packages together', + packageRules: [ + { + datasources: ['rubygems'], + packagePatterns: ['^omniauth'], + groupName: 'omniauth packages', + }, + ], + }, + goOpenapi: { + description: 'Group go-openapi packages together', + packageRules: [ + { + datasources: ['go'], + groupName: 'go-openapi packages', + groupSlug: 'go-openapi', + packagePatterns: ['^github.com/go-openapi/'], + }, + ], + }, + linters: { + description: 'Group various lint packages together', + packageRules: [ + { + extends: 'packages:linters', + groupName: 'linters', + }, + ], + }, + jsUnitTest: { + description: 'Group JS unit test packages together', + packageRules: [ + { + extends: 'packages:jsUnitTest', + groupName: 'JS unit test packages', + }, + ], + }, + jsUnitTestNonMajor: { + description: 'Group JS unit test packages together', + packageRules: [ + { + extends: 'packages:jsUnitTest', + minor: { + groupName: 'JS unit test packages', + }, + }, + ], + }, + unitTest: { + description: 'Group all unit test packages together', + packageRules: [ + { + extends: 'packages:unitTest', + groupName: 'unit test packages', + }, + ], + }, + unitTestNonMajor: { + description: 'Group all unit test packages together', + packageRules: [ + { + extends: 'packages:unitTest', + minor: { + groupName: 'unit test packages', + }, + }, + ], + }, + jsTest: { + description: 'Group JS test packages together', + packageRules: [ + { + extends: 'packages:jsTest', + groupName: 'JS test packages', + }, + ], + }, + jsTestMonMajor: { + description: 'Group non-major JS test package updates together', + packageRules: [ + { + extends: 'packages:jsTest', + minor: { + groupName: 'JS test packages', + }, + }, + ], + }, + test: { + description: 'Group all test packages together', + packageRules: [ + { + extends: 'packages:test', + groupName: 'test packages', + }, + ], + }, + testNonMajor: { + description: 'Group all non-major test package updates together', + packageRules: [ + { + extends: 'packages:test', + minor: { + groupName: 'test packages', + }, + }, + ], + }, +}; + +const config: any = { ...staticGroups }; + +const monorepoNames = []; +for (const monorepo of Object.keys(monorepos.presets)) { + const name = `${monorepo}Monorepo`; + monorepoNames.push(`group:${name}`); + config[name] = { + packageRules: [ + { + description: `Group packages from ${monorepo} monorepo together`, + extends: `monorepo:${monorepo}`, + groupName: `${monorepo} monorepo`, + }, + ], + }; +} +config.monorepos = { + description: 'Group known monorepo packages together', + ignoreDeps: [], + extends: monorepoNames, +}; + +export const presets: Record<string, Preset> = config; diff --git a/lib/config/presets/internal/helpers.ts b/lib/config/presets/internal/helpers.ts new file mode 100644 index 0000000000..b7a1c81e7d --- /dev/null +++ b/lib/config/presets/internal/helpers.ts @@ -0,0 +1,31 @@ +import { Preset } from '../common'; + +export const presets: Record<string, Preset> = { + disableTypesNodeMajor: { + packageRules: [ + { + packageNames: ['@types/node'], + major: { + enabled: false, + }, + }, + ], + }, + oddIsUnstable: { + description: 'DEPRECATED: Odd version numbers are classified as unstable', + }, + oddIsUnstablePackages: { + description: + 'DEPRECATED: Preconfigure dependencies where an odd major version indicates unstable (Docker-only)', + }, + followTypescriptNext: { + description: + 'Keep <typescript> version in sync with the <code>next</code> tag', + extends: [':followTag(typescript, next)'], + }, + followTypescriptRc: { + description: + 'Keep <typescript> version in sync with the <code>rc</code> tag', + extends: [':followTag(typescript, rc)'], + }, +}; diff --git a/lib/config/presets/internal/index.spec.ts b/lib/config/presets/internal/index.spec.ts new file mode 100644 index 0000000000..5fd357df31 --- /dev/null +++ b/lib/config/presets/internal/index.spec.ts @@ -0,0 +1,22 @@ +import * as internal from '.'; +import { validateConfig } from '../../validation'; +import { massageConfig } from '../../massage'; + +jest.mock('../../../datasource/npm'); + +const ignoredPresets = ['default:group', 'default:timezone']; + +describe('config/presets/internal', () => { + for (const [groupName, groupPresets] of Object.entries(internal.groups)) { + for (const [presetName, presetConfig] of Object.entries(groupPresets)) { + const preset = `${groupName}:${presetName}`; + if (presetName !== 'description' && !ignoredPresets.includes(preset)) { + it(`${preset} validates`, async () => { + const res = await validateConfig(massageConfig(presetConfig), true); + expect(res.errors).toHaveLength(0); + expect(res.warnings).toHaveLength(0); + }); + } + } + } +}); diff --git a/lib/config/presets/internal/index.ts b/lib/config/presets/internal/index.ts new file mode 100644 index 0000000000..2f1dfe82d2 --- /dev/null +++ b/lib/config/presets/internal/index.ts @@ -0,0 +1,29 @@ +import { Preset } from '../common'; +import * as configPreset from './config'; +import * as defaultPreset from './default'; +import * as dockerPreset from './docker'; +import * as groupPreset from './group'; +import * as helpersPreset from './helpers'; +import * as monorepoPreset from './monorepo'; +import * as packagesPreset from './packages'; +import * as previewPreset from './preview'; +import * as schedulePreset from './schedule'; + +export const groups: Record<string, Record<string, Preset>> = { + config: configPreset.presets, + default: defaultPreset.presets, + docker: dockerPreset.presets, + group: groupPreset.presets, + helpers: helpersPreset.presets, + monorepo: monorepoPreset.presets, + packages: packagesPreset.presets, + preview: previewPreset.presets, + schedule: schedulePreset.presets, +}; + +export function getPreset( + pkgName: string, + presetName: string +): Preset | undefined { + return groups[pkgName] ? groups[pkgName][presetName] : undefined; +} diff --git a/lib/config/presets/internal/monorepo.ts b/lib/config/presets/internal/monorepo.ts new file mode 100644 index 0000000000..3f887bcb6f --- /dev/null +++ b/lib/config/presets/internal/monorepo.ts @@ -0,0 +1,134 @@ +import is from '@sindresorhus/is'; +import { Preset } from '../common'; + +const repoGroups = { + 'ag-grid': 'https://github.com/ag-grid/ag-grid', + 'arcus event-grid': 'https://github.com/arcus-azure/arcus.eventgrid', + 'arcus security': 'https://github.com/arcus-azure/arcus.security', + 'arcus messaging': 'https://github.com/arcus-azure/arcus.messaging', + 'arcus observability': 'https://github.com/arcus-azure/arcus.observability', + 'arcus webapi': 'https://github.com/arcus-azure/arcus.webapi', + 'arcus background-jobs': + 'https://github.com/arcus-azure/arcus.backgroundjobs', + 'algolia-react-instantsearch': + 'https://github.com/algolia/react-instantsearch', + 'apollo-server': 'https://github.com/apollographql/apollo-server', + 'aspnet AspNetWebStack': 'https://github.com/aspnet/AspNetWebStack', + 'aspnet Extensions': 'https://github.com/aspnet/Extensions', + 'aws-cdk': 'https://github.com/aws/aws-cdk', + 'azure azure-libraries-for-net': + 'https://github.com/Azure/azure-libraries-for-net', + 'azure azure-sdk-for-net': 'https://github.com/Azure/azure-sdk-for-net', + 'azure azure-storage-net': 'https://github.com/Azure/azure-storage-net', + 'bugsnag-js': 'https://github.com/bugsnag/bugsnag-js', + 'devextreme-reactive': 'https://github.com/DevExpress/devextreme-reactive', + 'electron-forge': 'https://github.com/electron-userland/electron-forge', + 'ember-decorators': 'https://github.com/ember-decorators/ember-decorators', + 'graphql-modules': 'https://github.com/Urigo/graphql-modules', + 'ionic-native': 'https://github.com/ionic-team/ionic-native', + 'mdc-react': 'material-components/material-components-web-react', + 'ngx-formly': 'https://github.com/ngx-formly/ngx-formly', + 'ngxs-store': 'https://github.com/ngxs/store', + 'react-apollo': 'https://github.com/apollographql/react-apollo', + 'react-dnd': 'https://github.com/react-dnd/react-dnd', + 'react-navigation': 'https://github.com/react-navigation/react-navigation', + 'reactivestack-cookies': 'https://github.com/reactivestack/cookies', + 'semantic-release': 'https://github.com/semantic-release/', + 'telus-tds': 'https://github.com/telusdigital/tds', + 'typescript-eslint': 'https://github.com/typescript-eslint/typescript-eslint', + 'typography-js': 'https://github.com/KyleAMathews/typography.js', + 'vue-cli': 'https://github.com/vuejs/vue-cli', + accounts: 'https://github.com/accounts-js/accounts', + angular1: 'https://github.com/angular/angular.js', + angular: 'https://github.com/angular/angular', + angularcli: 'https://github.com/angular/angular-cli', + apolloclient: 'https://github.com/apollographql/apollo-client', + apollolink: 'https://github.com/apollographql/apollo-link', + awsappsync: 'https://github.com/awslabs/aws-mobile-appsync-sdk-js', + babel: 'https://github.com/babel/babel', + baset: 'https://github.com/igmat/baset', + brave: 'https://github.com/openzipkin/brave', + capacitor: 'https://github.com/ionic-team/capacitor', + clarity: 'https://github.com/vmware/clarity', + commitlint: 'https://github.com/conventional-changelog/commitlint', + dropwizard: 'https://github.com/dropwizard/dropwizard', + emotion: 'https://github.com/emotion-js/emotion', + expo: 'https://github.com/expo/expo', + fimbullinter: 'https://github.com/fimbullinter/wotan', + flopflip: 'https://github.com/tdeekens/flopflip', + framework7: 'https://github.com/framework7io/framework7', + gatsby: 'https://github.com/gatsbyjs/gatsby', + graphqlcodegenerator: [ + 'https://github.com/dotansimha/graphql-code-generator', + 'https://github.com/dotansimha/graphql-codegen', + ], + 'graphql-toolkit': 'https://github.com/ardatan/graphql-toolkit', + hamcrest: 'https://github.com/hamcrest/JavaHamcrest', + hapijs: 'https://github.com/hapijs', + infrastructure: 'https://github.com/instructure/instructure-ui', + jasmine: 'https://github.com/jasmine/jasmine', + jersey: 'https://github.com/eclipse-ee4j/jersey', + jest: 'https://github.com/facebook/jest', + lerna: 'https://github.com/lerna/lerna', + lingui: 'https://github.com/lingui/js-lingui', + lodash: 'https://github.com/lodash/', + loopback: 'https://github.com/strongloop/loopback-next', + material: 'https://github.com/material-components/material-components-web', + mdx: 'https://github.com/mdx-js/mdx', + mui: 'https://github.com/mui-org/material-ui', + nest: 'https://github.com/nestjs/nest', + neutrino: [ + 'https://github.com/neutrinojs/neutrino', + 'https://github.com/mozilla-neutrino/neutrino-dev', + ], + nextjs: 'https://github.com/zeit/next.js', + ngrx: 'https://github.com/ngrx/', + nrwl: 'https://github.com/nrwl/', + nuxtjs: 'https://github.com/nuxt/nuxt.js', + openfeign: 'https://github.com/OpenFeign/feign', + picasso: 'https://github.com/qlik-oss/picasso.js', + pollyjs: 'https://github.com/Netflix/pollyjs', + pouchdb: 'https://github.com/pouchdb/pouchdb', + react: 'https://github.com/facebook/react', + reactrouter: 'https://github.com/ReactTraining/react-router', + reakit: 'https://github.com/reakit/reakit', + remark: 'https://github.com/remarkjs/remark', + router5: 'https://github.com/router5/router5', + sentry: 'https://github.com/getsentry/sentry-javascript', + springfox: 'https://github.com/springfox/springfox', + sanity: 'https://github.com/sanity-io/sanity', + storybook: 'https://github.com/storybookjs/storybook', + strapi: 'https://github.com/strapi/strapi', + stryker: 'https://github.com/stryker-mutator/stryker', + surveyjs: 'https://github.com/surveyjs/surveyjs', + Swashbuckle: 'https://github.com/domaindrivendev/Swashbuckle.AspNetCore', + treat: 'https://github.com/seek-oss/treat', + typefaces: 'https://github.com/KyleAMathews/typefaces', + uppy: 'https://github.com/transloadit/uppy', + vue: 'https://github.com/vuejs/vue', + vuepress: 'https://github.com/vuejs/vuepress', + webdriverio: 'https://github.com/webdriverio/webdriverio', + workbox: 'https://github.com/googlechrome/workbox', +}; + +const patternGroups = { + babel6: '^babel6$', + wordpress: '^@wordpress/', + angularmaterial: ['^@angular/material', '^@angular/cdk'], + 'aws-java-sdk': '^com.amazonaws:aws-java-sdk-', +}; + +export const presets: Record<string, Preset> = {}; + +for (const [name, value] of Object.entries(repoGroups)) { + presets[name] = { + description: `${name} monorepo`, + sourceUrlPrefixes: is.array(value) ? value : [value], + }; +} +for (const [name, value] of Object.entries(patternGroups)) { + presets[name] = { + description: `${name} monorepo`, + packagePatterns: is.array(value) ? value : [value], + }; +} diff --git a/lib/config/presets/internal/packages.ts b/lib/config/presets/internal/packages.ts new file mode 100644 index 0000000000..af8b8dd897 --- /dev/null +++ b/lib/config/presets/internal/packages.ts @@ -0,0 +1,81 @@ +import { Preset } from '../common'; + +export const presets: Record<string, Preset> = { + angularJs: { + description: 'All angular.js packages', + packageNames: [ + 'angular', + 'angular-animate', + 'angular-scroll', + 'angular-sanitize', + ], + }, + apollographql: { + description: 'All packages published by Apollo GraphQL', + sourceUrlPrefixes: ['https://github.com/apollographql/'], + }, + mapbox: { + description: 'All mapbox-related packages', + packagePatterns: ['^(leaflet|mapbox)'], + }, + eslint: { + description: 'All eslint packages', + packageNames: ['babel-eslint'], + packagePatterns: ['^eslint'], + }, + stylelint: { + description: 'All stylelint packages', + packagePatterns: ['^stylelint'], + }, + tslint: { + description: 'All tslint packages', + packageNames: ['codelyzer'], + packagePatterns: ['\\btslint\\b'], + }, + linters: { + description: 'All lint-related packages', + extends: ['packages:eslint', 'packages:stylelint', 'packages:tslint'], + packageNames: ['remark-lint'], + }, + postcss: { + description: 'All postcss packages', + packageNames: ['postcss'], + packagePatterns: ['^postcss-'], + }, + jsUnitTest: { + description: 'Unit test packages for javascript', + packageNames: [ + 'coveralls', + 'istanbul', + 'mock-fs', + 'nock', + 'nyc', + 'proxyquire', + 'supertest', + ], + packagePatterns: [ + '^chai', + '^jest', + '^mocha', + '^qunit', + '^sinon', + '^should', + ], + }, + unitTest: { + description: 'All unit test packages', + extends: ['packages:jsUnitTest'], + }, + jsTest: { + description: 'JavaScript test packages', + extends: ['packages:jsUnitTest'], + }, + test: { + description: 'Test packages', + extends: ['packages:unitTest'], + }, + gatsby: { + description: 'All packages published by Gatsby', + extends: ['monorepo:gatsby'], + }, +}; diff --git a/lib/config/presets/internal/preview.ts b/lib/config/presets/internal/preview.ts new file mode 100644 index 0000000000..4001bfa981 --- /dev/null +++ b/lib/config/presets/internal/preview.ts @@ -0,0 +1,27 @@ +import { Preset } from '../common'; + +export const presets: Record<string, Preset> = { + dockerCompose: { + description: 'Enable docker compose image updating', + 'docker-compose': { + enabled: true, + }, + }, + dockerVersions: { + description: 'Upgrade docker tags to newer versions', + docker: { + major: { + enabled: true, + }, + minor: { + enabled: true, + }, + }, + }, + buildkite: { + description: 'Enable buildkite functionality', + buildkite: { + enabled: true, + }, + }, +}; diff --git a/lib/config/presets/internal/schedule.ts b/lib/config/presets/internal/schedule.ts new file mode 100644 index 0000000000..6281b100d2 --- /dev/null +++ b/lib/config/presets/internal/schedule.ts @@ -0,0 +1,37 @@ +import { Preset } from '../common'; + +export const presets: Record<string, Preset> = { + earlyMondays: { + description: 'Weekly schedule on early monday mornings', + schedule: ['before 3am on Monday'], + }, + daily: { + description: 'Schedule daily', + schedule: ['before 2am'], + }, + weekly: { + description: 'Schedule weekly', + extends: ['schedule:earlyMondays'], + }, + monthly: { + description: 'Schedule monthly', + schedule: ['before 3am on the first day of the month'], + }, + weekends: { + description: 'Schedule for weekends', + schedule: ['every weekend'], + }, + weekdays: { + description: 'Schedule for weekdays', + schedule: ['every weekday'], + }, + nonOfficeHours: { + description: + 'Schedule for typical non-office hours (night time and weekends)', + schedule: [ + 'after 10pm every weekday', + 'before 5am every weekday', + 'every weekend', + ], + }, +}; -- GitLab