mirror of https://github.com/renovatebot/renovate
847 lines
21 KiB
TypeScript
847 lines
21 KiB
TypeScript
import type { Preset } from '../types';
|
|
import * as monorepos from './monorepos';
|
|
|
|
const nonPinUpdateTypes = ['digest', 'patch', 'minor', 'major'];
|
|
|
|
/* eslint sort-keys: ["error", "asc", {caseSensitive: false, natural: true}] */
|
|
|
|
const staticGroups = {
|
|
all: {
|
|
description: 'Group all updates together.',
|
|
groupName: 'all dependencies',
|
|
groupSlug: 'all',
|
|
lockFileMaintenance: {
|
|
enabled: false,
|
|
},
|
|
packageRules: [
|
|
{
|
|
groupName: 'all dependencies',
|
|
groupSlug: 'all',
|
|
matchPackageNames: ['*'],
|
|
},
|
|
],
|
|
|
|
separateMajorMinor: false,
|
|
},
|
|
allApollographql: {
|
|
description: 'Group all packages published by Apollo GraphQL together.',
|
|
packageRules: [
|
|
{
|
|
extends: ['packages:apollographql'],
|
|
groupName: 'Apollo GraphQL packages',
|
|
},
|
|
],
|
|
},
|
|
allDigest: {
|
|
description: 'Group all `digest` updates together.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'all digest updates',
|
|
groupSlug: 'all-digest',
|
|
matchPackageNames: ['*'],
|
|
matchUpdateTypes: ['digest'],
|
|
},
|
|
],
|
|
},
|
|
allNonMajor: {
|
|
description: 'Group all `minor` and `patch` updates together.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'all non-major dependencies',
|
|
groupSlug: 'all-minor-patch',
|
|
matchPackageNames: ['*'],
|
|
matchUpdateTypes: ['minor', 'patch'],
|
|
},
|
|
],
|
|
},
|
|
codemirror: {
|
|
description: 'Group CodeMirror packages together.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'CodeMirror',
|
|
matchPackageNames: ['@codemirror/**'],
|
|
},
|
|
],
|
|
},
|
|
definitelyTyped: {
|
|
description: 'Group all `@types` packages together.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'definitelyTyped',
|
|
matchPackageNames: ['@types/**'],
|
|
},
|
|
],
|
|
},
|
|
dotNetCore: {
|
|
description: '.NET Core Docker containers.',
|
|
packageRules: [
|
|
{
|
|
groupName: '.NET Core Docker containers',
|
|
matchDatasources: ['docker'],
|
|
matchPackageNames: ['mcr.microsoft.com/dotnet/**'],
|
|
},
|
|
],
|
|
},
|
|
flyway: {
|
|
description: 'Group Java Flyway packages.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'flyway',
|
|
matchPackageNames: ['org.flywaydb:*', 'org.flywaydb.flyway:*'],
|
|
},
|
|
],
|
|
},
|
|
fortawesome: {
|
|
description: 'Group all packages by Font Awesome together.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'Font Awesome',
|
|
matchPackageNames: ['@fortawesome/**'],
|
|
},
|
|
],
|
|
},
|
|
fusionjs: {
|
|
description: 'Group Fusion.js packages together.',
|
|
matchPackageNames: [
|
|
'fusion-cli',
|
|
'fusion-core',
|
|
'fusion-test-utils',
|
|
'fusion-tokens',
|
|
'fusion-plugin-**',
|
|
'fusion-react**',
|
|
'fusion-apollo**',
|
|
],
|
|
},
|
|
githubArtifactActions: {
|
|
description:
|
|
'Group `download-artifact` and `upload-artifact` major updates together.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'GitHub Artifact Actions',
|
|
matchManagers: ['github-actions'],
|
|
matchPackageNames: [
|
|
'actions/download-artifact',
|
|
'actions/upload-artifact',
|
|
],
|
|
matchUpdateTypes: ['major'],
|
|
},
|
|
],
|
|
},
|
|
glimmer: {
|
|
description: 'Group Glimmer.js packages together.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'Glimmer.js packages',
|
|
groupSlug: 'glimmer',
|
|
matchPackageNames: ['@glimmer/component', '@glimmer/tracking'],
|
|
},
|
|
],
|
|
},
|
|
googleapis: {
|
|
description: 'Group `googleapis` packages together.',
|
|
packageRules: [
|
|
{
|
|
extends: ['packages:googleapis'],
|
|
groupName: 'googleapis packages',
|
|
},
|
|
],
|
|
},
|
|
goOpenapi: {
|
|
description: 'Group `go-openapi` packages together.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'go-openapi packages',
|
|
groupSlug: 'go-openapi',
|
|
matchDatasources: ['go'],
|
|
matchPackageNames: ['github.com/go-openapi/**'],
|
|
},
|
|
],
|
|
},
|
|
hibernateCommons: {
|
|
description: 'Group Java Hibernate Commons packages.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'hibernate commons',
|
|
matchPackageNames: ['org.hibernate.common:**'],
|
|
},
|
|
],
|
|
},
|
|
hibernateCore: {
|
|
description: 'Group Java Hibernate Core packages.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'hibernate core',
|
|
matchPackageNames: ['org.hibernate:**'],
|
|
},
|
|
],
|
|
},
|
|
hibernateOgm: {
|
|
description: 'Group Java Hibernate OGM packages.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'hibernate ogm',
|
|
matchPackageNames: ['org.hibernate.ogm:**'],
|
|
},
|
|
],
|
|
},
|
|
hibernateValidator: {
|
|
description: 'Group Java Hibernate Validator packages.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'hibernate validator',
|
|
matchPackageNames: ['org.hibernate.validator:**'],
|
|
},
|
|
],
|
|
},
|
|
illuminate: {
|
|
description: 'Group PHP Illuminate packages together.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'illuminate packages',
|
|
groupSlug: 'illuminate',
|
|
matchPackageNames: ['illuminate/**'],
|
|
},
|
|
],
|
|
},
|
|
jekyllEcosystem: {
|
|
description: 'Group Jekyll and related Ruby packages together.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'jekyll ecosystem packages',
|
|
matchSourceUrls: [
|
|
'https://github.com/jekyll/**',
|
|
'https://github.com/github/pages-gem**',
|
|
],
|
|
},
|
|
],
|
|
},
|
|
jestPlusTSJest: {
|
|
description: 'Add `ts-jest` `major` update to Jest monorepo.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'jest monorepo',
|
|
matchSourceUrls: ['https://github.com/kulshekhar/ts-jest'],
|
|
matchUpdateTypes: ['major'],
|
|
},
|
|
],
|
|
},
|
|
jestPlusTypes: {
|
|
description: 'Add `@types/jest` update to Jest monorepo.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'jest monorepo',
|
|
matchPackageNames: ['@types/jest'],
|
|
matchUpdateTypes: nonPinUpdateTypes,
|
|
},
|
|
],
|
|
},
|
|
jsTest: {
|
|
description: 'Group JS test packages together.',
|
|
packageRules: [
|
|
{
|
|
extends: ['packages:jsTest'],
|
|
groupName: 'JS test packages',
|
|
},
|
|
],
|
|
},
|
|
jsTestNonMajor: {
|
|
description: 'Group non-major JS test package updates together.',
|
|
packageRules: [
|
|
{
|
|
extends: ['packages:jsTest'],
|
|
groupName: 'JS test packages',
|
|
matchUpdateTypes: ['minor', 'patch'],
|
|
},
|
|
],
|
|
},
|
|
jsUnitTest: {
|
|
description: 'Group JavaScript unit test packages together.',
|
|
packageRules: [
|
|
{
|
|
extends: ['packages:jsUnitTest'],
|
|
groupName: 'JS unit test packages',
|
|
},
|
|
],
|
|
},
|
|
jsUnitTestNonMajor: {
|
|
description:
|
|
'Group JavaScipt unit test packages together for non-major updates.',
|
|
packageRules: [
|
|
{
|
|
extends: ['packages:jsUnitTest'],
|
|
groupName: 'JS unit test packages',
|
|
matchUpdateTypes: ['minor', 'patch'],
|
|
},
|
|
],
|
|
},
|
|
jwtFramework: {
|
|
description: 'Group JWT Framework packages together.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'JWT Framework packages',
|
|
matchDatasources: ['packagist'],
|
|
matchPackageNames: ['web-token/**'],
|
|
},
|
|
],
|
|
},
|
|
kubernetes: {
|
|
description: 'Group Kubernetes packages together.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'kubernetes packages',
|
|
groupSlug: 'kubernetes-go',
|
|
matchDatasources: ['go'],
|
|
matchPackageNames: [
|
|
'k8s.io/api**',
|
|
'k8s.io/apiextensions-apiserver**',
|
|
'k8s.io/apimachinery**',
|
|
'k8s.io/apiserver**',
|
|
'k8s.io/cli-runtime**',
|
|
'k8s.io/client-go**',
|
|
'k8s.io/cloud-provider**',
|
|
'k8s.io/cluster-bootstrap**',
|
|
'k8s.io/code-generator**',
|
|
'k8s.io/component-base**',
|
|
'k8s.io/controller-manager**',
|
|
'k8s.io/cri-api**',
|
|
// 'k8s.io/csi-api', has not go.mod set up and does not follow the versioning of other repos
|
|
'k8s.io/csi-translation-lib**',
|
|
'k8s.io/kube-aggregator**',
|
|
'k8s.io/kube-controller-manager**',
|
|
'k8s.io/kube-proxy**',
|
|
'k8s.io/kube-scheduler**',
|
|
'k8s.io/kubectl**',
|
|
'k8s.io/kubelet**',
|
|
'k8s.io/legacy-cloud-providers**',
|
|
'k8s.io/metrics**',
|
|
'k8s.io/mount-utils**',
|
|
'k8s.io/pod-security-admission**',
|
|
'k8s.io/sample-apiserver**',
|
|
'k8s.io/sample-cli-plugin**',
|
|
'k8s.io/sample-controller**',
|
|
],
|
|
},
|
|
],
|
|
},
|
|
linters: {
|
|
description: 'Group various lint packages together.',
|
|
packageRules: [
|
|
{
|
|
extends: ['packages:linters'],
|
|
groupName: 'linters',
|
|
},
|
|
],
|
|
},
|
|
nodeJs: {
|
|
description:
|
|
"Group anything that looks like Node.js together so that it's updated together.",
|
|
packageRules: [
|
|
{
|
|
commitMessageTopic: 'Node.js',
|
|
matchDatasources: ['docker'],
|
|
matchPackageNames: [
|
|
'/(?:^|/)node$/', // node or ends with "/node, except those below"
|
|
'!calico/node',
|
|
'!docker.io/calico/node',
|
|
'!kindest/node',
|
|
],
|
|
},
|
|
],
|
|
},
|
|
phpstan: {
|
|
description: 'Group PHPStan packages together.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'PHPStan packages',
|
|
matchDatasources: ['packagist'],
|
|
matchPackageNames: [
|
|
'phpstan/phpstan',
|
|
'//phpstan-/',
|
|
'//larastan/',
|
|
'phpstan/extension-installer',
|
|
],
|
|
},
|
|
],
|
|
},
|
|
polymer: {
|
|
description: 'Group all `@polymer` packages together.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'polymer packages',
|
|
matchPackageNames: ['@polymer/**'],
|
|
},
|
|
],
|
|
},
|
|
postcss: {
|
|
description: 'Group PostCSS packages together.',
|
|
packageRules: [
|
|
{
|
|
extends: ['packages:postcss'],
|
|
groupName: 'postcss packages',
|
|
},
|
|
],
|
|
},
|
|
pulumi: {
|
|
description: 'Group Pulumi packages together.',
|
|
packageRules: [
|
|
{
|
|
description: 'Group Pulumi Node.JS packages together.',
|
|
groupName: 'Pulumi',
|
|
groupSlug: 'pulumi-node',
|
|
matchDatasources: ['npm'],
|
|
matchPackageNames: ['@pulumi/**'],
|
|
},
|
|
{
|
|
description: 'Group Pulumi Python packages together.',
|
|
groupName: 'Pulumi',
|
|
groupSlug: 'pulumi-python',
|
|
matchDatasources: ['pypi'],
|
|
matchPackageNames: ['pulumi-**'],
|
|
},
|
|
{
|
|
description: 'Group Pulumi Go packages together.',
|
|
groupName: 'Pulumi',
|
|
groupSlug: 'pulumi-go',
|
|
matchDatasources: ['go'],
|
|
matchPackageNames: ['github.com/pulumi/**'],
|
|
},
|
|
{
|
|
description: 'Group Pulumi Java packages together.',
|
|
groupName: 'Pulumi',
|
|
groupSlug: 'pulumi-java',
|
|
matchDatasources: ['maven'],
|
|
matchPackageNames: ['com.pulumi**'],
|
|
},
|
|
{
|
|
description: 'Group Pulumi .NET packages together.',
|
|
groupName: 'Pulumi',
|
|
groupSlug: 'pulumi-dotnet',
|
|
matchDatasources: ['nuget'],
|
|
matchPackageNames: ['Pulumi**'],
|
|
},
|
|
],
|
|
},
|
|
react: {
|
|
description: 'Group React and corresponding `@types` packages together.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'react monorepo',
|
|
matchPackageNames: ['@types/react', '@types/react-dom'],
|
|
},
|
|
],
|
|
},
|
|
recommended: {
|
|
description:
|
|
'Use curated list of recommended non-monorepo package groupings.',
|
|
extends: [
|
|
'group:nodeJs',
|
|
'group:allApollographql',
|
|
'group:codemirror',
|
|
'group:flyway',
|
|
'group:fortawesome',
|
|
'group:fusionjs',
|
|
'group:githubArtifactActions',
|
|
'group:glimmer',
|
|
'group:goOpenapi',
|
|
'group:hibernateCore',
|
|
'group:hibernateValidator',
|
|
'group:hibernateOgm',
|
|
'group:hibernateCommons',
|
|
'group:illuminate',
|
|
'group:jekyllEcosystem',
|
|
'group:jestPlusTSJest',
|
|
'group:jestPlusTypes',
|
|
'group:jwtFramework',
|
|
'group:kubernetes',
|
|
'group:phpstan',
|
|
'group:polymer',
|
|
'group:react',
|
|
'group:remark',
|
|
'group:resilience4j',
|
|
'group:rubyOnRails',
|
|
'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: [], // Hack to improve onboarding PR description
|
|
},
|
|
remark: {
|
|
description: 'Group remark packages together.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'remark',
|
|
matchDatasources: ['npm'],
|
|
matchSourceUrls: ['https://github.com/remarkjs/**'],
|
|
},
|
|
],
|
|
},
|
|
resilience4j: {
|
|
description: 'Group Java Resilience4j packages.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'resilience4j',
|
|
matchPackageNames: ['io.github.resilience4j:**'],
|
|
},
|
|
],
|
|
},
|
|
rubyOmniauth: {
|
|
description: 'Group OmniAuth packages together.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'omniauth packages',
|
|
matchDatasources: ['rubygems'],
|
|
matchPackageNames: ['omniauth**'],
|
|
},
|
|
],
|
|
},
|
|
rubyOnRails: {
|
|
description: 'Group Ruby on Rails packages together.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'Ruby on Rails packages',
|
|
matchDatasources: ['rubygems'],
|
|
matchPackageNames: [
|
|
'actioncable',
|
|
'actionmailbox',
|
|
'actionmailer',
|
|
'actionpack',
|
|
'actiontext',
|
|
'actionview',
|
|
'activejob',
|
|
'activemodel',
|
|
'activerecord',
|
|
'activestorage',
|
|
'activesupport',
|
|
'railties',
|
|
'rails',
|
|
],
|
|
},
|
|
],
|
|
},
|
|
socketio: {
|
|
description: 'Group socket.io packages.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'socket.io packages',
|
|
matchPackageNames: ['socket.io**'],
|
|
},
|
|
],
|
|
},
|
|
springAmqp: {
|
|
description: 'Group Java Spring AMQP packages.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'spring amqp',
|
|
matchPackageNames: ['org.springframework.amqp:**'],
|
|
},
|
|
],
|
|
},
|
|
springAndroid: {
|
|
description: 'Group Java Spring Android packages.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'spring android',
|
|
matchPackageNames: ['org.springframework.android:**'],
|
|
},
|
|
],
|
|
},
|
|
springBatch: {
|
|
description: 'Group Java Spring Batch packages.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'spring batch',
|
|
matchPackageNames: ['org.springframework.batch:**'],
|
|
},
|
|
],
|
|
},
|
|
springBoot: {
|
|
description: 'Group Java Spring Boot packages.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'spring boot',
|
|
matchDepNames: ['org.springframework.boot'],
|
|
},
|
|
{
|
|
groupName: 'spring boot',
|
|
matchPackageNames: ['org.springframework.boot:**'],
|
|
},
|
|
],
|
|
},
|
|
springCloud: {
|
|
description: 'Group Java Spring Cloud packages.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'spring cloud',
|
|
matchPackageNames: ['org.springframework.cloud:**'],
|
|
},
|
|
],
|
|
},
|
|
springCore: {
|
|
description: 'Group Java Spring Core packages.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'spring core',
|
|
matchPackageNames: ['org.springframework:**'],
|
|
},
|
|
],
|
|
},
|
|
springData: {
|
|
description: 'Group Java Spring Data packages.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'spring data',
|
|
matchPackageNames: ['org.springframework.data:**'],
|
|
},
|
|
],
|
|
},
|
|
springHateoas: {
|
|
description: 'Group Java Spring HATEOAS packages.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'spring hateoas',
|
|
matchPackageNames: ['org.springframework.hateoas:**'],
|
|
},
|
|
],
|
|
},
|
|
springIntegration: {
|
|
description: 'Group Java Spring Integration packages.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'spring integration',
|
|
matchPackageNames: ['org.springframework.integration:**'],
|
|
},
|
|
],
|
|
},
|
|
springKafka: {
|
|
description: 'Group Java Spring Kafka packages.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'spring kafka',
|
|
matchPackageNames: ['org.springframework.kafka:**'],
|
|
},
|
|
],
|
|
},
|
|
springLdap: {
|
|
description: 'Group Java Spring LDAP packages.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'spring ldap',
|
|
matchPackageNames: ['org.springframework.ldap:**'],
|
|
},
|
|
],
|
|
},
|
|
springMobile: {
|
|
description: 'Group Java Spring Mobile packages.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'spring mobile',
|
|
matchPackageNames: ['org.springframework.mobile:**'],
|
|
},
|
|
],
|
|
},
|
|
springOsgi: {
|
|
description: 'Group Java Spring OSGi packages.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'spring osgi',
|
|
matchPackageNames: ['org.springframework.osgi:**'],
|
|
},
|
|
],
|
|
},
|
|
springRestDocs: {
|
|
description: 'Group Java Spring REST Docs packages.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'spring restdocs',
|
|
matchPackageNames: ['org.springframework.restdocs:**'],
|
|
},
|
|
],
|
|
},
|
|
springRoo: {
|
|
description: 'Group Java Spring Roo packages.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'spring roo',
|
|
matchPackageNames: ['org.springframework.roo:**'],
|
|
},
|
|
],
|
|
},
|
|
springScala: {
|
|
description: 'Group Java Spring Scala packages.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'spring scala',
|
|
matchPackageNames: ['org.springframework.scala:**'],
|
|
},
|
|
],
|
|
},
|
|
springSecurity: {
|
|
description: 'Group Java Spring Security packages.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'spring security',
|
|
matchPackageNames: ['org.springframework.security:**'],
|
|
},
|
|
],
|
|
},
|
|
springSession: {
|
|
description: 'Group Java Spring Session packages.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'spring session',
|
|
matchPackageNames: ['org.springframework.session:**'],
|
|
},
|
|
],
|
|
},
|
|
springShell: {
|
|
description: 'Group Java Spring Shell packages.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'spring shell',
|
|
matchPackageNames: ['org.springframework.shell:**'],
|
|
},
|
|
],
|
|
},
|
|
springSocial: {
|
|
description: 'Group Java Spring Social packages.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'spring social',
|
|
matchPackageNames: ['org.springframework.social:**'],
|
|
},
|
|
],
|
|
},
|
|
springStatemachine: {
|
|
description: 'Group Java Spring Statemachine packages.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'spring statemachine',
|
|
matchPackageNames: ['org.springframework.statemachine:**'],
|
|
},
|
|
],
|
|
},
|
|
springWebflow: {
|
|
description: 'Group Java Spring WebFlow packages.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'spring webflow',
|
|
matchPackageNames: ['org.springframework.webflow:**'],
|
|
},
|
|
],
|
|
},
|
|
springWs: {
|
|
description: 'Group Java Spring WS packages.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'spring ws',
|
|
matchPackageNames: ['org.springframework.ws:**'],
|
|
},
|
|
],
|
|
},
|
|
symfony: {
|
|
description: 'Group PHP Symfony packages together.',
|
|
packageRules: [
|
|
{
|
|
groupName: 'symfony packages',
|
|
groupSlug: 'symfony',
|
|
matchPackageNames: ['symfony/**'],
|
|
},
|
|
],
|
|
},
|
|
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'],
|
|
groupName: 'test packages',
|
|
matchUpdateTypes: ['minor', 'patch'],
|
|
},
|
|
],
|
|
},
|
|
unitTest: {
|
|
description: 'Group all unit test packages together.',
|
|
packageRules: [
|
|
{
|
|
extends: ['packages:unitTest'],
|
|
groupName: 'unit test packages',
|
|
},
|
|
],
|
|
},
|
|
unitTestNonMajor: {
|
|
description: 'Group all unit test packages together for non-major updates.',
|
|
packageRules: [
|
|
{
|
|
extends: ['packages:unitTest'],
|
|
groupName: 'unit test packages',
|
|
matchUpdateTypes: ['minor', 'patch'],
|
|
},
|
|
],
|
|
},
|
|
vite: {
|
|
description: 'Group all Vite related packages together.',
|
|
packageRules: [
|
|
{
|
|
extends: ['packages:vite'],
|
|
groupName: 'Vite 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`,
|
|
matchUpdateTypes: nonPinUpdateTypes,
|
|
},
|
|
],
|
|
};
|
|
}
|
|
config.monorepos = {
|
|
description: 'Group known monorepo packages together.',
|
|
extends: monorepoNames,
|
|
ignoreDeps: [], // Hack to improve onboarding PR description
|
|
};
|
|
|
|
export const presets: Record<string, Preset> = config;
|