renovatebot / renovate

Home of the Renovate CLI: Cross-platform Dependency Automation by Mend.io
https://mend.io/renovate
GNU Affero General Public License v3.0
17.41k stars 2.28k forks source link

Replacing deprecated dependencies for docker datasource only replace version #12623

Closed scrocquesel closed 1 year ago

scrocquesel commented 2 years ago

How are you running Renovate?

WhiteSource Renovate hosted app on github.com

If you're self-hosting Renovate, tell us what version of Renovate you run.

No response

Please select which platform you are using if self-hosting.

No response

If you're self-hosting Renovate, tell us what version of the platform you run.

No response

Describe the bug

Using the following config

"packageRules": [
    {
      "matchDatasources": ["docker"],
      "matchPackageNames": ["registry.access.redhat.com/ubi8/ubi-minimal"],
      "replacementName": "custom.onpremise/ubi8/ubi-minimal",
      "replacementVersion": "8.5"
    }
  ]

I expect Renovate to make a PR to replace the package name but it only updates the version. see https://github.com/scrocquesel/renovate-deprecation-replacements/pull/4

Relevant debug logs

Logs ``` DEBUG: No dangling containers to remove INFO: Repository started { "renovateVersion": "29.6.0" } DEBUG: Using localDir: /mnt/renovate/gh/scrocquesel/renovate-deprecation-replacements DEBUG: Repository cache is valid DEBUG: initRepo("scrocquesel/renovate-deprecation-replacements") DEBUG: Overriding default GitHub endpoint { "endpoint": "https://api.github.com/" } DEBUG: scrocquesel/renovate-deprecation-replacements default branch = master DEBUG: Using app token for git init DEBUG: resetMemCache() DEBUG: Resetting npmrc DEBUG: detectSemanticCommits() DEBUG: checkOnboarding() DEBUG: isOnboarded() DEBUG: Checking cached config file name DEBUG: Existing config file confirmed DEBUG: Repo is onboarded DEBUG: migrateAndValidate() DEBUG: No config migration necessary DEBUG: massaged config { "config": { "$schema": "https://docs.renovatebot.com/renovate-schema.json", "packageRules": [ { "matchDatasources": [ "docker" ], "matchPackageNames": [ "registry.access.redhat.com/ubi8/ubi-minimal" ], "replacementName": "custom.onpremise/ubi8/ubi-minimal", "replacementVersion": "8.5" } ], "extends": [ "github>whitesource/merge-confidence:beta" ] } } DEBUG: migrated config { "config": { "$schema": "https://docs.renovatebot.com/renovate-schema.json", "packageRules": [ { "matchDatasources": [ "docker" ], "matchPackageNames": [ "registry.access.redhat.com/ubi8/ubi-minimal" ], "replacementName": "custom.onpremise/ubi8/ubi-minimal", "replacementVersion": "8.5" } ], "extends": [ "github>whitesource/merge-confidence:beta" ] } } DEBUG: Found repo ignorePaths { "ignorePaths": [ "**/node_modules/**", "**/bower_components/**" ] } DEBUG: No vulnerability alerts found DEBUG: No vulnerability alerts found DEBUG: No baseBranches DEBUG: extract() DEBUG: Setting current branch to master DEBUG: Initializing git repository into /mnt/renovate/gh/scrocquesel/renovate-deprecation-replacements DEBUG: Performing blobless clone DEBUG: git clone completed { "durationMs": 910 } DEBUG: latest repository commit { "latestCommit": { "hash": "cc3ec70aa9d9ac017a7599f0bc508c8e386f3d4c", "date": "2021-11-12T16:09:04+01:00", "message": "Update renovate.json", "refs": "HEAD -> master, origin/master, origin/HEAD", "body": "", "author_name": "Sébastien CROCQUESEL", "author_email": "88554524+scrocquesel@users.noreply.github.com" } } DEBUG: latest commit { "branchName": "master", "latestCommitDate": "2021-11-12T16:09:04+01:00" } DEBUG: Using file match: (^|/)tasks/[^/]+\.ya?ml$ for manager ansible DEBUG: Using file match: (^|/)requirements\.ya?ml$ for manager ansible-galaxy DEBUG: Using file match: (^|/)galaxy\.ya?ml$ for manager ansible-galaxy DEBUG: Using file match: azure.*pipelines?.*\.ya?ml$ for manager azure-pipelines DEBUG: Using file match: (^|/)batect(-bundle)?\.yml$ for manager batect DEBUG: Using file match: (^|/)batect$ for manager batect-wrapper DEBUG: Using file match: (^|/)WORKSPACE(|\.bazel)$ for manager bazel DEBUG: Using file match: \.bzl$ for manager bazel DEBUG: Using file match: (^|/)\.?bitbucket-pipelines\.ya?ml$ for manager bitbucket-pipelines DEBUG: Using file match: buildkite\.ya?ml for manager buildkite DEBUG: Using file match: \.buildkite/.+\.ya?ml$ for manager buildkite DEBUG: Using file match: (^|/)Gemfile$ for manager bundler DEBUG: Using file match: \.cake$ for manager cake DEBUG: Using file match: (^|/)Cargo.toml$ for manager cargo DEBUG: Using file match: (^|/).circleci/config.yml$ for manager circleci DEBUG: Using file match: (^|/)cloudbuild.ya?ml for manager cloudbuild DEBUG: Using file match: (^|/)Podfile$ for manager cocoapods DEBUG: Using file match: (^|/)([\w-]*)composer.json$ for manager composer DEBUG: Using file match: (^|/)deps\.edn$ for manager deps-edn DEBUG: Using file match: (^|/)docker-compose[^/]*\.ya?ml$ for manager docker-compose DEBUG: Using file match: (^|/|\.)Dockerfile$ for manager dockerfile DEBUG: Using file match: (^|/)Dockerfile\.[^/]*$ for manager dockerfile DEBUG: Using file match: (^|/).drone.yml$ for manager droneci DEBUG: Using file match: (^|/).gitmodules$ for manager git-submodules DEBUG: Using file match: ^(workflow-templates|\.github\/workflows)\/[^/]+\.ya?ml$ for manager github-actions DEBUG: Using file match: (^|\/)action\.ya?ml$ for manager github-actions DEBUG: Using file match: \.gitlab-ci\.yml$ for manager gitlabci DEBUG: Using file match: \.gitlab-ci\.yml$ for manager gitlabci-include DEBUG: Using file match: (^|/)go.mod$ for manager gomod DEBUG: Using file match: \.gradle(\.kts)?$ for manager gradle DEBUG: Using file match: (^|\/)gradle\.properties$ for manager gradle DEBUG: Using file match: (^|\/)gradle\/.+\.toml$ for manager gradle DEBUG: Using file match: \.versions\.toml$ for manager gradle DEBUG: Using file match: (^|/)gradle/wrapper/gradle-wrapper.properties$ for manager gradle-wrapper DEBUG: Using file match: (^|/)requirements\.yaml$ for manager helm-requirements DEBUG: Using file match: (^|/)values.yaml$ for manager helm-values DEBUG: Using file match: (^|/)helmfile.yaml$ for manager helmfile DEBUG: Using file match: (^|/)Chart.yaml$ for manager helmv3 DEBUG: Using file match: ^Formula/[^/]+[.]rb$ for manager homebrew DEBUG: Using file match: \.html?$ for manager html DEBUG: Using file match: (^|/)plugins\.(txt|ya?ml)$ for manager jenkins DEBUG: Using file match: (^|/)kustomization\.yaml for manager kustomize DEBUG: Using file match: (^|/)project\.clj$ for manager leiningen DEBUG: Using file match: \.pom\.xml$ for manager maven DEBUG: Using file match: (^|/)pom\.xml$ for manager maven DEBUG: Using file match: (^|/)package.js$ for manager meteor DEBUG: Using file match: (^|/)mix\.exs$ for manager mix DEBUG: Using file match: (^|/).node-version$ for manager nodenv DEBUG: Using file match: (^|/)package.json$ for manager npm DEBUG: Using file match: \.(?:cs|fs|vb)proj$ for manager nuget DEBUG: Using file match: \.(?:props|targets)$ for manager nuget DEBUG: Using file match: (^|\/)dotnet-tools\.json$ for manager nuget DEBUG: Using file match: (^|\/)global\.json$ for manager nuget DEBUG: Using file match: (^|/)\.nvmrc$ for manager nvm DEBUG: Using file match: (^|/)([\w-]*)requirements\.(txt|pip)$ for manager pip_requirements DEBUG: Using file match: (^|/)setup.py$ for manager pip_setup DEBUG: Using file match: (^|/)Pipfile$ for manager pipenv DEBUG: Using file match: (^|/)pyproject\.toml$ for manager poetry DEBUG: Using file match: (^|/)\.pre-commit-config\.yaml$ for manager pre-commit DEBUG: Using file match: (^|/)pubspec\.ya?ml$ for manager pub DEBUG: Using file match: (^|/).python-version$ for manager pyenv DEBUG: Using file match: (^|/)\.ruby-version$ for manager ruby-version DEBUG: Using file match: \.sbt$ for manager sbt DEBUG: Using file match: project/[^/]*.scala$ for manager sbt DEBUG: Using file match: (^|/)setup\.cfg$ for manager setup-cfg DEBUG: Using file match: (^|/)Package\.swift for manager swift DEBUG: Using file match: \.tf$ for manager terraform DEBUG: Using file match: (^|/)\.terraform-version$ for manager terraform-version DEBUG: Using file match: (^|/)terragrunt\.hcl$ for manager terragrunt DEBUG: Using file match: (^|/)\.terragrunt-version$ for manager terragrunt-version DEBUG: Using file match: ^.travis.yml$ for manager travis DEBUG: Matched 1 file(s) for manager dockerfile: Dockerfile DEBUG: Matched 1 file(s) for manager npm: package.json DEBUG: npm file package.json has name "renovate-depreaction-replacements" DEBUG: Detecting pnpm Workspaces DEBUG: Detecting Lerna and Yarn Workspaces DEBUG: Finding locked versions DEBUG: Found package-lock.json for package.json DEBUG: Found dockerfile package files DEBUG: Found npm package files DEBUG: Found 2 package file(s) INFO: Dependency extraction complete { "baseBranch": "master", "stats": { "managers": { "dockerfile": { "fileCount": 1, "depCount": 1 }, "npm": { "fileCount": 1, "depCount": 2 } }, "total": { "fileCount": 2, "depCount": 3 } } } DEBUG: getLabels(https://registry.access.redhat.com, ubi8/ubi-minimal, latest) DEBUG: Found deprecationMessage (jade)(dependency="jade") DEBUG: Package releases lookups complete { "baseBranch": "master" } DEBUG: branchifyUpgrades DEBUG: 3 flattened updates found: registry.access.redhat.com/ubi8/ubi-minimal, registry.access.redhat.com/ubi8/ubi-minimal, config DEBUG: Returning 3 branch(es) DEBUG: Fetching changelog: https://github.com/lorenwest/node-config (3.3.0 -> 3.3.6) DEBUG: config.repoIsOnboarded=true DEBUG: packageFiles with updates { "config": { "dockerfile": [ { "packageFile": "Dockerfile", "deps": [ { "depName": "registry.access.redhat.com/ubi8/ubi-minimal", "currentValue": "8.3", "replaceString": "registry.access.redhat.com/ubi8/ubi-minimal:8.3", "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}", "datasource": "docker", "depType": "final", "depIndex": 0, "updates": [ { "updateType": "replacement", "newName": "custom.onpremise/ubi8/ubi-minimal", "newValue": "8.5", "branchName": "renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement" }, { "bucket": "non-major", "newVersion": "8.5", "newValue": "8.5", "newMajor": 8, "newMinor": 5, "updateType": "minor", "branchName": "renovate/registry.access.redhat.com-ubi8-ubi-minimal-8.x" } ], "warnings": [], "versioning": "docker", "currentVersion": "8.3", "isSingleVersion": true, "fixedVersion": "8.3" } ] } ], "npm": [ { "packageFile": "package.json", "deps": [ { "depType": "dependencies", "depName": "jade", "currentValue": "^1.10.0", "datasource": "npm", "prettyDepType": "dependency", "lockedVersion": "1.10.0", "depIndex": 0, "updates": [], "warnings": [], "versioning": "npm", "deprecationMessage": "On registry `https://registry.npmjs.org/`, the \"latest\" version of dependency `jade` has the following deprecation notice:\n\n`Jade has been renamed to pug, please install the latest version of pug instead of jade`\n\nMarking the latest version of an npm package as deprecated results in the entire package being considered deprecated, so contact the package author you think this is a mistake.", "sourceUrl": "https://github.com/jadejs/jade", "homepage": "http://jade-lang.com", "currentVersion": "1.10.0", "fixedVersion": "1.10.0" }, { "depType": "dependencies", "depName": "config", "currentValue": "3.3.0", "datasource": "npm", "prettyDepType": "dependency", "lockedVersion": null, "depIndex": 1, "updates": [ { "bucket": "non-major", "newVersion": "3.3.6", "newValue": "3.3.6", "releaseTimestamp": "2021-03-08T20:10:08.454Z", "newMajor": 3, "newMinor": 3, "updateType": "patch", "branchName": "renovate/config-3.x" } ], "warnings": [], "versioning": "npm", "sourceUrl": "https://github.com/lorenwest/node-config", "currentVersion": "3.3.0", "isSingleVersion": true, "fixedVersion": "3.3.0" } ], "packageJsonName": "renovate-depreaction-replacements", "packageFileVersion": "0.0.1", "packageJsonType": "library", "npmLock": "package-lock.json", "managerData": { "yarnZeroInstall": false }, "skipInstalls": true, "constraints": { "npm": "<7" }, "lockFiles": [ "package-lock.json" ] } ] } } DEBUG: processRepo() DEBUG: Processing 3 branches: renovate/config-3.x, renovate/registry.access.redhat.com-ubi8-ubi-minimal-8.x, renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement DEBUG: Calculated maximum PRs remaining this run { "prsRemaining": 99 } DEBUG: PullRequests limit = 99 DEBUG: Calculated maximum branches remaining this run { "branchesRemaining": 99 } DEBUG: Branches limit = 99 DEBUG: Setting current branch to master(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") DEBUG: latest commit(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") { "branchName": "master", "latestCommitDate": "2021-11-12T16:09:04+01:00" } DEBUG: getBranchPr(renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement)(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") DEBUG: findPr(renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement, undefined, open)(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") DEBUG: Retrieving PR list(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") DEBUG: Retrieved 3 Pull Requests(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") DEBUG: findPr(renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement, undefined, closed)(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") DEBUG: branchExists=false(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") DEBUG: dependencyDashboardCheck=undefined(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") DEBUG: recreateClosed is false(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") DEBUG: findPr(renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement, Replace registry.access.redhat.com/ubi8/ubi-minimal Docker tag with custom.onpremise/ubi8/ubi-minimal v8.5, !open)(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") DEBUG: prAlreadyExisted=false(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") DEBUG: Checking schedule(at any time, null)(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") DEBUG: No schedule defined(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") DEBUG: Branch needs creating(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") DEBUG: Using reuseExistingBranch: false(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") DEBUG: manager.getUpdatedPackageFiles() reuseExistinbranch=false(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") DEBUG: Starting search at index 5(packageFile="Dockerfile", branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") { "depName": "registry.access.redhat.com/ubi8/ubi-minimal" } DEBUG: Found match at index 5(packageFile="Dockerfile", branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") { "depName": "registry.access.redhat.com/ubi8/ubi-minimal" } DEBUG: Contents updated(packageFile="Dockerfile", branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") { "depName": "registry.access.redhat.com/ubi8/ubi-minimal" } DEBUG: Updated 1 package files(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") DEBUG: Getting updated lock files(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") DEBUG: Writing package.json files(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") { "packageFiles": [ "package.json" ] } DEBUG: Writing package-lock.json(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") DEBUG: Writing any updated package files(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") DEBUG: No updated lock files in branch(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") DEBUG: 1 file(s) to commit(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") DEBUG: Committing files to branch renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") DEBUG: Setting git author name(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") { "gitAuthorName": "Renovate Bot" } DEBUG: Setting git author email(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") { "gitAuthorEmail": "bot@renovateapp.com" } DEBUG: git commit(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") { "deletedFiles": [], "ignoredFiles": [], "result": { "author": null, "branch": "renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement", "commit": "03b90f1", "root": false, "summary": { "changes": 1, "insertions": 1, "deletions": 1 } } } DEBUG: git push(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") { "result": { "pushed": [ { "deleted": false, "tag": false, "branch": true, "new": true, "alreadyUpdated": false, "local": "refs/heads/renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement", "remote": "refs/heads/renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement" } ], "branch": { "local": "renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement", "remote": "renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement", "remoteName": "origin" }, "ref": { "local": "refs/remotes/origin/renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement" }, "remoteMessages": { "all": [ "Create a pull request for 'renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement' on GitHub by visiting:", "https://github.com/scrocquesel/renovate-deprecation-replacements/pull/new/renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement" ], "pullRequestUrl": "https://github.com/scrocquesel/renovate-deprecation-replacements/pull/new/renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement" } } } INFO: Branch created(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") { "commitSha": "03b90f1" } DEBUG: Ensuring PR(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") DEBUG: There are 0 errors and 0 warnings(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") DEBUG: getBranchPr(renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement)(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") DEBUG: findPr(renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement, undefined, open)(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") DEBUG: findPr(renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement, undefined, closed)(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") DEBUG: Creating PR(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") { "prTitle": "Replace registry.access.redhat.com/ubi8/ubi-minimal Docker tag with custom.onpremise/ubi8/ubi-minimal v8.5" } DEBUG: Creating PR(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") { "title": "Replace registry.access.redhat.com/ubi8/ubi-minimal Docker tag with custom.onpremise/ubi8/ubi-minimal v8.5", "head": "scrocquesel:renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement", "base": "master", "draft": false } DEBUG: PR created(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") { "pr": 4, "draft": false } DEBUG: Adding labels '' to #4(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") INFO: PR created(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") { "pr": 4, "prTitle": "Replace registry.access.redhat.com/ubi8/ubi-minimal Docker tag with custom.onpremise/ubi8/ubi-minimal v8.5" } DEBUG: addAssigneesReviewers(pr=4)(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") DEBUG: Created Pull Request #4(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") DEBUG: PR is not configured for automerge(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement") DEBUG: Setting current branch to master(branch="renovate/config-3.x") DEBUG: latest commit(branch="renovate/config-3.x") { "branchName": "master", "latestCommitDate": "2021-11-12T16:09:04+01:00" } DEBUG: getBranchPr(renovate/config-3.x)(branch="renovate/config-3.x") DEBUG: findPr(renovate/config-3.x, undefined, open)(branch="renovate/config-3.x") DEBUG: Found PR #2(branch="renovate/config-3.x") DEBUG: Returning from graphql open PR list(branch="renovate/config-3.x") DEBUG: branchExists=true(branch="renovate/config-3.x") DEBUG: dependencyDashboardCheck=undefined(branch="renovate/config-3.x") DEBUG: PR rebase requested=false(branch="renovate/config-3.x") DEBUG: Checking if PR has been edited(branch="renovate/config-3.x") DEBUG: Found existing branch PR(branch="renovate/config-3.x") DEBUG: Checking schedule(at any time, null)(branch="renovate/config-3.x") DEBUG: No schedule defined(branch="renovate/config-3.x") DEBUG: Branch already exists(branch="renovate/config-3.x") DEBUG: GitHub 404(branch="renovate/config-3.x") { "url": "repos/scrocquesel/renovate-deprecation-replacements/branches/master/protection" } DEBUG: No branch protection found(branch="renovate/config-3.x") DEBUG: Skipping stale branch check due to rebaseWhen=auto(branch="renovate/config-3.x") DEBUG: Branch does not need rebasing(branch="renovate/config-3.x") DEBUG: Using reuseExistingBranch: true(branch="renovate/config-3.x") DEBUG: manager.getUpdatedPackageFiles() reuseExistinbranch=true(branch="renovate/config-3.x") DEBUG: npm.updateDependency(): dependencies.config = 3.3.6(branch="renovate/config-3.x") DEBUG: No package files need updating(branch="renovate/config-3.x") DEBUG: Getting updated lock files(branch="renovate/config-3.x") DEBUG: Writing package.json files(branch="renovate/config-3.x") { "packageFiles": [ "package.json" ] } DEBUG: Writing package-lock.json(branch="renovate/config-3.x") DEBUG: Writing any updated package files(branch="renovate/config-3.x") DEBUG: No updated lock files in branch(branch="renovate/config-3.x") DEBUG: No files to commit(branch="renovate/config-3.x") DEBUG: Checking if we can automerge branch(branch="renovate/config-3.x") DEBUG: mergeStatus=no automerge(branch="renovate/config-3.x") DEBUG: Ensuring PR(branch="renovate/config-3.x") DEBUG: There are 0 errors and 0 warnings(branch="renovate/config-3.x") DEBUG: Found existing PR(branch="renovate/config-3.x") DEBUG: Processing existing PR(branch="renovate/config-3.x") DEBUG: Pull Request #2 does not need updating(branch="renovate/config-3.x") DEBUG: PR is not configured for automerge(branch="renovate/config-3.x") DEBUG: Setting current branch to master(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-8.x") DEBUG: latest commit(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-8.x") { "branchName": "master", "latestCommitDate": "2021-11-12T16:09:04+01:00" } DEBUG: getBranchPr(renovate/registry.access.redhat.com-ubi8-ubi-minimal-8.x)(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-8.x") DEBUG: findPr(renovate/registry.access.redhat.com-ubi8-ubi-minimal-8.x, undefined, open)(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-8.x") DEBUG: Found PR #3(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-8.x") DEBUG: Returning from graphql open PR list(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-8.x") DEBUG: branchExists=true(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-8.x") DEBUG: dependencyDashboardCheck=undefined(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-8.x") DEBUG: PR rebase requested=false(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-8.x") DEBUG: Checking if PR has been edited(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-8.x") DEBUG: Found existing branch PR(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-8.x") DEBUG: Checking schedule(at any time, null)(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-8.x") DEBUG: No schedule defined(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-8.x") DEBUG: Branch already exists(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-8.x") DEBUG: Skipping stale branch check due to rebaseWhen=auto(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-8.x") DEBUG: Branch does not need rebasing(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-8.x") DEBUG: Using reuseExistingBranch: true(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-8.x") DEBUG: manager.getUpdatedPackageFiles() reuseExistinbranch=true(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-8.x") DEBUG: Branch dep is already updated(packageFile="Dockerfile", branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-8.x") { "depName": "registry.access.redhat.com/ubi8/ubi-minimal" } DEBUG: No content changed(packageFile="Dockerfile", branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-8.x") { "depName": "registry.access.redhat.com/ubi8/ubi-minimal" } DEBUG: No package files need updating(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-8.x") DEBUG: Getting updated lock files(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-8.x") DEBUG: Writing package.json files(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-8.x") { "packageFiles": [ "package.json" ] } DEBUG: Writing package-lock.json(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-8.x") DEBUG: Writing any updated package files(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-8.x") DEBUG: No updated lock files in branch(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-8.x") DEBUG: No files to commit(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-8.x") DEBUG: Checking if we can automerge branch(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-8.x") DEBUG: mergeStatus=no automerge(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-8.x") DEBUG: Ensuring PR(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-8.x") DEBUG: There are 0 errors and 0 warnings(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-8.x") DEBUG: Found existing PR(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-8.x") DEBUG: Processing existing PR(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-8.x") DEBUG: Pull Request #3 does not need updating(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-8.x") DEBUG: PR is not configured for automerge(branch="renovate/registry.access.redhat.com-ubi8-ubi-minimal-8.x") DEBUG: getBranchPr(renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement) DEBUG: findPr(renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement, undefined, open) DEBUG: Found PR #4 DEBUG: Returning from graphql open PR list DEBUG: Closing Dependency Dashboard INFO: Cannot ensure issue because issues are disabled in this repository DEBUG: Removing any stale branches DEBUG: config.repoIsOnboarded=true DEBUG: Branch lists { "branchList": [ "renovate/config-3.x", "renovate/registry.access.redhat.com-ubi8-ubi-minimal-8.x", "renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement" ], "renovateBranches": [ "renovate/config-3.x", "renovate/registry.access.redhat.com-ubi8-ubi-minimal-8.x", "renovate/registry.access.redhat.com-ubi8-ubi-minimal-replacement" ] } DEBUG: remainingBranches= DEBUG: No branches to clean up INFO: Cannot ensure issue because issues are disabled in this repository DEBUG: Repository timing splits (milliseconds) { "splits": { "init": 1349, "extract": 1719, "lookup": 423, "update": 6069 }, "total": 10324 } DEBUG: http statistics { "urls": { "https://api.github.com/graphql (POST)": 3, "https://api.github.com/repos/scrocquesel/renovate-deprecation-replacements/contents/renovate.json (GET)": 1, "https://api.github.com/repos/scrocquesel/renovate-deprecation-replacements/pulls (GET)": 1, "https://api.github.com/repos/scrocquesel/renovate-deprecation-replacements/pulls (POST)": 1, "https://api.github.com/repos/whitesource/merge-confidence/contents/beta.json (GET)": 1 }, "hostStats": { "api.github.com": { "requestCount": 7, "requestAvgMs": 355, "queueAvgMs": 1 } }, "totalRequests": 7 } INFO: Repository finished { "durationMs": 10324 } ```

Have you created a minimal reproduction repository?

I have linked to a minimal reproduction repository in the bug description

JamieMagee commented 2 years ago

Replacements are currently only implemented for npm, so I'll change this to a feature and update the documentation to make that clearer.

fgreinacher commented 2 years ago

@JamieMagee Are you planning to look into this soon? If not I'd happily help here! Just wondering a bit why it's only working for NPM at the moment, the search results for replacementName seem to be datasource-agnostic.

JamieMagee commented 2 years ago

The changes to get this working with Docker are actually pretty minimal. I outlined them in a comment here: https://github.com/renovatebot/renovate/issues/5667#issuecomment-969866663. I've got a proof-of-concept working as well: https://github.com/JamieMagee/renovate-replacements-docker/pull/1/files

The main thing that's preventing me from opening a PR right now is docker uses doAutoReplace, so changes here will actually light up many other managers at the same time, and I'd like to get some more confidence with testing those managers as well.

I should probably open the PR regardless, and do my testing in the open.

fgreinacher commented 2 years ago

Sweet! Happy to help try things out, just ping me on the PR!

JamieMagee commented 1 year ago

@scrocquesel can you try again now #17883 is merged?

scrocquesel commented 1 year ago

@scrocquesel can you try again now #17883 is merged?

Worked, many thanks to all contributors.