diff --git a/lib/manager/ansible-galaxy/index.ts b/lib/manager/ansible-galaxy/index.ts index 912d1c9518e1642fd40c12228cf184b02f389f11..844df06481efadec61246c4f8d7fcff78ac48464 100644 --- a/lib/manager/ansible-galaxy/index.ts +++ b/lib/manager/ansible-galaxy/index.ts @@ -2,8 +2,6 @@ import extractPackageFile from './extract'; export { extractPackageFile }; -export const autoReplace = true; - export const defaultConfig = { fileMatch: ['(^|/)requirements\\.ya?ml$'], }; diff --git a/lib/manager/buildkite/index.ts b/lib/manager/buildkite/index.ts index f5e32ab955273f7bf1d1a928d899a5e093cdc9c2..b11a9d6f821516b34d0407927628c39699398043 100644 --- a/lib/manager/buildkite/index.ts +++ b/lib/manager/buildkite/index.ts @@ -2,8 +2,6 @@ import { extractPackageFile } from './extract'; export { extractPackageFile }; -export const autoReplace = true; - export const defaultConfig = { fileMatch: ['buildkite\\.ya?ml', '\\.buildkite/.+\\.ya?ml$'], commitMessageTopic: 'buildkite plugin {{depName}}', diff --git a/lib/manager/cdnurl/index.ts b/lib/manager/cdnurl/index.ts index db62cd697474307ec9dad974b3d5efc1c8719062..edf2106e6533e37d13ad502c1273d8ed572ffd17 100644 --- a/lib/manager/cdnurl/index.ts +++ b/lib/manager/cdnurl/index.ts @@ -3,8 +3,6 @@ import { extractPackageFile } from './extract'; export { extractPackageFile }; -export const autoReplace = true; - export const defaultConfig = { fileMatch: [], versioning: semverVersioning.id, diff --git a/lib/manager/common.ts b/lib/manager/common.ts index 9ef2e8e488e51c96eaaadc8c949ebd895cbc3bf0..88aa5d8415af24f646c1f08df809085afb392e22 100644 --- a/lib/manager/common.ts +++ b/lib/manager/common.ts @@ -75,7 +75,6 @@ export interface NpmLockFiles { export interface PackageFile<T = Record<string, any>> extends NpmLockFiles, ManagerData<T> { - autoReplace?: boolean; hasYarnWorkspaces?: boolean; internalPackages?: string[]; compatibility?: Record<string, string>; @@ -126,11 +125,6 @@ export interface Package<T> extends ManagerData<T> { prettyDepType?: any; } -export interface AutoReplaceData { - replaceString: string; - depIndex?: number; -} - export interface LookupUpdate { blockedByPin?: boolean; branchName?: string; @@ -174,7 +168,8 @@ export interface PackageDependency<T = Record<string, any>> extends Package<T> { toVersion?: string; updates?: LookupUpdate[]; versionLine?: number; - autoReplaceData?: AutoReplaceData; + replaceString?: string; + depIndex?: number; } export interface Upgrade<T = Record<string, any>> @@ -225,7 +220,6 @@ export interface UpdateDependencyConfig { export interface ManagerApi { defaultConfig: object; - autoReplace?: boolean; language?: string; supportsLockFileMaintenance?: boolean; diff --git a/lib/manager/composer/index.ts b/lib/manager/composer/index.ts index 5ef43c317858e847c441041d9fb961a95c1e267f..68451b7c53ce6093ad4dd8f97ed704bba5f7f4dd 100644 --- a/lib/manager/composer/index.ts +++ b/lib/manager/composer/index.ts @@ -6,7 +6,6 @@ import * as composerVersioning from '../../versioning/composer'; const language = LANGUAGE_PHP; export const supportsLockFileMaintenance = true; -export const autoReplace = true; export { extractPackageFile, updateArtifacts, language, getRangeStrategy }; diff --git a/lib/manager/deps-edn/index.ts b/lib/manager/deps-edn/index.ts index 5f9ee54da32199e76903326103bf42c875450ea1..25df4094495b6c4f812c4d797dda15c87c0d30a7 100644 --- a/lib/manager/deps-edn/index.ts +++ b/lib/manager/deps-edn/index.ts @@ -3,8 +3,6 @@ import { extractPackageFile } from './extract'; export { extractPackageFile }; -export const autoReplace = true; - export const defaultConfig = { fileMatch: ['(^|/)deps\\.edn$'], versioning: mavenVersioning.id, diff --git a/lib/manager/gitlabci-include/index.ts b/lib/manager/gitlabci-include/index.ts index fd9741711b9aef830fdbea0b33eb7542355c03fa..5b104316c6cce7fd8e703e42d406af9acb156ff6 100644 --- a/lib/manager/gitlabci-include/index.ts +++ b/lib/manager/gitlabci-include/index.ts @@ -2,8 +2,6 @@ import { extractPackageFile } from './extract'; export { extractPackageFile }; -export const autoReplace = true; - export const defaultConfig = { fileMatch: ['^\\.gitlab-ci\\.yml$'], }; diff --git a/lib/manager/html/__snapshots__/extract.spec.ts.snap b/lib/manager/html/__snapshots__/extract.spec.ts.snap index 019f09b047ebdba302bc489b9a804524843f5c35..5554308518a8125f520613ec8ec9c4d2e25f92d0 100644 --- a/lib/manager/html/__snapshots__/extract.spec.ts.snap +++ b/lib/manager/html/__snapshots__/extract.spec.ts.snap @@ -4,102 +4,82 @@ exports[`manager/html/extract extractPackageFile 1`] = ` Object { "deps": Array [ Object { - "autoReplaceData": Object { - "replaceString": "<script type=\\"text/javascript\\" - src=\\"https://cdnjs.cloudflare.com/ajax/libs/prop-types/15.6.1/prop-types.min.js\\">", - }, "currentValue": "15.6.1", "datasource": "cdnjs", "depName": "prop-types", "lookupName": "prop-types/prop-types.min.js", + "replaceString": "<script type=\\"text/javascript\\" + src=\\"https://cdnjs.cloudflare.com/ajax/libs/prop-types/15.6.1/prop-types.min.js\\">", }, Object { - "autoReplaceData": Object { - "replaceString": "<script type=\\"text/javascript\\" - src=\\"https://cdnjs.cloudflare.com/ajax/libs/react/16.3.2/umd/react.production.min.js\\">", - }, "currentValue": "16.3.2", "datasource": "cdnjs", "depName": "react", "lookupName": "react/umd/react.production.min.js", + "replaceString": "<script type=\\"text/javascript\\" + src=\\"https://cdnjs.cloudflare.com/ajax/libs/react/16.3.2/umd/react.production.min.js\\">", }, Object { - "autoReplaceData": Object { - "replaceString": "<script type=\\"text/javascript\\" - src=\\"https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.3.2/umd/react-dom.production.min.js\\">", - }, "currentValue": "16.3.2", "datasource": "cdnjs", "depName": "react-dom", "lookupName": "react-dom/umd/react-dom.production.min.js", + "replaceString": "<script type=\\"text/javascript\\" + src=\\"https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.3.2/umd/react-dom.production.min.js\\">", }, Object { - "autoReplaceData": Object { - "replaceString": "<script type=\\"text/javascript\\" - src=\\"https://cdnjs.cloudflare.com/ajax/libs/react-transition-group/2.2.1/react-transition-group.min.js\\">", - }, "currentValue": "2.2.1", "datasource": "cdnjs", "depName": "react-transition-group", "lookupName": "react-transition-group/react-transition-group.min.js", + "replaceString": "<script type=\\"text/javascript\\" + src=\\"https://cdnjs.cloudflare.com/ajax/libs/react-transition-group/2.2.1/react-transition-group.min.js\\">", }, Object { - "autoReplaceData": Object { - "replaceString": "<script type=\\"text/javascript\\" - src=\\"https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js\\">", - }, "currentValue": "1.14.3", "datasource": "cdnjs", "depName": "popper.js", "lookupName": "popper.js/umd/popper.min.js", + "replaceString": "<script type=\\"text/javascript\\" + src=\\"https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js\\">", }, Object { - "autoReplaceData": Object { - "replaceString": "<script type=\\"text/javascript\\" - src=\\"https://cdnjs.cloudflare.com/ajax/libs/react-popper/0.10.4/umd/react-popper.min.js\\">", - }, "currentValue": "0.10.4", "datasource": "cdnjs", "depName": "react-popper", "lookupName": "react-popper/umd/react-popper.min.js", + "replaceString": "<script type=\\"text/javascript\\" + src=\\"https://cdnjs.cloudflare.com/ajax/libs/react-popper/0.10.4/umd/react-popper.min.js\\">", }, Object { - "autoReplaceData": Object { - "replaceString": "<script src=\\"https://cdnjs.cloudflare.com/ajax/libs/reactstrap/7.1.0/reactstrap.min.js\\">", - }, "currentValue": "7.1.0", "datasource": "cdnjs", "depName": "reactstrap", "lookupName": "reactstrap/reactstrap.min.js", + "replaceString": "<script src=\\"https://cdnjs.cloudflare.com/ajax/libs/reactstrap/7.1.0/reactstrap.min.js\\">", }, Object { - "autoReplaceData": Object { - "replaceString": "<script src=\\" https://cdnjs.cloudflare.com/ajax/libs/react-router/4.3.1/react-router.min.js\\">", - }, "currentValue": "4.3.1", "datasource": "cdnjs", "depName": "react-router", "lookupName": "react-router/react-router.min.js", + "replaceString": "<script src=\\" https://cdnjs.cloudflare.com/ajax/libs/react-router/4.3.1/react-router.min.js\\">", }, Object { - "autoReplaceData": Object { - "replaceString": "<script src=\\"https://cdnjs.cloudflare.com/ajax/libs/react-markdown/4.0.6/react-markdown.js\\">", - }, "currentValue": "4.0.6", "datasource": "cdnjs", "depName": "react-markdown", "lookupName": "react-markdown/react-markdown.js", + "replaceString": "<script src=\\"https://cdnjs.cloudflare.com/ajax/libs/react-markdown/4.0.6/react-markdown.js\\">", }, Object { - "autoReplaceData": Object { - "replaceString": "<script src=\\"https://cdnjs.cloudflare.com/ajax/libs/axios/0.18.0/axios.min.js\\" - integrity=\\"sha256-mpnrJ5DpEZZkwkE1ZgkEQQJW/46CSEh/STrZKOB/qoM=\\" crossorigin=\\"anonymous\\">", - }, "currentDigest": "sha256-mpnrJ5DpEZZkwkE1ZgkEQQJW/46CSEh/STrZKOB/qoM=", "currentValue": "0.18.0", "datasource": "cdnjs", "depName": "axios", "lookupName": "axios/axios.min.js", + "replaceString": "<script src=\\"https://cdnjs.cloudflare.com/ajax/libs/axios/0.18.0/axios.min.js\\" + integrity=\\"sha256-mpnrJ5DpEZZkwkE1ZgkEQQJW/46CSEh/STrZKOB/qoM=\\" crossorigin=\\"anonymous\\">", }, ], } diff --git a/lib/manager/html/extract.ts b/lib/manager/html/extract.ts index d9ec262dd27c5ed66a7fda0d6f760c134d64cdb2..6a5c89189875123c03e19f039ce5d81b012bcfa9 100644 --- a/lib/manager/html/extract.ts +++ b/lib/manager/html/extract.ts @@ -17,6 +17,7 @@ export function extractDep(tag: string): PackageDependency | null { depName, lookupName: `${depName}/${asset}`, currentValue, + replaceString: tag, }; const integrityMatch = integrityRegex.exec(tag); if (integrityMatch) { @@ -37,12 +38,7 @@ export function extractPackageFile(content: string): PackageFile { match = regex.exec(rest); const dep = extractDep(replaceString); if (dep) { - deps.push({ - ...dep, - autoReplaceData: { - replaceString, - }, - }); + deps.push(dep); } } if (!deps.length) { diff --git a/lib/manager/html/index.ts b/lib/manager/html/index.ts index 058367de683737aa19560b0bdf2f23ff21e15e29..5b05144ecd41034cbf509ae76648dc581ddb7949 100644 --- a/lib/manager/html/index.ts +++ b/lib/manager/html/index.ts @@ -3,8 +3,6 @@ import * as semverVersioning from '../../versioning/semver'; export { extractPackageFile }; -export const autoReplace = true; - export const defaultConfig = { fileMatch: ['\\.html?$'], versioning: semverVersioning.id, diff --git a/lib/manager/index.spec.ts b/lib/manager/index.spec.ts index 06fb46d22724ef5ada790bd319e7f330d4dd7422..f8cbb1229d0a3e106804475f909ff57286df0ec0 100644 --- a/lib/manager/index.spec.ts +++ b/lib/manager/index.spec.ts @@ -24,9 +24,6 @@ describe('manager', () => { if (!module.defaultConfig) { return false; } - if (!module.updateDependency && !module.autoReplace) { - return false; - } if (!module.extractPackageFile && !module.extractAllPackageFiles) { return false; } diff --git a/lib/manager/kustomize/index.ts b/lib/manager/kustomize/index.ts index ce5bdde2f02366fd82c355698b184f7f85ca540c..c76d0f9977968c1c48792937162ccf3ec59eeb00 100644 --- a/lib/manager/kustomize/index.ts +++ b/lib/manager/kustomize/index.ts @@ -1,7 +1,5 @@ export { extractPackageFile } from './extract'; -export const autoReplace = true; - export const defaultConfig = { fileMatch: ['(^|/)kustomization\\.yaml'], }; diff --git a/lib/manager/leiningen/index.ts b/lib/manager/leiningen/index.ts index b5e2f90033bc4ce96084e9d7920d5fa49a4e06c1..f501592d2cfe6ccda2001515cd1d05dd01a8d149 100644 --- a/lib/manager/leiningen/index.ts +++ b/lib/manager/leiningen/index.ts @@ -2,8 +2,6 @@ import * as mavenVersioning from '../../versioning/maven'; export { extractPackageFile } from './extract'; -export const autoReplace = true; - export const defaultConfig = { fileMatch: ['(^|/)project\\.clj$'], versioning: mavenVersioning.id, diff --git a/lib/manager/nodenv/index.ts b/lib/manager/nodenv/index.ts index 80a723945f2ec596d227ddbdd9f1810822adef4e..f1298b8370557a778060a8751054af2002e1ff42 100644 --- a/lib/manager/nodenv/index.ts +++ b/lib/manager/nodenv/index.ts @@ -3,8 +3,6 @@ import * as nodeVersioning from '../../versioning/node'; export { extractPackageFile } from './extract'; -export const autoReplace = true; - export const language = LANGUAGE_NODE; export const defaultConfig = { diff --git a/lib/manager/nuget/index.ts b/lib/manager/nuget/index.ts index 7dc18d87a8ac16ca3511c1e211d317aabb350418..f42cb6035220dcfd808005bef33f405f86c026f4 100644 --- a/lib/manager/nuget/index.ts +++ b/lib/manager/nuget/index.ts @@ -2,8 +2,6 @@ import { LANGUAGE_DOT_NET } from '../../constants/languages'; export { extractPackageFile } from './extract'; -export const autoReplace = true; - export const language = LANGUAGE_DOT_NET; export const defaultConfig = { diff --git a/lib/manager/nvm/index.ts b/lib/manager/nvm/index.ts index 39baa77b422e21fce9b7b28446c46a4f5bcb82f4..5780252f18c7da5d42f731487a046efef0a76a5c 100644 --- a/lib/manager/nvm/index.ts +++ b/lib/manager/nvm/index.ts @@ -3,8 +3,6 @@ import * as nodeVersioning from '../../versioning/node'; export { extractPackageFile } from './extract'; -export const autoReplace = true; - export const language = LANGUAGE_NODE; export const defaultConfig = { diff --git a/lib/manager/pip_requirements/index.ts b/lib/manager/pip_requirements/index.ts index 5c9b72905095f50109b29fc3431bbc09e2716708..3b321a2fc92ff20714f4524711238150c69af460 100644 --- a/lib/manager/pip_requirements/index.ts +++ b/lib/manager/pip_requirements/index.ts @@ -5,8 +5,6 @@ export { getRangeStrategy } from './range'; export const language = LANGUAGE_PYTHON; -export const autoReplace = true; - export const defaultConfig = { fileMatch: ['(^|/)([\\w-]*)requirements.(txt|pip)$'], }; diff --git a/lib/manager/pip_setup/index.ts b/lib/manager/pip_setup/index.ts index 854761c722224c2d1000a4770b2490f86b339741..30d0b4489fa889a86f4433a2034688f95b36223b 100644 --- a/lib/manager/pip_setup/index.ts +++ b/lib/manager/pip_setup/index.ts @@ -4,8 +4,6 @@ export { extractPackageFile } from './extract'; export const language = LANGUAGE_PYTHON; -export const autoReplace = true; - export const defaultConfig = { fileMatch: ['(^|/)setup.py$'], }; diff --git a/lib/manager/pub/index.ts b/lib/manager/pub/index.ts index 245129a5d6ea8dc2922c8c9d5fb96de8dbd40849..dcdceecd7fd3a9d009aeb2dc60d3965fa949bc99 100644 --- a/lib/manager/pub/index.ts +++ b/lib/manager/pub/index.ts @@ -2,8 +2,6 @@ import * as npmVersioning from '../../versioning/npm'; export { extractPackageFile } from './extract'; -export const autoReplace = true; - export const defaultConfig = { fileMatch: ['(^|/)pubspec\\.ya?ml$'], versioning: npmVersioning.id, diff --git a/lib/manager/regex/__snapshots__/index.spec.ts.snap b/lib/manager/regex/__snapshots__/index.spec.ts.snap index 5aa0872b4c45a74bc7ff6cd1dee670eb89f7828d..90ed65cf6ca0e0165f088ab3c338f1895af3e91b 100644 --- a/lib/manager/regex/__snapshots__/index.spec.ts.snap +++ b/lib/manager/regex/__snapshots__/index.spec.ts.snap @@ -4,91 +4,67 @@ exports[`manager/regex/index extracts multiple dependencies 1`] = ` Object { "deps": Array [ Object { - "autoReplaceData": Object { - "depIndex": 0, - "replaceString": "ENV GRADLE_VERSION=6.2 # gradle-version/gradle&versioning=maven -", - }, "currentValue": "6.2", "datasource": "gradle-version", "depName": "gradle", + "replaceString": "ENV GRADLE_VERSION=6.2 # gradle-version/gradle&versioning=maven +", "versioning": "maven", }, Object { - "autoReplaceData": Object { - "depIndex": 1, - "replaceString": "ENV NODE_VERSION=10.19.0 # github-tags/nodejs/node&versioning=node -", - }, "currentValue": "10.19.0", "datasource": "github-tags", "depName": "nodejs/node", + "replaceString": "ENV NODE_VERSION=10.19.0 # github-tags/nodejs/node&versioning=node +", "versioning": "node", }, Object { - "autoReplaceData": Object { - "depIndex": 2, - "replaceString": "ENV COMPOSER_VERSION=1.9.3 # github-releases/composer/composer -", - }, "currentValue": "1.9.3", "datasource": "github-releases", "depName": "composer/composer", + "replaceString": "ENV COMPOSER_VERSION=1.9.3 # github-releases/composer/composer +", "versioning": "semver", }, Object { - "autoReplaceData": Object { - "depIndex": 3, - "replaceString": "ENV COCOAPODS_VERSION=1.9.0 # rubygems/cocoapods&versioning=ruby -", - }, "currentValue": "1.9.0", "datasource": "rubygems", "depName": "cocoapods", + "replaceString": "ENV COCOAPODS_VERSION=1.9.0 # rubygems/cocoapods&versioning=ruby +", "versioning": "ruby", }, Object { - "autoReplaceData": Object { - "depIndex": 4, - "replaceString": "ENV DOCKER_VERSION=19.03.1 # github-releases/docker/docker-ce&versioning=docker -", - }, "currentValue": "19.03.1", "datasource": "github-releases", "depName": "docker/docker-ce", + "replaceString": "ENV DOCKER_VERSION=19.03.1 # github-releases/docker/docker-ce&versioning=docker +", "versioning": "docker", }, Object { - "autoReplaceData": Object { - "depIndex": 5, - "replaceString": "ENV POETRY_VERSION=1.0.0 # github-releases/python-poetry/poetry -", - }, "currentValue": "1.0.0", "datasource": "github-releases", "depName": "python-poetry/poetry", + "replaceString": "ENV POETRY_VERSION=1.0.0 # github-releases/python-poetry/poetry +", "versioning": "semver", }, Object { - "autoReplaceData": Object { - "depIndex": 6, - "replaceString": "ENV NPM_VERSION=6.10.2 # npm/npm -", - }, "currentValue": "6.10.2", "datasource": "npm", "depName": "npm", + "replaceString": "ENV NPM_VERSION=6.10.2 # npm/npm +", "versioning": "semver", }, Object { - "autoReplaceData": Object { - "depIndex": 7, - "replaceString": "ENV YARN_VERSION=1.19.1 # npm/yarn -", - }, "currentValue": "1.19.1", "datasource": "npm", "depName": "yarn", + "replaceString": "ENV YARN_VERSION=1.19.1 # npm/yarn +", "versioning": "semver", }, ], diff --git a/lib/manager/regex/index.ts b/lib/manager/regex/index.ts index 93dfd2265a53b59a555c4bd5e0a662e6293d1f5c..3c0cff43bcd2f549108b0ad66601dcf19d40e715 100644 --- a/lib/manager/regex/index.ts +++ b/lib/manager/regex/index.ts @@ -3,8 +3,6 @@ import { CustomExtractConfig, PackageFile, Result } from '../common'; import { regEx } from '../../util/regex'; import { logger } from '../../logger'; -export const autoReplace = true; - export const defaultConfig = { pinDigests: false, }; @@ -17,7 +15,6 @@ export function extractPackageFile( const regexMatch = regEx(config.matchStrings[0], 'g'); const deps = []; let matchResult; - let depIndex = 0; do { matchResult = regexMatch.exec(content); if (matchResult) { @@ -47,13 +44,9 @@ export function extractPackageFile( dep[field] = groups[field]; } } - dep.autoReplaceData = { - depIndex, - replaceString: `${matchResult[0]}`, - }; + dep.replaceString = `${matchResult[0]}`; deps.push(dep); } - depIndex += 1; } while (matchResult); if (deps.length) { return { deps, matchStrings: config.matchStrings }; diff --git a/lib/manager/ruby-version/index.ts b/lib/manager/ruby-version/index.ts index 17619c7d6461874e89ca1e6fbd1edb30cf5817f5..8f9b439c4df1465b34cf54916cf3469a843f51ac 100644 --- a/lib/manager/ruby-version/index.ts +++ b/lib/manager/ruby-version/index.ts @@ -3,7 +3,6 @@ import * as rubyVersioning from '../../versioning/ruby'; export { extractPackageFile } from './extract'; -export const autoReplace = true; export const language = LANGUAGE_RUBY; export const defaultConfig = { diff --git a/lib/manager/sbt/index.ts b/lib/manager/sbt/index.ts index 424d3cecf45e04415cc767eeecdbb65d0bf05c02..e587990399cc5a5d818fb5aa9594e24714896d29 100644 --- a/lib/manager/sbt/index.ts +++ b/lib/manager/sbt/index.ts @@ -2,8 +2,6 @@ import * as ivyVersioning from '../../versioning/ivy'; export { extractPackageFile } from './extract'; -export const autoReplace = true; - export const defaultConfig = { fileMatch: ['\\.sbt$', 'project/[^/]*.scala$'], versioning: ivyVersioning.id, diff --git a/lib/manager/swift/index.ts b/lib/manager/swift/index.ts index b94f2f434b286d28272d18e29a9e61b800ff7ad4..e9102b4cf28e42203b91f7608b9d22b33c64f5a7 100644 --- a/lib/manager/swift/index.ts +++ b/lib/manager/swift/index.ts @@ -2,8 +2,6 @@ import * as swiftVersioning from '../../versioning/swift'; export { extractPackageFile } from './extract'; -export const autoReplace = true; - export const defaultConfig = { fileMatch: ['(^|/)Package\\.swift'], versioning: swiftVersioning.id, diff --git a/lib/manager/terraform/index.ts b/lib/manager/terraform/index.ts index 1fc4cbb4a22eb01e689b6358fe44d06663978c3b..7e21d3abf6f49beb7d649333287f8ddbd04d4c26 100644 --- a/lib/manager/terraform/index.ts +++ b/lib/manager/terraform/index.ts @@ -2,8 +2,6 @@ import * as hashicorpVersioning from '../../versioning/hashicorp'; export { extractPackageFile } from './extract'; -export const autoReplace = true; - export const defaultConfig = { commitMessageTopic: 'Terraform {{managerData.terraformDependencyType}} {{depNameShort}}', diff --git a/lib/workers/branch/auto-replace.spec.ts b/lib/workers/branch/auto-replace.spec.ts index c0c5941adff33885ea59debc6bd271e0cc3ef1cd..ba7b8ffcbdaef2f1cb2a56670d9ca53e35237f30 100644 --- a/lib/workers/branch/auto-replace.spec.ts +++ b/lib/workers/branch/auto-replace.spec.ts @@ -47,9 +47,7 @@ describe('workers/branch/auto-replace', () => { upgrade.lookupName = 'reactstrap/7.1.0/reactstrap.min.js'; upgrade.currentValue = '7.1.0'; upgrade.newValue = '7.1.1'; - upgrade.autoReplaceData = { - depIndex: 0, - }; + upgrade.depIndex = 0; const res = await doAutoReplace(upgrade, src, parentBranch); expect(res).toMatchSnapshot(); }); @@ -62,10 +60,8 @@ describe('workers/branch/auto-replace', () => { upgrade.lookupName = 'reactstrap/7.1.0/reactstrap.min.js'; upgrade.currentValue = '7.1.0'; upgrade.newValue = '7.1.1'; - upgrade.autoReplaceData = { - depIndex: 0, - replaceString: script, - }; + upgrade.depIndex = 0; + upgrade.replaceString = script; parentBranch = 'something'; const srcAlreadyUpdated = src.replace('7.1.0', '7.1.1'); const res = await doAutoReplace(upgrade, srcAlreadyUpdated, parentBranch); @@ -80,10 +76,8 @@ describe('workers/branch/auto-replace', () => { upgrade.lookupName = 'reactstrap/7.1.0/reactstrap.min.js'; upgrade.currentValue = '7.1.0'; upgrade.newValue = '7.1.1'; - upgrade.autoReplaceData = { - depIndex: 0, - replaceString: script, - }; + upgrade.depIndex = 0; + upgrade.replaceString = script; const res = await doAutoReplace(upgrade, 'wrong source', parentBranch); expect(res).toEqual('wrong source'); }); @@ -99,10 +93,8 @@ describe('workers/branch/auto-replace', () => { 'sha384-K3vbOmF2BtaVai+Qk37uypf7VrgBubhQreNQe9aGsz9lB63dIFiQVlJbr92dw2Lx'; upgrade.newValue = '0.11.1'; upgrade.newDigest = 'sha256-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'; - upgrade.autoReplaceData = { - depIndex: 0, - replaceString: script, - }; + upgrade.depIndex = 0; + upgrade.replaceString = script; const res = await doAutoReplace(upgrade, src, parentBranch); expect(res).toMatchSnapshot(); }); diff --git a/lib/workers/branch/auto-replace.ts b/lib/workers/branch/auto-replace.ts index a0f4b18d343a069cc3475670f53797559a63bc2c..3db55742f60c0b723a038227597f2263ff283a61 100644 --- a/lib/workers/branch/auto-replace.ts +++ b/lib/workers/branch/auto-replace.ts @@ -8,13 +8,7 @@ export async function confirmIfDepUpdated( upgrade, newContent: string ): Promise<boolean> { - const { - manager, - packageFile, - newValue, - newDigest, - autoReplaceData, - } = upgrade; + const { manager, packageFile, newValue, newDigest, depIndex } = upgrade; const extractPackageFile = get(manager, 'extractPackageFile'); let newUpgrade; try { @@ -23,7 +17,7 @@ export async function confirmIfDepUpdated( packageFile, upgrade ); - newUpgrade = newExtract.deps[autoReplaceData.depIndex]; + newUpgrade = newExtract.deps[depIndex]; } catch (err) /* istanbul ignore next */ { logger.debug('Failed to parse newContent'); } @@ -77,15 +71,8 @@ export async function doAutoReplace( logger.debug('Branch dep is already updated'); return existingContent; } - const { - depName, - currentValue, - newValue, - currentDigest, - newDigest, - autoReplaceData, - } = upgrade; - const replaceString = autoReplaceData?.replaceString || currentValue; + const { depName, currentValue, newValue, currentDigest, newDigest } = upgrade; + const replaceString = upgrade.replaceString || currentValue; logger.trace({ depName, replaceString }, 'autoReplace replaceString'); let searchIndex = existingContent.indexOf(replaceString); if (searchIndex === -1) { diff --git a/lib/workers/branch/get-updated.spec.ts b/lib/workers/branch/get-updated.spec.ts index b7b958a4108c8830542011199060766316367edf..a1cc12e821cdbafb0d11183b191960e0c24153d2 100644 --- a/lib/workers/branch/get-updated.spec.ts +++ b/lib/workers/branch/get-updated.spec.ts @@ -28,25 +28,25 @@ describe('workers/branch/get-updated', () => { platform.getFile.mockResolvedValueOnce('existing content'); }); it('handles autoreplace base updated', async () => { - config.upgrades.push({ manager: 'html', autoReplace: true }); + config.upgrades.push({ manager: 'html' }); autoReplace.doAutoReplace.mockResolvedValueOnce('updated-file'); const res = await getUpdatedPackageFiles(config); expect(res).toMatchSnapshot(); }); it('handles autoreplace branch no update', async () => { - config.upgrades.push({ manager: 'html', autoReplace: true }); + config.upgrades.push({ manager: 'html' }); autoReplace.doAutoReplace.mockResolvedValueOnce('existing content'); const res = await getUpdatedPackageFiles(config); expect(res).toMatchSnapshot(); }); it('handles autoreplace failure', async () => { - config.upgrades.push({ manager: 'html', autoReplace: true }); + config.upgrades.push({ manager: 'html' }); autoReplace.doAutoReplace.mockResolvedValueOnce(null); await expect(getUpdatedPackageFiles(config)).rejects.toThrow(); }); it('handles autoreplace branch needs update', async () => { config.parentBranch = 'some branch'; - config.upgrades.push({ manager: 'html', autoReplace: true }); + config.upgrades.push({ manager: 'html' }); autoReplace.doAutoReplace.mockResolvedValueOnce(null); autoReplace.doAutoReplace.mockResolvedValueOnce('updated-file'); const res = await getUpdatedPackageFiles(config); @@ -86,9 +86,6 @@ describe('workers/branch/get-updated', () => { }, }, ]); - config.upgrades.forEach((upgrade) => { - upgrade.autoReplace = true; // eslint-disable-line no-param-reassign - }); const res = await getUpdatedPackageFiles(config); expect(res).toMatchSnapshot(); }); @@ -140,9 +137,6 @@ describe('workers/branch/get-updated', () => { }, }, ]); - config.upgrades.forEach((upgrade) => { - upgrade.autoReplace = true; // eslint-disable-line no-param-reassign - }); const res = await getUpdatedPackageFiles(config); expect(res).toMatchSnapshot(); }); diff --git a/lib/workers/branch/get-updated.ts b/lib/workers/branch/get-updated.ts index dcd65dcc7854dd44d1ed6d136b68500a6b5c86b5..51390eba93d981d4bacc11adce1210c5d0035838 100644 --- a/lib/workers/branch/get-updated.ts +++ b/lib/workers/branch/get-updated.ts @@ -26,7 +26,7 @@ export async function getUpdatedPackageFiles( const packageFileUpdatedDeps: Record<string, string[]> = {}; const lockFileMaintenanceFiles = []; for (const upgrade of config.upgrades) { - const { autoReplace, manager, packageFile, depName } = upgrade; + const { manager, packageFile, depName } = upgrade; packageFileManagers[packageFile] = manager; packageFileUpdatedDeps[packageFile] = packageFileUpdatedDeps[packageFile] || []; @@ -45,8 +45,8 @@ export async function getUpdatedPackageFiles( parentBranch: undefined, }); } - if (autoReplace) { - logger.debug('autoReplace'); + const updateDependency = get(manager, 'updateDependency'); + if (!updateDependency) { const res = await doAutoReplace(upgrade, existingContent, parentBranch); if (res) { if (res === existingContent) { @@ -65,7 +65,6 @@ export async function getUpdatedPackageFiles( logger.error('Could not autoReplace'); throw new Error(WORKER_FILE_UPDATE_FAILED); } - const updateDependency = get(manager, 'updateDependency'); const newContent = await updateDependency({ fileContent: existingContent, upgrade, diff --git a/lib/workers/repository/extract/__snapshots__/manager-files.spec.ts.snap b/lib/workers/repository/extract/__snapshots__/manager-files.spec.ts.snap index a22dac8a35a45796ce6277ef61212b7ccbcd852e..50b14424a321c017ed99606278e6218ee13d4544 100644 --- a/lib/workers/repository/extract/__snapshots__/manager-files.spec.ts.snap +++ b/lib/workers/repository/extract/__snapshots__/manager-files.spec.ts.snap @@ -26,18 +26,13 @@ Array [ exports[`workers/repository/extract/manager-files getManagerPackageFiles() returns files with extractPackageFile 1`] = ` Array [ Object { - "autoReplace": true, "deps": Array [ Object { - "autoReplaceData": Object { - "depIndex": 0, - }, + "depIndex": 0, }, Object { - "autoReplaceData": Object { - "depIndex": 1, - "replaceString": "abc", - }, + "depIndex": 1, + "replaceString": "abc", }, ], "manager": "html", diff --git a/lib/workers/repository/extract/manager-files.spec.ts b/lib/workers/repository/extract/manager-files.spec.ts index b6bca450b239e3b641c54787f9ae224a379872d1..ee3420fe2da234dceb60ad4c5531d5891625373c 100644 --- a/lib/workers/repository/extract/manager-files.spec.ts +++ b/lib/workers/repository/extract/manager-files.spec.ts @@ -39,7 +39,7 @@ describe('workers/repository/extract/manager-files', () => { fileMatch.getMatchingFiles.mockReturnValue(['Dockerfile']); platform.getFile.mockResolvedValue('some content'); html.extractPackageFile = jest.fn(() => ({ - deps: [{}, { autoReplaceData: { replaceString: 'abc' } }], + deps: [{}, { replaceString: 'abc' }], })) as never; const res = await getManagerPackageFiles(managerConfig); expect(res).toMatchSnapshot(); diff --git a/lib/workers/repository/extract/manager-files.ts b/lib/workers/repository/extract/manager-files.ts index be7910c5c966687bea29a46844365495081e1df3..c9544472f358acbb08a151599f78328d7a9b60c5 100644 --- a/lib/workers/repository/extract/manager-files.ts +++ b/lib/workers/repository/extract/manager-files.ts @@ -49,15 +49,8 @@ export async function getManagerPackageFiles(config): Promise<PackageFile[]> { config ); if (res) { - if (get(manager, 'autoReplace')) { - res.autoReplace = true; - for (let index = 0; index < res.deps.length; index += 1) { - // auto-populate the depIndex value - res.deps[index].autoReplaceData = { - ...res.deps[index].autoReplaceData, - depIndex: index, - }; - } + for (let index = 0; index < res.deps.length; index += 1) { + res.deps[index].depIndex = index; } packageFiles.push({ packageFile,