From ed1f6500306c606ed15bfbdca5d09104a0bc8c0c Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Tue, 1 Sep 2020 14:37:09 +0200 Subject: [PATCH] feat(config): templated branchPrefix migration --- docs/usage/configuration-options.md | 2 ++ lib/config/__snapshots__/migration.spec.ts.snap | 3 ++- lib/config/migration.spec.ts | 1 + lib/config/migration.ts | 9 +++++++++ 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/docs/usage/configuration-options.md b/docs/usage/configuration-options.md index f425d4266b..6cdef2a246 100644 --- a/docs/usage/configuration-options.md +++ b/docs/usage/configuration-options.md @@ -170,6 +170,8 @@ Warning: it's strongly recommended not to configure this field directly. Use at You can modify this field if you want to change the prefix used. For example if you want branches to be like `deps/eslint-4.x` instead of `renovate/eslint-4.x` then you configure `branchPrefix` = `deps/`. Or if you wish to avoid forward slashes in branch names then you could use `renovate_` instead, for example. +`branchPrefix` must be configured at the root of the configuration (e.g. not within any package rule) and is not allowed to use template values. e.g. instead of `renovate/{{parentDir}}-`, configure the template part in `additionalBranchPrefix`, like `"additionalBranchPrefix": "{{parentDir}}-"`. + Note that this setting does not change the default _onboarding_ branch name, i.e. `renovate/configure`. If you wish to change that too, you need to also configure the field `onboardingBranch` in your admin bot config. ## branchTopic diff --git a/lib/config/__snapshots__/migration.spec.ts.snap b/lib/config/__snapshots__/migration.spec.ts.snap index 3442949a7c..e7467aa783 100644 --- a/lib/config/__snapshots__/migration.spec.ts.snap +++ b/lib/config/__snapshots__/migration.spec.ts.snap @@ -8,13 +8,14 @@ Object { exports[`config/migration migrateConfig(config, parentConfig) it migrates config 1`] = ` Object { - "additionalBranchPrefix": "foo", + "additionalBranchPrefix": "{{parentDir}}-", "autodiscover": true, "automerge": false, "automergeType": "branch", "baseBranches": Array [ "next", ], + "branchPrefix": "renovate/", "commitMessage": "{{#if semanticCommitType}}{{semanticCommitType}}{{#if semanticCommitScope}}({{semanticCommitScope}}){{/if}}: {{/if}}some commit message", "commitMessageExtra": "{{currentValue}} something", "dependencyDashboard": true, diff --git a/lib/config/migration.spec.ts b/lib/config/migration.spec.ts index 86dae20755..b904f26f04 100644 --- a/lib/config/migration.spec.ts +++ b/lib/config/migration.spec.ts @@ -44,6 +44,7 @@ describe('config/migration', () => { automergeType: 'branch-push', baseBranch: 'next', managerBranchPrefix: 'foo', + branchPrefix: 'renovate/{{parentDir}}-', renovateFork: true, ignoreNodeModules: true, node: { diff --git a/lib/config/migration.ts b/lib/config/migration.ts index f71bd3e367..e1aa1ab235 100644 --- a/lib/config/migration.ts +++ b/lib/config/migration.ts @@ -194,6 +194,15 @@ export function migrateConfig( isMigrated = true; delete migratedConfig.managerBranchPrefix; migratedConfig.additionalBranchPrefix = val; + } else if ( + key === 'branchPrefix' && + is.string(val) && + val.includes('{{') + ) { + isMigrated = true; + const templateIndex = val.indexOf(`{{`); + migratedConfig.branchPrefix = val.substring(0, templateIndex); + migratedConfig.additionalBranchPrefix = val.substring(templateIndex); } else if (key === 'upgradeInRange') { isMigrated = true; delete migratedConfig.upgradeInRange; -- GitLab