From ab018191fac6961b5f9d0a73261ac8fba0b4566f Mon Sep 17 00:00:00 2001
From: HonkingGoose <34918129+HonkingGoose@users.noreply.github.com>
Date: Mon, 8 Nov 2021 20:20:03 +0100
Subject: [PATCH] chore: report and fix unused ESLint disable directives
 (#12548)

---
 lib/config-validator.ts                       |  2 -
 lib/config/decrypt.spec.ts                    |  4 +-
 lib/config/decrypt.ts                         |  1 -
 lib/config/global.ts                          |  2 +-
 lib/config/migration.ts                       |  6 +--
 lib/config/presets/index.ts                   |  2 +-
 lib/config/presets/util.ts                    |  1 -
 lib/config/validation.ts                      |  2 +-
 lib/datasource/cdnjs/index.ts                 |  2 +-
 lib/datasource/clojure/index.spec.ts          |  2 +-
 lib/datasource/clojure/index.ts               |  1 -
 lib/datasource/datasource.ts                  |  2 +-
 lib/datasource/git-refs/index.ts              |  2 -
 lib/datasource/git-tags/index.ts              |  2 -
 lib/datasource/index.ts                       |  2 +-
 lib/datasource/jenkins-plugins/get.ts         | 13 ++---
 lib/datasource/maven/index.spec.ts            |  2 +-
 lib/datasource/metadata.ts                    |  1 -
 lib/datasource/npm/index.spec.ts              |  4 +-
 lib/datasource/npm/npmrc.spec.ts              |  2 -
 lib/datasource/ruby-version/index.ts          |  1 -
 lib/datasource/terraform-module/index.ts      |  1 -
 lib/logger/config-serializer.ts               | 25 ++++-----
 lib/logger/utils.ts                           |  1 -
 lib/manager/ansible-galaxy/collections.ts     |  2 -
 lib/manager/bundler/extract.ts                |  2 -
 lib/manager/circleci/extract.ts               |  2 +-
 lib/manager/composer/extract.ts               |  4 +-
 lib/manager/dockerfile/extract.spec.ts        |  4 --
 lib/manager/github-actions/extract.ts         |  4 +-
 lib/manager/gitlabci/extract.ts               |  2 +-
 lib/manager/gradle-wrapper/utils.ts           |  1 -
 lib/manager/gradle/deep/build-gradle.spec.ts  | 10 ++--
 lib/manager/gradle/deep/build-gradle.ts       |  1 -
 lib/manager/gradle/shallow/parser.spec.ts     |  1 -
 lib/manager/gradle/shallow/tokenizer.spec.ts  | 12 ++---
 lib/manager/helmfile/extract.ts               |  2 +-
 lib/manager/maven/extract.spec.ts             |  1 -
 lib/manager/maven/extract.ts                  |  6 +--
 lib/manager/maven/index.spec.ts               |  1 -
 lib/manager/npm/extract/index.spec.ts         |  1 -
 lib/manager/npm/extract/index.ts              |  2 +-
 lib/manager/npm/extract/monorepo.ts           |  4 +-
 lib/manager/npm/extract/pnpm.ts               |  4 +-
 lib/manager/npm/post-update/index.ts          |  6 +--
 lib/manager/npm/update/dependency/index.ts    |  2 -
 lib/manager/pip_requirements/extract.spec.ts  |  4 +-
 lib/manager/swift/extract.ts                  |  2 +-
 lib/manager/terraform/extract.ts              |  2 +-
 lib/manager/terraform/modules.ts              |  3 +-
 lib/manager/terraform/providers.ts            |  1 -
 lib/manager/terraform/required-providers.ts   |  2 -
 lib/manager/terraform/required-version.ts     |  1 -
 lib/manager/terraform/resources.ts            |  2 -
 lib/manager/terraform/util.ts                 |  1 -
 lib/manager/terragrunt/extract.ts             |  2 +-
 lib/manager/terragrunt/modules.ts             |  3 +-
 lib/platform/azure/azure-helper.spec.ts       |  9 ++--
 lib/platform/azure/index.spec.ts              |  2 +-
 lib/platform/azure/index.ts                   |  1 -
 lib/platform/azure/util.ts                    |  2 +-
 lib/platform/bitbucket/index.ts               |  1 -
 lib/platform/index.ts                         |  1 -
 lib/util/exec/index.spec.ts                   |  1 -
 lib/util/http/auth.ts                         |  7 ++-
 lib/util/http/index.ts                        |  5 +-
 lib/util/index.ts                             |  2 +-
 lib/util/regex.spec.ts                        |  1 -
 lib/util/regex.ts                             |  2 +-
 lib/versioning/index.spec.ts                  |  4 --
 lib/versioning/index.ts                       |  1 -
 lib/versioning/loose/generic.ts               |  3 +-
 lib/versioning/loose/utils.spec.ts            |  3 --
 lib/versioning/regex/index.ts                 |  1 -
 lib/workers/branch/get-updated.ts             |  2 +-
 lib/workers/branch/index.ts                   |  4 +-
 lib/workers/global/config/parse/cli.ts        |  1 -
 lib/workers/global/config/parse/env.ts        |  2 +-
 lib/workers/global/config/parse/file.ts       |  1 -
 .../config/parse/host-rules-from-env.ts       |  4 +-
 lib/workers/pr/body/index.ts                  |  1 -
 lib/workers/pr/index.ts                       |  2 +-
 lib/workers/repository/changelog/index.ts     |  2 +-
 .../repository/dependency-dashboard.spec.ts   |  2 +-
 .../repository/dependency-dashboard.ts        |  1 -
 lib/workers/repository/error.ts               | 52 +++++++++----------
 lib/workers/repository/index.ts               |  2 +-
 lib/workers/repository/init/vulnerability.ts  |  8 +--
 lib/workers/repository/process/fetch.ts       |  2 +-
 .../process/lookup/filter-checks.ts           |  4 +-
 .../repository/process/lookup/index.ts        |  4 +-
 lib/workers/repository/updates/branch-name.ts |  1 -
 lib/workers/repository/updates/generate.ts    |  5 +-
 package.json                                  |  4 +-
 test/exec-util.ts                             |  1 -
 tools/check-re2.mjs                           |  2 +-
 96 files changed, 128 insertions(+), 205 deletions(-)

diff --git a/lib/config-validator.ts b/lib/config-validator.ts
index bd659398db..2c6ddc237f 100644
--- a/lib/config-validator.ts
+++ b/lib/config-validator.ts
@@ -11,8 +11,6 @@ import { validateConfig } from './config/validation';
 import { logger } from './logger';
 import { getConfig as getFileConfig } from './workers/global/config/parse/file';
 
-/* eslint-disable no-console */
-
 let returnVal = 0;
 
 async function validate(
diff --git a/lib/config/decrypt.spec.ts b/lib/config/decrypt.spec.ts
index 18c2c3808d..2d6d215125 100644
--- a/lib/config/decrypt.spec.ts
+++ b/lib/config/decrypt.spec.ts
@@ -41,7 +41,7 @@ describe('config/decrypt', () => {
     it('replaces npm token placeholder in npmrc', async () => {
       setGlobalConfig({ privateKey: 'invalid-key', privateKeyOld: privateKey }); // test old key failover
       config.npmrc =
-        '//registry.npmjs.org/:_authToken=${NPM_TOKEN}\n//registry.npmjs.org/:_authToken=${NPM_TOKEN}\n'; // eslint-disable-line no-template-curly-in-string
+        '//registry.npmjs.org/:_authToken=${NPM_TOKEN}\n//registry.npmjs.org/:_authToken=${NPM_TOKEN}\n';
       config.encrypted = {
         npmToken:
           'FLA9YHIzpE7YetAg/P0X46npGRCMqn7hgyzwX5ZQ9wYgu9BRRbTiBVsUIFTyM5BuP1Q22slT2GkWvFvum7GU236Y6QiT7Nr8SLvtsJn2XUuq8H7REFKzdy3+wqyyWbCErYTFyY1dcPM7Ht+CaGDWdd8u/FsoX7AdMRs/X1jNUo6iSmlUiyGlYDKF+QMnCJom1VPVgZXWsGKdjI2MLny991QMaiv0VajmFIh4ENv4CtXOl/1twvIl/6XTXAaqpJJKDTPZEuydi+PHDZmal2RAOfrkH4m0UURa7SlfpUlIg+EaqbNGp85hCYXLwRcEET1OnYr3rH1oYkcYJ40any1tvQ==',
@@ -55,7 +55,7 @@ describe('config/decrypt', () => {
     });
     it('appends npm token in npmrc', async () => {
       setGlobalConfig({ privateKey });
-      config.npmrc = 'foo=bar\n'; // eslint-disable-line no-template-curly-in-string
+      config.npmrc = 'foo=bar\n';
       config.encrypted = {
         npmToken:
           'FLA9YHIzpE7YetAg/P0X46npGRCMqn7hgyzwX5ZQ9wYgu9BRRbTiBVsUIFTyM5BuP1Q22slT2GkWvFvum7GU236Y6QiT7Nr8SLvtsJn2XUuq8H7REFKzdy3+wqyyWbCErYTFyY1dcPM7Ht+CaGDWdd8u/FsoX7AdMRs/X1jNUo6iSmlUiyGlYDKF+QMnCJom1VPVgZXWsGKdjI2MLny991QMaiv0VajmFIh4ENv4CtXOl/1twvIl/6XTXAaqpJJKDTPZEuydi+PHDZmal2RAOfrkH4m0UURa7SlfpUlIg+EaqbNGp85hCYXLwRcEET1OnYr3rH1oYkcYJ40any1tvQ==',
diff --git a/lib/config/decrypt.ts b/lib/config/decrypt.ts
index 86a51a435b..e17c1b9b1e 100644
--- a/lib/config/decrypt.ts
+++ b/lib/config/decrypt.ts
@@ -179,7 +179,6 @@ export async function decryptConfig(
               'Migrating npmToken to npmrc'
             );
             if (is.string(decryptedConfig.npmrc)) {
-              /* eslint-disable no-template-curly-in-string */
               if (decryptedConfig.npmrc.includes('${NPM_TOKEN}')) {
                 logger.debug('Replacing ${NPM_TOKEN} with decrypted token');
                 decryptedConfig.npmrc = decryptedConfig.npmrc.replace(
diff --git a/lib/config/global.ts b/lib/config/global.ts
index 0d17dd3992..38f557c52f 100644
--- a/lib/config/global.ts
+++ b/lib/config/global.ts
@@ -29,7 +29,7 @@ export function setGlobalConfig(
   const result = { ...config };
   for (const option of repoGlobalOptions) {
     repoGlobalConfig[option] = config[option];
-    delete result[option]; // eslint-disable-line no-param-reassign
+    delete result[option];
   }
   return result;
 }
diff --git a/lib/config/migration.ts b/lib/config/migration.ts
index d0482ef5aa..6b548e4f66 100644
--- a/lib/config/migration.ts
+++ b/lib/config/migration.ts
@@ -316,11 +316,11 @@ export function migrateConfig(
         migratedConfig.automergeType = 'branch';
       } else if (key === 'automergeMinor') {
         migratedConfig.minor = migratedConfig.minor || {};
-        migratedConfig.minor.automerge = val == true; // eslint-disable-line eqeqeq
+        migratedConfig.minor.automerge = val == true;
         delete migratedConfig[key];
       } else if (key === 'automergeMajor') {
         migratedConfig.major = migratedConfig.major || {};
-        migratedConfig.major.automerge = val == true; // eslint-disable-line eqeqeq
+        migratedConfig.major.automerge = val == true;
         delete migratedConfig[key];
       } else if (key === 'multipleMajorPrs') {
         delete migratedConfig.multipleMajorPrs;
@@ -336,7 +336,7 @@ export function migrateConfig(
         migratedConfig.separateMinorPatch = val;
       } else if (key === 'automergePatch') {
         migratedConfig.patch = migratedConfig.patch || {};
-        migratedConfig.patch.automerge = val == true; // eslint-disable-line eqeqeq
+        migratedConfig.patch.automerge = val == true;
         delete migratedConfig[key];
       } else if (key === 'ignoreNodeModules') {
         delete migratedConfig.ignoreNodeModules;
diff --git a/lib/config/presets/index.ts b/lib/config/presets/index.ts
index 21298a1447..8ad679445e 100644
--- a/lib/config/presets/index.ts
+++ b/lib/config/presets/index.ts
@@ -255,7 +255,7 @@ export async function resolveConfigPresets(
   existingPresets: string[] = []
 ): Promise<AllConfig> {
   if (!ignorePresets || ignorePresets.length === 0) {
-    ignorePresets = inputConfig.ignorePresets || []; // eslint-disable-line
+    ignorePresets = inputConfig.ignorePresets || [];
   }
   logger.trace(
     { config: inputConfig, existingPresets },
diff --git a/lib/config/presets/util.ts b/lib/config/presets/util.ts
index 8b044b5a33..4f701cb4ed 100644
--- a/lib/config/presets/util.ts
+++ b/lib/config/presets/util.ts
@@ -18,7 +18,6 @@ export async function fetchPreset({
   packageTag = null,
   fetch,
 }: FetchPresetConfig): Promise<Preset | undefined> {
-  // eslint-disable-next-line no-param-reassign
   endpoint = ensureTrailingSlash(endpoint);
   const [fileName, presetName, subPresetName] = filePreset.split('/');
   const pathPrefix = presetPath ? `${presetPath}/` : '';
diff --git a/lib/config/validation.ts b/lib/config/validation.ts
index 3faa3dbd77..7ca765b547 100644
--- a/lib/config/validation.ts
+++ b/lib/config/validation.ts
@@ -122,7 +122,7 @@ export async function validateConfig(
         topic: 'Config security error',
         message: '__proto__',
       });
-      continue; // eslint-disable-line
+      continue;
     }
     if (parentPath && topLevelObjects.includes(key)) {
       errors.push({
diff --git a/lib/datasource/cdnjs/index.ts b/lib/datasource/cdnjs/index.ts
index cac132885f..7fbce6cb9f 100644
--- a/lib/datasource/cdnjs/index.ts
+++ b/lib/datasource/cdnjs/index.ts
@@ -17,7 +17,7 @@ export class CdnJsDatasource extends Datasource {
   override readonly caching = true;
 
   // this.handleErrors will always throw
-  // eslint-disable-next-line consistent-return
+
   async getReleases({
     lookupName,
     registryUrl,
diff --git a/lib/datasource/clojure/index.spec.ts b/lib/datasource/clojure/index.spec.ts
index 66aab7a7ec..d6b4d312aa 100644
--- a/lib/datasource/clojure/index.spec.ts
+++ b/lib/datasource/clojure/index.spec.ts
@@ -294,7 +294,7 @@ describe('datasource/clojure/index', () => {
   it('returns null for invalid registryUrls', async () => {
     const res = await get(
       'org.example:package',
-      // eslint-disable-next-line no-template-curly-in-string
+
       '${project.baseUri}../../repository/'
     );
     expect(res).toBeNull();
diff --git a/lib/datasource/clojure/index.ts b/lib/datasource/clojure/index.ts
index 79b2c8cf03..513909ab9a 100644
--- a/lib/datasource/clojure/index.ts
+++ b/lib/datasource/clojure/index.ts
@@ -17,7 +17,6 @@ export class ClojureDatasource extends Datasource {
     MAVEN_REPO,
   ];
 
-  // eslint-disable-next-line class-methods-use-this
   getReleases({
     lookupName,
     registryUrl,
diff --git a/lib/datasource/datasource.ts b/lib/datasource/datasource.ts
index 033557c6d6..84b2195279 100644
--- a/lib/datasource/datasource.ts
+++ b/lib/datasource/datasource.ts
@@ -33,7 +33,7 @@ export abstract class Datasource implements DatasourceApi {
 
   getDigest?(config: DigestConfig, newValue?: string): Promise<string>;
 
-  // eslint-disable-next-line class-methods-use-this, @typescript-eslint/no-empty-function
+  // eslint-disable-next-line @typescript-eslint/no-empty-function
   handleSpecificErrors(err: HttpError): void {}
 
   protected handleGenericErrors(err: HttpError): never {
diff --git a/lib/datasource/git-refs/index.ts b/lib/datasource/git-refs/index.ts
index dcd2e60350..6567ece8ff 100644
--- a/lib/datasource/git-refs/index.ts
+++ b/lib/datasource/git-refs/index.ts
@@ -22,7 +22,6 @@ export class GitRefsDatasource extends Datasource {
     namespace: `datasource-${GitRefsDatasource.id}`,
     key: ({ lookupName }: GetReleasesConfig) => lookupName,
   })
-  // eslint-disable-next-line class-methods-use-this
   override async getReleases({
     lookupName,
   }: GetReleasesConfig): Promise<ReleaseResult | null> {
@@ -54,7 +53,6 @@ export class GitRefsDatasource extends Datasource {
     return result;
   }
 
-  // eslint-disable-next-line class-methods-use-this
   override async getDigest(
     { lookupName }: DigestConfig,
     newValue?: string
diff --git a/lib/datasource/git-tags/index.ts b/lib/datasource/git-tags/index.ts
index f48a66fc10..e155a4d2e6 100644
--- a/lib/datasource/git-tags/index.ts
+++ b/lib/datasource/git-tags/index.ts
@@ -18,7 +18,6 @@ export class GitTagsDatasource extends Datasource {
     namespace: `datasource-${GitTagsDatasource.id}`,
     key: ({ lookupName }: GetReleasesConfig) => lookupName,
   })
-  // eslint-disable-next-line class-methods-use-this
   async getReleases({
     lookupName,
   }: GetReleasesConfig): Promise<ReleaseResult | null> {
@@ -48,7 +47,6 @@ export class GitTagsDatasource extends Datasource {
     return result;
   }
 
-  // eslint-disable-next-line class-methods-use-this
   override async getDigest(
     { lookupName }: DigestConfig,
     newValue?: string
diff --git a/lib/datasource/index.ts b/lib/datasource/index.ts
index 7e1adab369..e77b06d453 100644
--- a/lib/datasource/index.ts
+++ b/lib/datasource/index.ts
@@ -354,7 +354,7 @@ export async function getPkgReleases(
   }
   // Strip constraints from releases result
   res.releases.forEach((release) => {
-    delete release.constraints; // eslint-disable-line no-param-reassign
+    delete release.constraints;
   });
   return res;
 }
diff --git a/lib/datasource/jenkins-plugins/get.ts b/lib/datasource/jenkins-plugins/get.ts
index 14b517d6a8..a80c96ef2c 100644
--- a/lib/datasource/jenkins-plugins/get.ts
+++ b/lib/datasource/jenkins-plugins/get.ts
@@ -28,13 +28,12 @@ async function updateJenkinsCache(
   updateHandler: () => Promise<void>
 ): Promise<void> {
   if (hasCacheExpired(cache)) {
-    // eslint-disable-next-line no-param-reassign
     cache.updatePromise =
       // eslint-disable-next-line @typescript-eslint/no-misused-promises
       cache.updatePromise || updateHandler();
     await cache.updatePromise;
 
-    cache.updatePromise = null; // eslint-disable-line no-param-reassign
+    cache.updatePromise = null;
   }
 }
 
@@ -43,7 +42,6 @@ function updateJenkinsPluginInfoCacheCallback(
   cache: JenkinsCache<ReleaseResult>
 ): void {
   for (const name of Object.keys(response.plugins || [])) {
-    // eslint-disable-next-line no-param-reassign
     cache.cache[name] = {
       releases: [], // releases are stored in another cache
       sourceUrl: response.plugins[name]?.scm,
@@ -57,7 +55,6 @@ function updateJenkinsPluginVersionsCacheCallback(
 ): void {
   const plugins = response.plugins;
   for (const name of Object.keys(plugins || [])) {
-    // eslint-disable-next-line no-param-reassign
     cache.cache[name] = Object.keys(plugins[name]).map((version) => ({
       version,
       downloadUrl: plugins[name][version]?.url,
@@ -89,7 +86,6 @@ async function getJenkinsUpdateCenterResponse<T>(
       `jenkins-plugins: Fetched Jenkins plugins ${cache.name}`
     );
   } catch (err) /* istanbul ignore next */ {
-    // eslint-disable-next-line no-param-reassign
     cache.cache = Object.create(null);
     throw new ExternalHostError(
       new Error(`jenkins-plugins: Fetch plugins ${cache.name} error`)
@@ -101,14 +97,14 @@ async function getJenkinsUpdateCenterResponse<T>(
 
 async function updateJenkinsPluginCache<T>(
   cache: JenkinsCache<JenkinsCacheTypes>,
-  // eslint-disable-next-line @typescript-eslint/no-shadow
+
   callback: (resp: T, cache: JenkinsCache<any>) => void
 ): Promise<void> {
   const response = await getJenkinsUpdateCenterResponse<T>(cache);
   if (response) {
     callback(response, cache);
   }
-  cache.lastSync = new Date(); // eslint-disable-line no-param-reassign
+  cache.lastSync = new Date();
 }
 
 const pluginInfoCache: JenkinsCache<ReleaseResult> = {
@@ -169,9 +165,8 @@ export function getReleases({
 }
 
 function resetJenkinsCache(cache: JenkinsCache<JenkinsCacheTypes>): void {
-  // eslint-disable-next-line no-param-reassign
   cache.lastSync = new Date('2000-01-01');
-  cache.cache = Object.create(null); // eslint-disable-line no-param-reassign
+  cache.cache = Object.create(null);
 }
 
 // Note: use only for tests
diff --git a/lib/datasource/maven/index.spec.ts b/lib/datasource/maven/index.spec.ts
index c6812fd6db..523ddc153f 100644
--- a/lib/datasource/maven/index.spec.ts
+++ b/lib/datasource/maven/index.spec.ts
@@ -315,7 +315,7 @@ describe('datasource/maven/index', () => {
   it('returns null for invalid registryUrls', async () => {
     const res = await get(
       'org.example:package',
-      // eslint-disable-next-line no-template-curly-in-string
+
       '${project.baseUri}../../repository/'
     );
     expect(res).toBeNull();
diff --git a/lib/datasource/metadata.ts b/lib/datasource/metadata.ts
index cd92345a50..25103f1927 100644
--- a/lib/datasource/metadata.ts
+++ b/lib/datasource/metadata.ts
@@ -175,7 +175,6 @@ function massageTimestamps(dep: ReleaseResult): void {
   }
 }
 
-/* eslint-disable no-param-reassign */
 export function addMetaData(
   dep?: ReleaseResult,
   datasource?: string,
diff --git a/lib/datasource/npm/index.spec.ts b/lib/datasource/npm/index.spec.ts
index d685608c9c..21d15880aa 100644
--- a/lib/datasource/npm/index.spec.ts
+++ b/lib/datasource/npm/index.spec.ts
@@ -358,7 +358,7 @@ describe('datasource/npm/index', () => {
     process.env.REGISTRY = 'https://registry.from-env.com';
     process.env.RENOVATE_CACHE_NPM_MINUTES = '15';
     setGlobalConfig({ exposeAllEnv: true });
-    // eslint-disable-next-line no-template-curly-in-string
+
     const npmrc = 'registry=${REGISTRY}';
     const res = await getPkgReleases({ datasource, depName: 'foobar', npmrc });
     expect(res).toMatchSnapshot();
@@ -367,7 +367,7 @@ describe('datasource/npm/index', () => {
 
   it('should throw error if necessary env var is not present', () => {
     setGlobalConfig({ exposeAllEnv: true });
-    // eslint-disable-next-line no-template-curly-in-string
+
     expect(() => setNpmrc('registry=${REGISTRY_MISSING}')).toThrow(
       Error('env-replace')
     );
diff --git a/lib/datasource/npm/npmrc.spec.ts b/lib/datasource/npm/npmrc.spec.ts
index 6e70054cc2..1bd3e86e84 100644
--- a/lib/datasource/npm/npmrc.spec.ts
+++ b/lib/datasource/npm/npmrc.spec.ts
@@ -21,7 +21,6 @@ describe('datasource/npm/npmrc', () => {
   });
 
   it('sanitize _authtoken', () => {
-    // eslint-disable-next-line no-template-curly-in-string
     setNpmrc('//registry.test.com:_authToken=test\n_authToken=${NPM_TOKEN}');
     expect(sanitize.add).toHaveBeenCalledWith('test');
     expect(sanitize.add).toHaveBeenCalledTimes(1);
@@ -41,7 +40,6 @@ describe('datasource/npm/npmrc', () => {
     setGlobalConfig({ exposeAllEnv: true });
     process.env.TEST_TOKEN = 'test';
     setNpmrc(
-      // eslint-disable-next-line no-template-curly-in-string
       '//registry.test.com:_authToken=${TEST_TOKEN}\n_authToken=\nregistry=http://localhost'
     );
     expect(sanitize.add).toHaveBeenCalledWith('test');
diff --git a/lib/datasource/ruby-version/index.ts b/lib/datasource/ruby-version/index.ts
index c5c845b7b7..ca7646277c 100644
--- a/lib/datasource/ruby-version/index.ts
+++ b/lib/datasource/ruby-version/index.ts
@@ -56,7 +56,6 @@ export class RubyVersionDatasource extends Datasource {
     return res;
   }
 
-  // eslint-disable-next-line class-methods-use-this
   override handleSpecificErrors(err: HttpError): never | void {
     throw new ExternalHostError(err);
   }
diff --git a/lib/datasource/terraform-module/index.ts b/lib/datasource/terraform-module/index.ts
index 84f287d57b..0c6d4a44da 100644
--- a/lib/datasource/terraform-module/index.ts
+++ b/lib/datasource/terraform-module/index.ts
@@ -83,7 +83,6 @@ export class TerraformModuleDatasource extends TerraformDatasource {
     return dep;
   }
 
-  // eslint-disable-next-line class-methods-use-this
   override handleSpecificErrors(err: HttpError): void {
     const failureCodes = ['EAI_AGAIN'];
     // istanbul ignore if
diff --git a/lib/logger/config-serializer.ts b/lib/logger/config-serializer.ts
index 9f6a33dd18..240cbd2f73 100644
--- a/lib/logger/config-serializer.ts
+++ b/lib/logger/config-serializer.ts
@@ -13,19 +13,16 @@ export default function configSerializer(
   ];
   const arrayFields = ['packageFiles', 'upgrades'];
 
-  return traverse(config).map(
-    // eslint-disable-next-line array-callback-return
-    function scrub(val: string) {
-      if (val && templateFields.includes(this.key)) {
-        this.update('[Template]');
-      }
-      if (val && contentFields.includes(this.key)) {
-        this.update('[content]');
-      }
-      // istanbul ignore if
-      if (val && arrayFields.includes(this.key)) {
-        this.update('[Array]');
-      }
+  return traverse(config).map(function scrub(val: string) {
+    if (val && templateFields.includes(this.key)) {
+      this.update('[Template]');
     }
-  );
+    if (val && contentFields.includes(this.key)) {
+      this.update('[content]');
+    }
+    // istanbul ignore if
+    if (val && arrayFields.includes(this.key)) {
+      this.update('[Array]');
+    }
+  });
 }
diff --git a/lib/logger/utils.ts b/lib/logger/utils.ts
index 0f9abe39c5..ed605e9193 100644
--- a/lib/logger/utils.ts
+++ b/lib/logger/utils.ts
@@ -108,7 +108,6 @@ export function sanitizeValue(value: unknown, seen = new WeakMap()): any {
   }
 
   if (value instanceof Error) {
-    // eslint-disable-next-line no-param-reassign
     value = prepareError(value);
   }
 
diff --git a/lib/manager/ansible-galaxy/collections.ts b/lib/manager/ansible-galaxy/collections.ts
index adf6f4cd65..ed6877f4c4 100644
--- a/lib/manager/ansible-galaxy/collections.ts
+++ b/lib/manager/ansible-galaxy/collections.ts
@@ -49,7 +49,6 @@ function handleGitDep(
   dep: PackageDependency,
   nameMatch: RegExpExecArray
 ): void {
-  /* eslint-disable no-param-reassign */
   dep.datasource = GitTagsDatasource.id;
 
   if (nameMatch) {
@@ -80,7 +79,6 @@ function handleGitDep(
 }
 
 function handleGalaxyDep(dep: PackageDependency): void {
-  /* eslint-disable no-param-reassign */
   dep.datasource = GalaxyCollectionDatasource.id;
   dep.depName = dep.managerData.name;
   dep.registryUrls = dep.managerData.source ? [dep.managerData.source] : [];
diff --git a/lib/manager/bundler/extract.ts b/lib/manager/bundler/extract.ts
index 19b5fe5c5d..228be6f5f2 100644
--- a/lib/manager/bundler/extract.ts
+++ b/lib/manager/bundler/extract.ts
@@ -141,7 +141,6 @@ export async function extractPackageFile(
       const platformsRes = await extractPackageFile(platformsContent);
       if (platformsRes) {
         res.deps = res.deps.concat(
-          // eslint-disable-next-line no-loop-func
           platformsRes.deps.map((dep) => ({
             ...dep,
             managerData: {
@@ -167,7 +166,6 @@ export async function extractPackageFile(
       const ifRes = await extractPackageFile(ifContent);
       if (ifRes) {
         res.deps = res.deps.concat(
-          // eslint-disable-next-line no-loop-func
           ifRes.deps.map((dep) => ({
             ...dep,
             managerData: {
diff --git a/lib/manager/circleci/extract.ts b/lib/manager/circleci/extract.ts
index 5b76e9cd3e..800c1eafdb 100644
--- a/lib/manager/circleci/extract.ts
+++ b/lib/manager/circleci/extract.ts
@@ -24,7 +24,7 @@ export function extractPackageFile(content: string): PackageFile | null {
             logger.debug('orbNoop');
             foundOrbOrNoop = true;
             lineNumber += 1;
-            continue; // eslint-disable-line no-continue
+            continue;
           }
           const orbMatch = regEx(/^\s+([^:]+):\s(.+)$/).exec(orbLine); // TODO #12071
           if (orbMatch) {
diff --git a/lib/manager/composer/extract.ts b/lib/manager/composer/extract.ts
index 754109701c..c6f85f9bbe 100644
--- a/lib/manager/composer/extract.ts
+++ b/lib/manager/composer/extract.ts
@@ -41,11 +41,10 @@ function parseRepositories(
     Object.entries(repoJson).forEach(([key, repo]) => {
       if (is.object(repo)) {
         const name = is.array(repoJson) ? repo.name : key;
-        // eslint-disable-next-line default-case
+
         switch (repo.type) {
           case 'vcs':
           case 'git':
-            // eslint-disable-next-line no-param-reassign
             repositories[name] = repo;
             break;
           case 'composer':
@@ -131,7 +130,6 @@ export async function extractPackageFile(
 
           // Check custom repositories by type
           if (repositories[depName]) {
-            // eslint-disable-next-line default-case
             switch (repositories[depName].type) {
               case 'vcs':
               case 'git':
diff --git a/lib/manager/dockerfile/extract.spec.ts b/lib/manager/dockerfile/extract.spec.ts
index 4caefc8777..6861578bd3 100644
--- a/lib/manager/dockerfile/extract.spec.ts
+++ b/lib/manager/dockerfile/extract.spec.ts
@@ -619,7 +619,6 @@ describe('manager/dockerfile/extract', () => {
     });
 
     it('handles default environment variable values', () => {
-      // eslint-disable-next-line no-template-curly-in-string
       const res = getDep('${REDIS_IMAGE:-redis:5.0.0@sha256:abcd}');
       expect(res).toMatchInlineSnapshot(`
 Object {
@@ -632,7 +631,6 @@ Object {
 }
 `);
 
-      // eslint-disable-next-line no-template-curly-in-string
       const res2 = getDep('${REDIS_IMAGE:-redis:5.0.0}');
       expect(res2).toMatchInlineSnapshot(`
 Object {
@@ -644,7 +642,6 @@ Object {
 }
 `);
 
-      // eslint-disable-next-line no-template-curly-in-string
       const res3 = getDep('${REDIS_IMAGE:-redis@sha256:abcd}');
       expect(res3).toMatchInlineSnapshot(`
 Object {
@@ -658,7 +655,6 @@ Object {
     });
 
     it('skips tag containing a variable', () => {
-      // eslint-disable-next-line no-template-curly-in-string
       const res = getDep('mcr.microsoft.com/dotnet/sdk:5.0${IMAGESUFFIX}');
       expect(res).toMatchInlineSnapshot(`
         Object {
diff --git a/lib/manager/github-actions/extract.ts b/lib/manager/github-actions/extract.ts
index d5a7bbd234..42e8c4789e 100644
--- a/lib/manager/github-actions/extract.ts
+++ b/lib/manager/github-actions/extract.ts
@@ -19,7 +19,7 @@ export function extractPackageFile(content: string): PackageFile | null {
   const deps: PackageDependency[] = [];
   for (const line of content.split('\n')) {
     if (line.trim().startsWith('#')) {
-      continue; // eslint-disable-line no-continue
+      continue;
     }
 
     const dockerMatch = dockerRe.exec(line);
@@ -29,7 +29,7 @@ export function extractPackageFile(content: string): PackageFile | null {
       dep.depType = 'docker';
       dep.versioning = dockerVersioning.id;
       deps.push(dep);
-      continue; // eslint-disable-line no-continue
+      continue;
     }
 
     const tagMatch = actionRe.exec(line);
diff --git a/lib/manager/gitlabci/extract.ts b/lib/manager/gitlabci/extract.ts
index 2d0fee6ce6..23d98d30ac 100644
--- a/lib/manager/gitlabci/extract.ts
+++ b/lib/manager/gitlabci/extract.ts
@@ -105,7 +105,7 @@ export async function extractAllPackageFiles(
     const content = await readLocalFile(file, 'utf8');
     if (!content) {
       logger.debug({ file }, 'Empty or non existent gitlabci file');
-      // eslint-disable-next-line no-continue
+
       continue;
     }
     let doc: GitlabPipeline;
diff --git a/lib/manager/gradle-wrapper/utils.ts b/lib/manager/gradle-wrapper/utils.ts
index eb3f75966d..5dd3ebce55 100644
--- a/lib/manager/gradle-wrapper/utils.ts
+++ b/lib/manager/gradle-wrapper/utils.ts
@@ -30,7 +30,6 @@ export async function prepareGradleCommand(
   gradlew: Stats | null,
   args: string | null
 ): Promise<string> {
-  /* eslint-disable no-bitwise */
   // istanbul ignore if
   if (gradlew?.isFile() === true) {
     // if the file is not executable by others
diff --git a/lib/manager/gradle/deep/build-gradle.spec.ts b/lib/manager/gradle/deep/build-gradle.spec.ts
index 639a906c5c..a0db8c0003 100644
--- a/lib/manager/gradle/deep/build-gradle.spec.ts
+++ b/lib/manager/gradle/deep/build-gradle.spec.ts
@@ -560,7 +560,7 @@ describe('manager/gradle/deep/build-gradle', () => {
 
   it('should replace a external groovy variable assigned to a specific dependency', () => {
     const gradleFile =
-      'runtime (  "mysql:mysql-connector-java:${mysqlVersion}"  )'; // eslint-disable-line no-template-curly-in-string
+      'runtime (  "mysql:mysql-connector-java:${mysqlVersion}"  )';
     const mysqlDependency = {
       group: 'mysql',
       depGroup: 'mysql',
@@ -580,7 +580,7 @@ describe('manager/gradle/deep/build-gradle', () => {
 
   it('should replace a external groovy map variable assigned to a specific dependency', () => {
     const gradleFile =
-      'runtime (  "mysql:mysql-connector-java:${versions.mysqlVersion}"  )'; // eslint-disable-line no-template-curly-in-string
+      'runtime (  "mysql:mysql-connector-java:${versions.mysqlVersion}"  )';
     const mysqlDependency = {
       group: 'mysql',
       depGroup: 'mysql',
@@ -600,7 +600,7 @@ describe('manager/gradle/deep/build-gradle', () => {
 
   it('should replace a external groovy map nested variable assigned to a specific dependency', () => {
     const gradleFile =
-      'runtime (  "mysql:mysql-connector-java:${versions.nested.mysqlVersion}"  )'; // eslint-disable-line no-template-curly-in-string
+      'runtime (  "mysql:mysql-connector-java:${versions.nested.mysqlVersion}"  )';
     const mysqlDependency = {
       group: 'mysql',
       depGroup: 'mysql',
@@ -623,7 +623,7 @@ describe('manager/gradle/deep/build-gradle', () => {
 
   it('should replace a external property variable assigned to a specific dependency', () => {
     const gradleFile =
-      'runtime (  "mysql:mysql-connector-java:${mysqlVersion}"  )'; // eslint-disable-line no-template-curly-in-string
+      'runtime (  "mysql:mysql-connector-java:${mysqlVersion}"  )';
     const mysqlDependency = {
       group: 'mysql',
       depGroup: 'mysql',
@@ -643,7 +643,7 @@ describe('manager/gradle/deep/build-gradle', () => {
 
   it('should replace a external property variable assigned to a specific dependency parenthesis syntax', () => {
     const gradleFile =
-      "implementation platform(group: 'mysql', name: 'mysql-connector-java', version: mysqlVersion)"; // eslint-disable-line no-template-curly-in-string
+      "implementation platform(group: 'mysql', name: 'mysql-connector-java', version: mysqlVersion)";
     const mysqlDependency = {
       group: 'mysql',
       depGroup: 'mysql',
diff --git a/lib/manager/gradle/deep/build-gradle.ts b/lib/manager/gradle/deep/build-gradle.ts
index ef68ad46b1..5f27d4271d 100644
--- a/lib/manager/gradle/deep/build-gradle.ts
+++ b/lib/manager/gradle/deep/build-gradle.ts
@@ -157,7 +157,6 @@ function dependencyStringVariableExpressionFormatMatch(
 ): RegExp {
   return regEx(
     `\\s*dependency\\s+['"]${dependency.group}:${dependency.name}:` +
-      // eslint-disable-next-line no-template-curly-in-string
       '${([^}]*)}' +
       `['"](?:\\s|;|})`
   );
diff --git a/lib/manager/gradle/shallow/parser.spec.ts b/lib/manager/gradle/shallow/parser.spec.ts
index 4c962d4600..dbeaefb3e2 100644
--- a/lib/manager/gradle/shallow/parser.spec.ts
+++ b/lib/manager/gradle/shallow/parser.spec.ts
@@ -48,7 +48,6 @@ describe('manager/gradle/shallow/parser', () => {
     expect(deps).toBeEmpty();
 
     ({ deps } = parseGradle(
-      // eslint-disable-next-line no-template-curly-in-string
       ['versions.foobar = "1.2.3"', '"foo:bar:${versions.foobar}"'].join('\n')
     ));
     expect(deps).toMatchObject([
diff --git a/lib/manager/gradle/shallow/tokenizer.spec.ts b/lib/manager/gradle/shallow/tokenizer.spec.ts
index 98af7fcb29..7e4d6bac87 100644
--- a/lib/manager/gradle/shallow/tokenizer.spec.ts
+++ b/lib/manager/gradle/shallow/tokenizer.spec.ts
@@ -112,19 +112,19 @@ describe('manager/gradle/shallow/tokenizer', () => {
         TokenType.Chars,
         TokenType.DoubleQuotedFinish,
       ],
-      // eslint-disable-next-line no-template-curly-in-string
+
       '"${x}"': [
         TokenType.DoubleQuotedStart,
         TokenType.Variable,
         TokenType.DoubleQuotedFinish,
       ],
-      // eslint-disable-next-line no-template-curly-in-string
+
       '"${foo}"': [
         TokenType.DoubleQuotedStart,
         TokenType.Variable,
         TokenType.DoubleQuotedFinish,
       ],
-      // eslint-disable-next-line no-template-curly-in-string
+
       '"${x()}"': [
         TokenType.DoubleQuotedStart,
         TokenType.IgnoredInterpolationStart,
@@ -132,7 +132,7 @@ describe('manager/gradle/shallow/tokenizer', () => {
         TokenType.RightBrace,
         TokenType.DoubleQuotedFinish,
       ],
-      // eslint-disable-next-line no-template-curly-in-string
+
       '"${x{}}"': [
         TokenType.DoubleQuotedStart,
         TokenType.IgnoredInterpolationStart,
@@ -162,7 +162,7 @@ describe('manager/gradle/shallow/tokenizer', () => {
           children: [{ type: TokenType.Variable }],
         },
       ],
-      // eslint-disable-next-line no-template-curly-in-string
+
       '" foo ${ bar } baz "': [
         {
           type: TokenType.StringInterpolation,
@@ -173,7 +173,7 @@ describe('manager/gradle/shallow/tokenizer', () => {
           ],
         },
       ],
-      // eslint-disable-next-line no-template-curly-in-string
+
       '"${ x + y }"': [{ type: TokenType.StringInterpolation, isValid: false }],
     };
     for (const [str, result] of Object.entries(samples)) {
diff --git a/lib/manager/helmfile/extract.ts b/lib/manager/helmfile/extract.ts
index 39544b7456..c071b9d2e8 100644
--- a/lib/manager/helmfile/extract.ts
+++ b/lib/manager/helmfile/extract.ts
@@ -26,7 +26,7 @@ export function extractPackageFile(
   }
   for (const doc of docs) {
     if (!(doc && is.array(doc.releases))) {
-      continue; // eslint-disable-line no-continue
+      continue;
     }
 
     if (doc.repositories) {
diff --git a/lib/manager/maven/extract.spec.ts b/lib/manager/maven/extract.spec.ts
index 84961fc538..e850cd1808 100644
--- a/lib/manager/maven/extract.spec.ts
+++ b/lib/manager/maven/extract.spec.ts
@@ -1,4 +1,3 @@
-/* eslint-disable no-template-curly-in-string */
 import { loadFixture } from '../../../test/util';
 import { extractPackage } from './extract';
 
diff --git a/lib/manager/maven/extract.ts b/lib/manager/maven/extract.ts
index 28e72a8054..82642719a3 100644
--- a/lib/manager/maven/extract.ts
+++ b/lib/manager/maven/extract.ts
@@ -273,7 +273,7 @@ export function resolveParents(packages: PackageFile[]): PackageFile[] {
     const pkg = extractedPackages[name];
     pkg.deps.forEach((rawDep) => {
       const urlsSet = new Set([...rawDep.registryUrls, ...registryUrls[name]]);
-      rawDep.registryUrls = [...urlsSet]; // eslint-disable-line no-param-reassign
+      rawDep.registryUrls = [...urlsSet];
     });
   });
 
@@ -297,9 +297,9 @@ function cleanResult(
   packageFiles: PackageFile<Record<string, any>>[]
 ): PackageFile<Record<string, any>>[] {
   packageFiles.forEach((packageFile) => {
-    delete packageFile.mavenProps; // eslint-disable-line no-param-reassign
+    delete packageFile.mavenProps;
     packageFile.deps.forEach((dep) => {
-      delete dep.propSource; // eslint-disable-line no-param-reassign
+      delete dep.propSource;
     });
   });
   return packageFiles;
diff --git a/lib/manager/maven/index.spec.ts b/lib/manager/maven/index.spec.ts
index fffedd425e..3202922bac 100644
--- a/lib/manager/maven/index.spec.ts
+++ b/lib/manager/maven/index.spec.ts
@@ -1,4 +1,3 @@
-/* eslint-disable no-template-curly-in-string */
 import { fs, loadFixture } from '../../../test/util';
 import type { PackageDependency, PackageFile } from '../types';
 import { extractPackage, resolveParents } from './extract';
diff --git a/lib/manager/npm/extract/index.spec.ts b/lib/manager/npm/extract/index.spec.ts
index 7226b7cc76..c9c74ae51d 100644
--- a/lib/manager/npm/extract/index.spec.ts
+++ b/lib/manager/npm/extract/index.spec.ts
@@ -153,7 +153,6 @@ describe('manager/npm/extract/index', () => {
     it('finds and filters .npmrc with variables', async () => {
       fs.readLocalFile = jest.fn((fileName) => {
         if (fileName === '.npmrc') {
-          // eslint-disable-next-line
           return 'registry=https://registry.npmjs.org\n//registry.npmjs.org/:_authToken=${NPM_AUTH_TOKEN}\n';
         }
         return null;
diff --git a/lib/manager/npm/extract/index.ts b/lib/manager/npm/extract/index.ts
index 1702c419c7..6ec6352b38 100644
--- a/lib/manager/npm/extract/index.ts
+++ b/lib/manager/npm/extract/index.ts
@@ -49,7 +49,7 @@ export async function extractPackageFile(
     logger.debug({ fileName }, 'Invalid JSON');
     return null;
   }
-  // eslint-disable-next-line no-underscore-dangle
+
   if (packageJson._id && packageJson._args && packageJson._from) {
     logger.debug('Ignoring vendorised package.json');
     return null;
diff --git a/lib/manager/npm/extract/monorepo.ts b/lib/manager/npm/extract/monorepo.ts
index f8128902e7..a33a21f8bb 100644
--- a/lib/manager/npm/extract/monorepo.ts
+++ b/lib/manager/npm/extract/monorepo.ts
@@ -42,7 +42,7 @@ export async function detectMonorepos(
       if (!updateInternalDeps) {
         p.deps?.forEach((dep) => {
           if (internalPackageNames.includes(dep.depName)) {
-            dep.skipReason = SkipReason.InternalPackage; // eslint-disable-line no-param-reassign
+            dep.skipReason = SkipReason.InternalPackage;
           }
         });
       }
@@ -61,7 +61,7 @@ export async function detectMonorepos(
         if (!updateInternalDeps) {
           subPackage.deps?.forEach((dep) => {
             if (internalPackageNames.includes(dep.depName)) {
-              dep.skipReason = SkipReason.InternalPackage; // eslint-disable-line no-param-reassign
+              dep.skipReason = SkipReason.InternalPackage;
             }
           });
         }
diff --git a/lib/manager/npm/extract/pnpm.ts b/lib/manager/npm/extract/pnpm.ts
index a394c6aafe..64475e6eba 100644
--- a/lib/manager/npm/extract/pnpm.ts
+++ b/lib/manager/npm/extract/pnpm.ts
@@ -85,13 +85,13 @@ export async function detectPnpmWorkspaces(
         { packageFile, pnpmShrinkwrap },
         'Found an existing pnpm shrinkwrap file; skipping pnpm monorepo check.'
       );
-      continue; // eslint-disable-line no-continue
+      continue;
     }
 
     // search for corresponding pnpm workspace
     const pnpmWorkspace = await findPnpmWorkspace(packageFile);
     if (pnpmWorkspace === null) {
-      continue; // eslint-disable-line no-continue
+      continue;
     }
     const { workspaceYamlPath, lockFilePath } = pnpmWorkspace;
 
diff --git a/lib/manager/npm/post-update/index.ts b/lib/manager/npm/post-update/index.ts
index 636ca8b5cb..4a82752089 100644
--- a/lib/manager/npm/post-update/index.ts
+++ b/lib/manager/npm/post-update/index.ts
@@ -64,7 +64,7 @@ export function determineLockFileDirs(
         npmLockDirs.push(upgrade.npmLock);
         pnpmShrinkwrapDirs.push(upgrade.pnpmShrinkwrap);
       }
-      continue; // eslint-disable-line no-continue
+      continue;
     }
     if (upgrade.isLockfileUpdate) {
       yarnLockDirs.push(upgrade.yarnLock);
@@ -244,10 +244,10 @@ export async function writeUpdatedPackageFiles(
         upath.join(localDir, packageFile.name),
         packageFile.contents
       );
-      continue; // eslint-disable-line
+      continue;
     }
     if (!packageFile.name.endsWith('package.json')) {
-      continue; // eslint-disable-line
+      continue;
     }
     logger.debug(`Writing ${String(packageFile.name)}`);
     const massagedFile = JSON.parse(packageFile.contents.toString());
diff --git a/lib/manager/npm/update/dependency/index.ts b/lib/manager/npm/update/dependency/index.ts
index 67d2a211ae..838e461105 100644
--- a/lib/manager/npm/update/dependency/index.ts
+++ b/lib/manager/npm/update/dependency/index.ts
@@ -14,10 +14,8 @@ function replaceAsString(
 ): string | null {
   // Update the file = this is what we want
   if (depType === 'packageManager') {
-    // eslint-disable-next-line no-param-reassign
     parsedContents[depType] = newValue;
   } else {
-    // eslint-disable-next-line no-param-reassign
     parsedContents[depType][depName] = newValue;
   }
   // Look for the old version number
diff --git a/lib/manager/pip_requirements/extract.spec.ts b/lib/manager/pip_requirements/extract.spec.ts
index 8f28c14fcb..551aec84e3 100644
--- a/lib/manager/pip_requirements/extract.spec.ts
+++ b/lib/manager/pip_requirements/extract.spec.ts
@@ -115,10 +115,10 @@ describe('manager/pip_requirements/extract', () => {
       expect(res.registryUrls).toEqual([
         'https://pypi.org/pypi/',
         'http://$PIP_TEST_TOKEN:example.com/private-pypi/',
-        // eslint-disable-next-line no-template-curly-in-string
+
         'http://${PIP_TEST_TOKEN}:example.com/private-pypi/',
         'http://$PIP_TEST_TOKEN:example.com/private-pypi/',
-        // eslint-disable-next-line no-template-curly-in-string
+
         'http://${PIP_TEST_TOKEN}:example.com/private-pypi/',
       ]);
     });
diff --git a/lib/manager/swift/extract.ts b/lib/manager/swift/extract.ts
index cff2eceb9c..14476c5f55 100644
--- a/lib/manager/swift/extract.ts
+++ b/lib/manager/swift/extract.ts
@@ -166,7 +166,7 @@ export function extractPackageFile(
 
   while (match) {
     const { idx, len, label, substr } = match;
-    // eslint-disable-next-line default-case
+
     switch (state) {
       case null:
         if (deps.length) {
diff --git a/lib/manager/terraform/extract.ts b/lib/manager/terraform/extract.ts
index cdca8db112..3034ab8958 100644
--- a/lib/manager/terraform/extract.ts
+++ b/lib/manager/terraform/extract.ts
@@ -145,7 +145,7 @@ export async function extractPackageFile(
       /* istanbul ignore next */
       default:
     }
-    // eslint-disable-next-line no-param-reassign
+
     delete dep.managerData;
   });
   if (deps.some((dep) => dep.skipReason !== 'local')) {
diff --git a/lib/manager/terraform/modules.ts b/lib/manager/terraform/modules.ts
index ae24e68fda..c734b38122 100644
--- a/lib/manager/terraform/modules.ts
+++ b/lib/manager/terraform/modules.ts
@@ -24,7 +24,6 @@ export function extractTerraformModule(
 ): ExtractionResult {
   const result = extractTerraformProvider(startingLine, lines, moduleName);
   result.dependencies.forEach((dep) => {
-    // eslint-disable-next-line no-param-reassign
     dep.managerData.terraformDependencyType = TerraformDependencyTypes.module;
   });
   return result;
@@ -33,7 +32,7 @@ export function extractTerraformModule(
 export function analyseTerraformModule(dep: PackageDependency): void {
   const githubRefMatch = githubRefMatchRegex.exec(dep.managerData.source);
   const gitTagsRefMatch = gitTagsRefMatchRegex.exec(dep.managerData.source);
-  /* eslint-disable no-param-reassign */
+
   if (githubRefMatch) {
     dep.lookupName = githubRefMatch.groups.project.replace(regEx(/\.git$/), '');
     dep.depType = 'module';
diff --git a/lib/manager/terraform/providers.ts b/lib/manager/terraform/providers.ts
index b0d0a37b7d..42bdd84236 100644
--- a/lib/manager/terraform/providers.ts
+++ b/lib/manager/terraform/providers.ts
@@ -75,7 +75,6 @@ export function analyzeTerraformProvider(
   dep: PackageDependency,
   locks: ProviderLock[]
 ): void {
-  /* eslint-disable no-param-reassign */
   dep.depType = 'provider';
   dep.depName = dep.managerData.moduleName;
   dep.datasource = TerraformProviderDatasource.id;
diff --git a/lib/manager/terraform/required-providers.ts b/lib/manager/terraform/required-providers.ts
index 6ac73de512..555d2650e9 100644
--- a/lib/manager/terraform/required-providers.ts
+++ b/lib/manager/terraform/required-providers.ts
@@ -20,7 +20,6 @@ function extractBlock(
     line = lines[lineNumber];
     const kvMatch = keyValueExtractionRegex.exec(line);
     if (kvMatch) {
-      /* eslint-disable no-param-reassign */
       switch (kvMatch.groups.key) {
         case 'source':
           dep.managerData.source = kvMatch.groups.value;
@@ -78,7 +77,6 @@ export function analyzeTerraformRequiredProvider(
   dep: PackageDependency,
   locks: ProviderLock[]
 ): void {
-  /* eslint-disable no-param-reassign */
   analyzeTerraformProvider(dep, locks);
   dep.depType = `required_provider`;
   /* eslint-enable no-param-reassign */
diff --git a/lib/manager/terraform/required-version.ts b/lib/manager/terraform/required-version.ts
index dc16f52211..23d3bc88f4 100644
--- a/lib/manager/terraform/required-version.ts
+++ b/lib/manager/terraform/required-version.ts
@@ -45,7 +45,6 @@ export function extractTerraformRequiredVersion(
 }
 
 export function analyseTerraformVersion(dep: PackageDependency): void {
-  /* eslint-disable no-param-reassign */
   dep.depType = 'required_version';
   dep.datasource = datasourceGithubTags.id;
   dep.depName = 'hashicorp/terraform';
diff --git a/lib/manager/terraform/resources.ts b/lib/manager/terraform/resources.ts
index 075a1b63b3..396fb4459d 100644
--- a/lib/manager/terraform/resources.ts
+++ b/lib/manager/terraform/resources.ts
@@ -65,8 +65,6 @@ export function extractTerraformResource(
 export function analyseTerraformResource(
   dep: PackageDependency<ResourceManagerData>
 ): void {
-  /* eslint-disable no-param-reassign */
-
   switch (dep.managerData.resourceType) {
     case TerraformResourceTypes.docker_container:
       if (dep.managerData.image) {
diff --git a/lib/manager/terraform/util.ts b/lib/manager/terraform/util.ts
index 9793c547c1..e804c5d7cb 100644
--- a/lib/manager/terraform/util.ts
+++ b/lib/manager/terraform/util.ts
@@ -50,7 +50,6 @@ export function checkIfStringIsPath(path: string): boolean {
 }
 
 export function massageProviderLookupName(dep: PackageDependency): void {
-  /* eslint-disable no-param-reassign */
   if (!dep.lookupName) {
     dep.lookupName = dep.depName;
   }
diff --git a/lib/manager/terragrunt/extract.ts b/lib/manager/terragrunt/extract.ts
index 978359b6a8..aefc114068 100644
--- a/lib/manager/terragrunt/extract.ts
+++ b/lib/manager/terragrunt/extract.ts
@@ -61,7 +61,7 @@ export function extractPackageFile(content: string): PackageFile | null {
       /* istanbul ignore next */
       default:
     }
-    // eslint-disable-next-line no-param-reassign
+
     delete dep.managerData;
   });
   return { deps };
diff --git a/lib/manager/terragrunt/modules.ts b/lib/manager/terragrunt/modules.ts
index f10ba1486e..3657acdb7a 100644
--- a/lib/manager/terragrunt/modules.ts
+++ b/lib/manager/terragrunt/modules.ts
@@ -24,7 +24,6 @@ export function extractTerragruntModule(
   const moduleName = 'terragrunt';
   const result = extractTerragruntProvider(startingLine, lines, moduleName);
   result.dependencies.forEach((dep) => {
-    // eslint-disable-next-line no-param-reassign
     dep.managerData.terragruntDependencyType =
       TerragruntDependencyTypes.terragrunt;
   });
@@ -34,7 +33,7 @@ export function extractTerragruntModule(
 export function analyseTerragruntModule(dep: PackageDependency): void {
   const githubRefMatch = githubRefMatchRegex.exec(dep.managerData.source);
   const gitTagsRefMatch = gitTagsRefMatchRegex.exec(dep.managerData.source);
-  /* eslint-disable no-param-reassign */
+
   if (githubRefMatch) {
     dep.depType = 'github';
     dep.lookupName = githubRefMatch.groups.project.replace(regEx(/\.git$/), '');
diff --git a/lib/platform/azure/azure-helper.spec.ts b/lib/platform/azure/azure-helper.spec.ts
index 1476ccfa8f..18d3d23e23 100644
--- a/lib/platform/azure/azure-helper.spec.ts
+++ b/lib/platform/azure/azure-helper.spec.ts
@@ -78,8 +78,7 @@ describe('platform/azure/azure-helper', () => {
       let eventCount = 0;
       const mockEventStream = new Readable({
         objectMode: true,
-        /* eslint-disable func-names */
-        /* eslint-disable object-shorthand */
+
         read: function () {
           if (eventCount < 1) {
             eventCount += 1;
@@ -108,8 +107,7 @@ describe('platform/azure/azure-helper', () => {
       let eventCount = 0;
       const mockEventStream = new Readable({
         objectMode: true,
-        /* eslint-disable func-names */
-        /* eslint-disable object-shorthand */
+
         read: function () {
           if (eventCount < 1) {
             eventCount += 1;
@@ -138,8 +136,7 @@ describe('platform/azure/azure-helper', () => {
       let eventCount = 0;
       const mockEventStream = new Readable({
         objectMode: true,
-        /* eslint-disable func-names */
-        /* eslint-disable object-shorthand */
+
         read: function () {
           if (eventCount < 1) {
             eventCount += 1;
diff --git a/lib/platform/azure/index.spec.ts b/lib/platform/azure/index.spec.ts
index a2a2cf2f42..7dedd447a1 100644
--- a/lib/platform/azure/index.spec.ts
+++ b/lib/platform/azure/index.spec.ts
@@ -47,7 +47,7 @@ describe('platform/azure/index', () => {
   });
 
   // do we need the args?
-  // eslint-disable-next-line @typescript-eslint/no-unused-vars
+
   function getRepos(_token: string, _endpoint: string) {
     azureApi.gitApi.mockImplementationOnce(
       () =>
diff --git a/lib/platform/azure/index.ts b/lib/platform/azure/index.ts
index 079286f474..83124b4be0 100644
--- a/lib/platform/azure/index.ts
+++ b/lib/platform/azure/index.ts
@@ -719,7 +719,6 @@ async function getUserIds(users: string[]): Promise<User[]> {
   const members = await Promise.all(
     teams.map(
       async (t) =>
-        /* eslint-disable no-return-await,@typescript-eslint/return-await */
         await azureApiCore.getTeamMembersWithExtendedProperties(
           repo.project.id,
           t.id
diff --git a/lib/platform/azure/util.ts b/lib/platform/azure/util.ts
index 20820ccdd9..7f0c2498e9 100644
--- a/lib/platform/azure/util.ts
+++ b/lib/platform/azure/util.ts
@@ -123,7 +123,7 @@ export async function streamToString(
   stream: NodeJS.ReadableStream
 ): Promise<string> {
   const chunks: Uint8Array[] = [];
-  /* eslint-disable promise/avoid-new */
+
   const p = await new Promise<string>((resolve, reject) => {
     stream.on('data', (chunk) => chunks.push(Buffer.from(chunk)));
     stream.on('end', () => resolve(Buffer.concat(chunks).toString('utf8')));
diff --git a/lib/platform/bitbucket/index.ts b/lib/platform/bitbucket/index.ts
index f203d77e29..992b5a0530 100644
--- a/lib/platform/bitbucket/index.ts
+++ b/lib/platform/bitbucket/index.ts
@@ -582,7 +582,6 @@ export async function ensureIssueClosing(title: string): Promise<void> {
   }
 }
 
-// eslint-disable-next-line @typescript-eslint/no-unused-vars
 export function addAssignees(
   _prNr: number,
   _assignees: string[]
diff --git a/lib/platform/index.ts b/lib/platform/index.ts
index 8b6a7241dc..8764d76ae3 100644
--- a/lib/platform/index.ts
+++ b/lib/platform/index.ts
@@ -13,7 +13,6 @@ export * from './types';
 export const getPlatformList = (): string[] => Array.from(platforms.keys());
 export const getPlatforms = (): Map<string, Platform> => platforms;
 
-// eslint-disable-next-line @typescript-eslint/naming-convention
 let _platform: Platform;
 
 const handler: ProxyHandler<Platform> = {
diff --git a/lib/util/exec/index.spec.ts b/lib/util/exec/index.spec.ts
index 6480b8b54c..86a61a213a 100644
--- a/lib/util/exec/index.spec.ts
+++ b/lib/util/exec/index.spec.ts
@@ -1,4 +1,3 @@
-/* eslint-disable @typescript-eslint/naming-convention */
 import {
   ExecOptions as ChildProcessExecOptions,
   exec as _cpExec,
diff --git a/lib/util/http/auth.ts b/lib/util/http/auth.ts
index 59dba806f7..cd182af48d 100644
--- a/lib/util/http/auth.ts
+++ b/lib/util/http/auth.ts
@@ -86,14 +86,13 @@ export function removeAuthorization(options: NormalizedOptions): void {
     const portInUrl = options.href.split('/')[2].split(':')[1];
     // istanbul ignore next
     if (!portInUrl) {
-      // eslint-disable-next-line no-param-reassign
       delete options.port; // Redirect will instead use 80 or 443 for HTTP or HTTPS respectively
     }
 
     // registry is hosted on Amazon or Azure blob, redirect url includes
     // authentication which is not required and should be removed
-    delete options.headers.authorization; // eslint-disable-line no-param-reassign
-    delete options.username; // eslint-disable-line no-param-reassign
-    delete options.password; // eslint-disable-line no-param-reassign
+    delete options.headers.authorization;
+    delete options.username;
+    delete options.password;
   }
 }
diff --git a/lib/util/http/index.ts b/lib/util/http/index.ts
index 0dc25d94f3..6baddc7fd3 100644
--- a/lib/util/http/index.ts
+++ b/lib/util/http/index.ts
@@ -72,11 +72,11 @@ function applyDefaultHeaders(options: Options): void {
   let renovateVersion = 'unknown';
   try {
     // eslint-disable-next-line @typescript-eslint/no-var-requires
-    renovateVersion = require('../../../package.json').version; // eslint-disable-line global-require
+    renovateVersion = require('../../../package.json').version;
   } catch (err) /* istanbul ignore next */ {
     logger.debug({ err }, 'Error getting renovate version');
   }
-  // eslint-disable-next-line no-param-reassign
+
   options.headers = {
     ...options.headers,
     'user-agent':
@@ -295,7 +295,6 @@ export class Http<GetOptions = HttpOptions, PostOptions = HttpPostOptions> {
 
     // istanbul ignore else: needs test
     if (options?.baseUrl) {
-      // eslint-disable-next-line no-param-reassign
       url = resolveBaseUrl(options.baseUrl, url);
     }
 
diff --git a/lib/util/index.ts b/lib/util/index.ts
index 0d7c8fbf0f..4dd875664b 100644
--- a/lib/util/index.ts
+++ b/lib/util/index.ts
@@ -3,7 +3,7 @@ export function sampleSize(array: string[], n: number): string[] {
   if (!length || n < 1) {
     return [];
   }
-  // eslint-disable-next-line no-param-reassign
+
   n = n > length ? length : n;
   let index = 0;
   const lastIndex = length - 1;
diff --git a/lib/util/regex.spec.ts b/lib/util/regex.spec.ts
index b0dad6a8b3..49951096c3 100644
--- a/lib/util/regex.spec.ts
+++ b/lib/util/regex.spec.ts
@@ -1,4 +1,3 @@
-// eslint-disable-next-line import/no-extraneous-dependencies
 import RE2 from 're2';
 import { CONFIG_VALIDATION } from '../constants/error-messages';
 import { regEx } from './regex';
diff --git a/lib/util/regex.ts b/lib/util/regex.ts
index 19b203ea51..ac956bf18c 100644
--- a/lib/util/regex.ts
+++ b/lib/util/regex.ts
@@ -1,6 +1,6 @@
 import is from '@sindresorhus/is';
 import { CONFIG_VALIDATION } from '../constants/error-messages';
-// eslint-disable-next-line import/no-cycle
+
 import { logger } from '../logger';
 
 let RegEx: RegExpConstructor;
diff --git a/lib/versioning/index.spec.ts b/lib/versioning/index.spec.ts
index 87f63c9526..da1137ccac 100644
--- a/lib/versioning/index.spec.ts
+++ b/lib/versioning/index.spec.ts
@@ -20,7 +20,6 @@ describe('versioning/index', () => {
       module: VersioningApi | VersioningApiConstructor,
       name: string
     ): boolean {
-      // eslint-disable-next-line new-cap
       const mod = isVersioningApiConstructor(module) ? new module() : module;
 
       // TODO: test required api (#9715)
@@ -81,7 +80,6 @@ describe('versioning/index', () => {
             props.push(prop);
           }
         });
-        // eslint-disable-next-line no-cond-assign
       } while ((o = Object.getPrototypeOf(o)));
 
       return props;
@@ -112,12 +110,10 @@ describe('versioning/index', () => {
 
     it('dummy', () => {
       class DummyScheme extends GenericVersioningApi {
-        // eslint-disable-next-line class-methods-use-this
         protected override _compare(_version: string, _other: string): number {
           throw new Error('Method not implemented.');
         }
 
-        // eslint-disable-next-line class-methods-use-this
         protected _parse(_version: string): GenericVersion {
           throw new Error('Method not implemented.');
         }
diff --git a/lib/versioning/index.ts b/lib/versioning/index.ts
index a192f83538..0bdc0e7d6c 100644
--- a/lib/versioning/index.ts
+++ b/lib/versioning/index.ts
@@ -35,7 +35,6 @@ export function get(versioning: string): VersioningApi {
     return versionings.get('semver') as VersioningApi;
   }
   if (isVersioningApiConstructor(theVersioning)) {
-    // eslint-disable-next-line new-cap
     return new theVersioning(versioningConfig);
   }
   return theVersioning;
diff --git a/lib/versioning/loose/generic.ts b/lib/versioning/loose/generic.ts
index 55646f2b70..609adec8c1 100644
--- a/lib/versioning/loose/generic.ts
+++ b/lib/versioning/loose/generic.ts
@@ -175,7 +175,7 @@ export abstract class GenericVersioningApi<
   /*
    * virtual
    */
-  // eslint-disable-next-line class-methods-use-this
+
   protected _compareOther(_left: T, _right: T): number {
     return 0;
   }
@@ -235,7 +235,6 @@ export abstract class GenericVersioningApi<
     return versions.find((v) => this.equals(v, range)) || null;
   }
 
-  // eslint-disable-next-line class-methods-use-this
   getNewValue(newValueConfig: NewValueConfig): string {
     const { newVersion } = newValueConfig || {};
     return newVersion;
diff --git a/lib/versioning/loose/utils.spec.ts b/lib/versioning/loose/utils.spec.ts
index 0a2e2652ab..4b503762d0 100644
--- a/lib/versioning/loose/utils.spec.ts
+++ b/lib/versioning/loose/utils.spec.ts
@@ -23,7 +23,6 @@ describe('versioning/loose/utils', () => {
           props.push(prop);
         }
       });
-      // eslint-disable-next-line no-cond-assign
     } while ((o = Object.getPrototypeOf(o)));
 
     return props;
@@ -31,12 +30,10 @@ describe('versioning/loose/utils', () => {
 
   describe('GenericVersioningApi', () => {
     class DummyScheme extends GenericVersioningApi {
-      // eslint-disable-next-line class-methods-use-this
       protected override _compare(_version: string, _other: string): number {
         return _version ? _version.localeCompare(_other) : 0;
       }
 
-      // eslint-disable-next-line class-methods-use-this
       protected _parse(_version: string): GenericVersion {
         return _version === 'test' ? null : { release: [1, 0, 0] };
       }
diff --git a/lib/versioning/regex/index.ts b/lib/versioning/regex/index.ts
index f597df18a8..7c3efde705 100644
--- a/lib/versioning/regex/index.ts
+++ b/lib/versioning/regex/index.ts
@@ -44,7 +44,6 @@ export class RegExpVersioningApi extends GenericVersioningApi<RegExpVersion> {
   constructor(new_config: string) {
     super();
     if (!new_config) {
-      // eslint-disable-next-line no-param-reassign
       new_config = '^(?<major>\\d+)?$';
     }
 
diff --git a/lib/workers/branch/get-updated.ts b/lib/workers/branch/get-updated.ts
index 49263f05d8..287c705488 100644
--- a/lib/workers/branch/get-updated.ts
+++ b/lib/workers/branch/get-updated.ts
@@ -120,7 +120,7 @@ export async function getUpdatedPackageFiles(
             logger.debug({ packageFile, depName }, 'Contents updated');
             updatedFileContents[packageFile] = res;
           }
-          continue; // eslint-disable-line no-continue
+          continue;
         } else if (reuseExistingBranch) {
           return getUpdatedPackageFiles({
             ...config,
diff --git a/lib/workers/branch/index.ts b/lib/workers/branch/index.ts
index 00d27a9ac4..e6fec35819 100644
--- a/lib/workers/branch/index.ts
+++ b/lib/workers/branch/index.ts
@@ -289,7 +289,7 @@ export async function processBranch(
               'Update has not passed stability days'
             );
             config.stabilityStatus = BranchStatus.yellow;
-            continue; // eslint-disable-line no-continue
+            continue;
           }
         }
         const {
@@ -316,7 +316,7 @@ export async function processBranch(
               'Update does not meet minimum confidence scores'
             );
             config.confidenceStatus = BranchStatus.yellow;
-            continue; // eslint-disable-line no-continue
+            continue;
           }
         }
       }
diff --git a/lib/workers/global/config/parse/cli.ts b/lib/workers/global/config/parse/cli.ts
index a318e99441..31a3912827 100644
--- a/lib/workers/global/config/parse/cli.ts
+++ b/lib/workers/global/config/parse/cli.ts
@@ -87,7 +87,6 @@ export function getConfig(input: string[]): AllConfig {
 
   /* istanbul ignore next */
   function helpConsole(): void {
-    /* eslint-disable no-console */
     console.log('  Examples:');
     console.log('');
     console.log('    $ renovate --token 123test singapore/lint-condo');
diff --git a/lib/workers/global/config/parse/env.ts b/lib/workers/global/config/parse/env.ts
index f7268d74cb..ca96985431 100644
--- a/lib/workers/global/config/parse/env.ts
+++ b/lib/workers/global/config/parse/env.ts
@@ -129,7 +129,7 @@ export function getConfig(inputEnv: NodeJS.ProcessEnv): AllConfig {
     'VSTS_ENDPOINT',
     'VSTS_TOKEN',
   ];
-  // eslint-disable-next-line no-param-reassign
+
   unsupportedEnv.forEach((val) => delete env[val]);
 
   return config;
diff --git a/lib/workers/global/config/parse/file.ts b/lib/workers/global/config/parse/file.ts
index 0acf7b0aae..5cab40ee0e 100644
--- a/lib/workers/global/config/parse/file.ts
+++ b/lib/workers/global/config/parse/file.ts
@@ -11,7 +11,6 @@ export function getConfig(env: NodeJS.ProcessEnv): AllConfig {
   }
   let config: AllConfig = {};
   try {
-    // eslint-disable-next-line global-require,import/no-dynamic-require
     config = require(configFile);
   } catch (err) {
     // istanbul ignore if
diff --git a/lib/workers/global/config/parse/host-rules-from-env.ts b/lib/workers/global/config/parse/host-rules-from-env.ts
index 5f6a8189f6..a25475c4b4 100644
--- a/lib/workers/global/config/parse/host-rules-from-env.ts
+++ b/lib/workers/global/config/parse/host-rules-from-env.ts
@@ -13,7 +13,7 @@ export function hostRulesFromEnv(env: NodeJS.ProcessEnv): HostRule[] {
   for (const envName of Object.keys(env).sort()) {
     if (npmEnvPrefixes.some((prefix) => envName.startsWith(prefix))) {
       logger.trace('Ignoring npm env: ' + envName);
-      continue; // eslint-disable-line no-continue
+      continue;
     }
     // Double underscore __ is used in place of hyphen -
     const splitEnv = envName.toLowerCase().replace(/__/g, '-').split('_');
@@ -28,7 +28,7 @@ export function hostRulesFromEnv(env: NodeJS.ProcessEnv): HostRule[] {
           // host-less rule
         } else if (splitEnv.length === 1) {
           logger.warn(`Cannot parse ${envName} env`);
-          continue; // eslint-disable-line no-continue
+          continue;
         } else {
           matchHost = splitEnv.join('.');
         }
diff --git a/lib/workers/pr/body/index.ts b/lib/workers/pr/body/index.ts
index 6aa5a015af..02944d193c 100644
--- a/lib/workers/pr/body/index.ts
+++ b/lib/workers/pr/body/index.ts
@@ -12,7 +12,6 @@ import { getPrUpdatesTable } from './updates-table';
 
 function massageUpdateMetadata(config: BranchConfig): void {
   config.upgrades.forEach((upgrade) => {
-    /* eslint-disable no-param-reassign */
     const {
       homepage,
       sourceUrl,
diff --git a/lib/workers/pr/index.ts b/lib/workers/pr/index.ts
index 3825a54145..d7f17709a6 100644
--- a/lib/workers/pr/index.ts
+++ b/lib/workers/pr/index.ts
@@ -262,7 +262,7 @@ export async function ensurePr(
       upgrade.manager
     }-${upgrade.currentVersion || upgrade.currentValue}-${upgrade.newVersion}`;
     if (processedUpgrades.includes(upgradeKey)) {
-      continue; // eslint-disable-line no-continue
+      continue;
     }
     processedUpgrades.push(upgradeKey);
 
diff --git a/lib/workers/repository/changelog/index.ts b/lib/workers/repository/changelog/index.ts
index b0c0697b1a..feff7e56e5 100644
--- a/lib/workers/repository/changelog/index.ts
+++ b/lib/workers/repository/changelog/index.ts
@@ -4,7 +4,7 @@ import type { BranchUpgradeConfig } from '../../types';
 
 // istanbul ignore next
 async function embedChangelog(upgrade: BranchUpgradeConfig): Promise<void> {
-  upgrade.logJSON = await getChangeLogJSON(upgrade); // eslint-disable-line
+  upgrade.logJSON = await getChangeLogJSON(upgrade);
 }
 
 // istanbul ignore next
diff --git a/lib/workers/repository/dependency-dashboard.spec.ts b/lib/workers/repository/dependency-dashboard.spec.ts
index ac1c353cbe..2b12e65184 100644
--- a/lib/workers/repository/dependency-dashboard.spec.ts
+++ b/lib/workers/repository/dependency-dashboard.spec.ts
@@ -26,7 +26,7 @@ beforeEach(() => {
 
 async function dryRun(
   branches: BranchConfig[],
-  // eslint-disable-next-line @typescript-eslint/no-shadow
+
   platform: jest.Mocked<Platform>,
   ensureIssueClosingCalls = 0,
   ensureIssueCalls = 0
diff --git a/lib/workers/repository/dependency-dashboard.ts b/lib/workers/repository/dependency-dashboard.ts
index 6dc1dded4d..b85596b78d 100644
--- a/lib/workers/repository/dependency-dashboard.ts
+++ b/lib/workers/repository/dependency-dashboard.ts
@@ -35,7 +35,6 @@ function parseDashboardIssue(issueBody: string): DependencyDashboard {
 }
 
 export async function readDashboardBody(config: RenovateConfig): Promise<void> {
-  /* eslint-disable no-param-reassign */
   config.dependencyDashboardChecks = {};
   const stringifiedConfig = JSON.stringify(config);
   if (
diff --git a/lib/workers/repository/error.ts b/lib/workers/repository/error.ts
index 65aa292b75..381cb6ed10 100644
--- a/lib/workers/repository/error.ts
+++ b/lib/workers/repository/error.ts
@@ -41,12 +41,12 @@ export default async function handleError(
 ): Promise<string> {
   if (err.message === REPOSITORY_UNINITIATED) {
     logger.info('Repository is uninitiated - skipping');
-    delete config.branchList; // eslint-disable-line no-param-reassign
+    delete config.branchList;
     return err.message;
   }
   if (err.message === REPOSITORY_EMPTY) {
     logger.info('Repository is empty - skipping');
-    delete config.branchList; // eslint-disable-line no-param-reassign
+    delete config.branchList;
     return err.message;
   }
   const disabledMessages = [
@@ -61,31 +61,31 @@ export default async function handleError(
   }
   if (err.message === REPOSITORY_ARCHIVED) {
     logger.info('Repository is archived - skipping');
-    delete config.branchList; // eslint-disable-line no-param-reassign
+    delete config.branchList;
     return err.message;
   }
   if (err.message === REPOSITORY_MIRRORED) {
     logger.info('Repository is a mirror - skipping');
-    delete config.branchList; // eslint-disable-line no-param-reassign
+    delete config.branchList;
     return err.message;
   }
   if (err.message === REPOSITORY_RENAMED) {
     logger.info('Repository has been renamed - skipping');
-    delete config.branchList; // eslint-disable-line no-param-reassign
+    delete config.branchList;
     return err.message;
   }
   if (err.message === REPOSITORY_BLOCKED) {
-    delete config.branchList; // eslint-disable-line no-param-reassign
+    delete config.branchList;
     logger.info('Repository is blocked - skipping');
     return err.message;
   }
   if (err.message === REPOSITORY_ACCESS_FORBIDDEN) {
-    delete config.branchList; // eslint-disable-line no-param-reassign
+    delete config.branchList;
     logger.info('Repository is forbidden');
     return err.message;
   }
   if (err.message === REPOSITORY_NOT_FOUND) {
-    delete config.branchList; // eslint-disable-line no-param-reassign
+    delete config.branchList;
     logger.error('Repository is not found');
     return err.message;
   }
@@ -107,17 +107,17 @@ export default async function handleError(
   }
   if (err.message === REPOSITORY_CHANGED) {
     logger.info('Repository has changed during renovation - aborting');
-    delete config.branchList; // eslint-disable-line no-param-reassign
+    delete config.branchList;
     return err.message;
   }
   if (err.message === CONFIG_VALIDATION) {
-    delete config.branchList; // eslint-disable-line no-param-reassign
+    delete config.branchList;
     logger.info({ error: err }, 'Repository has invalid config');
     await raiseConfigWarningIssue(config, err);
     return err.message;
   }
   if (err.message === CONFIG_SECRETS_EXPOSED) {
-    delete config.branchList; // eslint-disable-line no-param-reassign
+    delete config.branchList;
     logger.warn(
       { error: err },
       'Repository aborted due to potential secrets exposure'
@@ -130,7 +130,7 @@ export default async function handleError(
       'Host error'
     );
     logger.info('External host error causing abort - skipping');
-    delete config.branchList; // eslint-disable-line no-param-reassign
+    delete config.branchList;
     return err.message;
   }
   if (
@@ -138,48 +138,48 @@ export default async function handleError(
     err.message === SYSTEM_INSUFFICIENT_DISK_SPACE
   ) {
     logger.error('Disk space error - skipping');
-    delete config.branchList; // eslint-disable-line no-param-reassign
+    delete config.branchList;
     return err.message;
   }
   if (err.message === PLATFORM_RATE_LIMIT_EXCEEDED) {
     logger.warn('Rate limit exceeded - aborting');
-    delete config.branchList; // eslint-disable-line no-param-reassign
+    delete config.branchList;
     return err.message;
   }
   if (err.message === SYSTEM_INSUFFICIENT_MEMORY) {
     logger.warn('Insufficient memory - aborting');
-    delete config.branchList; // eslint-disable-line no-param-reassign
+    delete config.branchList;
     return err.message;
   }
   if (err.message === PLATFORM_BAD_CREDENTIALS) {
     logger.warn('Bad credentials - aborting');
-    delete config.branchList; // eslint-disable-line no-param-reassign
+    delete config.branchList;
     return err.message;
   }
   if (err.message === PLATFORM_INTEGRATION_UNAUTHORIZED) {
     logger.warn('Integration unauthorized - aborting');
-    delete config.branchList; // eslint-disable-line no-param-reassign
+    delete config.branchList;
     return err.message;
   }
   if (err.message === PLATFORM_AUTHENTICATION_ERROR) {
     logger.warn('Authentication error - aborting');
-    delete config.branchList; // eslint-disable-line no-param-reassign
+    delete config.branchList;
     return err.message;
   }
   if (err.message === TEMPORARY_ERROR) {
     logger.info('Temporary error - aborting');
-    delete config.branchList; // eslint-disable-line no-param-reassign
+    delete config.branchList;
     return err.message;
   }
   if (err.message === MANAGER_LOCKFILE_ERROR) {
-    delete config.branchList; // eslint-disable-line no-param-reassign
+    delete config.branchList;
     logger.info('Lock file error - aborting');
-    delete config.branchList; // eslint-disable-line no-param-reassign
+    delete config.branchList;
     return err.message;
   }
   if (err.message.includes('The requested URL returned error: 5')) {
     logger.warn({ err }, 'Git error - aborting');
-    delete config.branchList; // eslint-disable-line no-param-reassign
+    delete config.branchList;
     // rewrite this error
     return EXTERNAL_HOST_ERROR;
   }
@@ -188,18 +188,18 @@ export default async function handleError(
     err.message.includes('access denied or repository not exported')
   ) {
     logger.warn({ err }, 'Git error - aborting');
-    delete config.branchList; // eslint-disable-line no-param-reassign
+    delete config.branchList;
     // rewrite this error
     return EXTERNAL_HOST_ERROR;
   }
   if (err.message.includes('fatal: not a git repository')) {
-    delete config.branchList; // eslint-disable-line no-param-reassign
+    delete config.branchList;
     return TEMPORARY_ERROR;
   }
   // Swallow this error so that other repositories can be processed
   logger.error({ err }, `Repository has unknown error`);
   // delete branchList to avoid cleaning up branches
-  delete config.branchList; // eslint-disable-line no-param-reassign
-  // eslint-disable-next-line no-undef
+  delete config.branchList;
+
   return UNKNOWN_ERROR;
 }
diff --git a/lib/workers/repository/index.ts b/lib/workers/repository/index.ts
index 5005a9ee5e..c658082f0f 100644
--- a/lib/workers/repository/index.ts
+++ b/lib/workers/repository/index.ts
@@ -19,7 +19,7 @@ import { printRequestStats } from './stats';
 let renovateVersion = 'unknown';
 try {
   // eslint-disable-next-line @typescript-eslint/no-var-requires
-  renovateVersion = require('../../../package.json').version; // eslint-disable-line global-require
+  renovateVersion = require('../../../package.json').version;
 } catch (err) /* istanbul ignore next */ {
   logger.debug({ err }, 'Error getting renovate version');
 }
diff --git a/lib/workers/repository/init/vulnerability.ts b/lib/workers/repository/init/vulnerability.ts
index 85cbb3744d..5503daaeea 100644
--- a/lib/workers/repository/init/vulnerability.ts
+++ b/lib/workers/repository/init/vulnerability.ts
@@ -73,18 +73,18 @@ export async function detectVulnerabilityAlerts(
       (alert.vulnerableRequirements === '= 5.0.0-security.0' ||
         alert.vulnerableRequirements === '= 5.0.1')
     ) {
-      continue; // eslint-disable-line no-continue
+      continue;
     }
     try {
       if (alert.dismissReason) {
-        continue; // eslint-disable-line no-continue
+        continue;
       }
       if (!alert.securityVulnerability.firstPatchedVersion) {
         logger.debug(
           { alert },
           'Vulnerability alert has no firstPatchedVersion - skipping'
         );
-        continue; // eslint-disable-line no-continue
+        continue;
       }
       const datasourceMapping: Record<string, string> = {
         MAVEN: datasourceMaven.id,
@@ -174,7 +174,7 @@ export async function detectVulnerabilityAlerts(
                 }
                 content += heading;
                 content += '\n\n';
-                // eslint-disable-next-line no-loop-func
+
                 content += sanitizeMarkdown(advisory.description);
                 return content;
               })
diff --git a/lib/workers/repository/process/fetch.ts b/lib/workers/repository/process/fetch.ts
index e4d85cb67c..6cd7cd9094 100644
--- a/lib/workers/repository/process/fetch.ts
+++ b/lib/workers/repository/process/fetch.ts
@@ -59,7 +59,7 @@ async function fetchManagerPackagerFileUpdates(
     { manager, packageFile, queueLength: queue.length },
     'fetchManagerPackagerFileUpdates starting with concurrency'
   );
-  // eslint-disable-next-line no-param-reassign
+
   pFile.deps = await pAll(queue, { concurrency: 5 });
   logger.trace({ packageFile }, 'fetchManagerPackagerFileUpdates finished');
 }
diff --git a/lib/workers/repository/process/lookup/filter-checks.ts b/lib/workers/repository/process/lookup/filter-checks.ts
index 1208a7d716..73c0535fb5 100644
--- a/lib/workers/repository/process/lookup/filter-checks.ts
+++ b/lib/workers/repository/process/lookup/filter-checks.ts
@@ -66,7 +66,7 @@ export async function filterInternalChecks(
             `Release ${candidateRelease.version} is pending status checks`
           );
           pendingReleases.unshift(candidateRelease);
-          continue; // eslint-disable-line no-continue
+          continue;
         }
       }
       if (isActiveConfidenceLevel(minimumConfidence)) {
@@ -83,7 +83,7 @@ export async function filterInternalChecks(
             `Release ${candidateRelease.version} is pending status checks`
           );
           pendingReleases.unshift(candidateRelease);
-          continue; // eslint-disable-line no-continue
+          continue;
         }
       }
       // If we get to here, then the release is OK and we can stop iterating
diff --git a/lib/workers/repository/process/lookup/index.ts b/lib/workers/repository/process/lookup/index.ts
index ad0d46dd9c..a921b1536c 100644
--- a/lib/workers/repository/process/lookup/index.ts
+++ b/lib/workers/repository/process/lookup/index.ts
@@ -258,7 +258,7 @@ export async function lookupUpdates(
         }
         if (!update.newValue || update.newValue === currentValue) {
           if (!lockedVersion) {
-            continue; // eslint-disable-line no-continue
+            continue;
           }
           // istanbul ignore if
           if (rangeStrategy === 'bump') {
@@ -266,7 +266,7 @@ export async function lookupUpdates(
               { depName, currentValue, lockedVersion, newVersion },
               'Skipping bump because newValue is the same'
             );
-            continue; // eslint-disable-line no-continue
+            continue;
           }
           res.isSingleVersion = true;
         }
diff --git a/lib/workers/repository/updates/branch-name.ts b/lib/workers/repository/updates/branch-name.ts
index 32211dca87..15433fb94b 100644
--- a/lib/workers/repository/updates/branch-name.ts
+++ b/lib/workers/repository/updates/branch-name.ts
@@ -27,7 +27,6 @@ function cleanBranchName(branchName: string): string {
     .replace(RE_MULTIPLE_DASH, '-'); // chained dashes
 }
 
-/* eslint-disable no-param-reassign */
 export function generateBranchName(update: RenovateConfig): void {
   // Check whether to use a group name
   if (update.groupName) {
diff --git a/lib/workers/repository/updates/generate.ts b/lib/workers/repository/updates/generate.ts
index 4ff74aff11..ee8ea55354 100644
--- a/lib/workers/repository/updates/generate.ts
+++ b/lib/workers/repository/updates/generate.ts
@@ -92,7 +92,6 @@ export function generateBranchConfig(
     toVersions.length > 1 ||
     (!toVersions[0] && newValue.length > 1);
   if (newValue.length > 1 && !groupEligible) {
-    // eslint-disable-next-line no-param-reassign
     branchUpgrades[0].commitMessageExtra = `to v${toVersions[0]}`;
   }
   const typesGroup =
@@ -235,10 +234,10 @@ export function generateBranchConfig(
         const existingStamp = DateTime.fromISO(releaseTimestamp);
         const upgradeStamp = DateTime.fromISO(upgrade.releaseTimestamp);
         if (upgradeStamp > existingStamp) {
-          releaseTimestamp = upgrade.releaseTimestamp; // eslint-disable-line
+          releaseTimestamp = upgrade.releaseTimestamp;
         }
       } else {
-        releaseTimestamp = upgrade.releaseTimestamp; // eslint-disable-line
+        releaseTimestamp = upgrade.releaseTimestamp;
       }
     }
   }
diff --git a/package.json b/package.json
index 960b6ec594..cda3f5f196 100644
--- a/package.json
+++ b/package.json
@@ -15,8 +15,8 @@
     "create-json-schema": "node -r ts-node/register/transpile-only -- bin/create-json-schema.js && prettier --write \"renovate-schema.json\"",
     "debug": "node --inspect-brk -r ts-node/register/transpile-only  -- lib/renovate.ts",
     "doc-fix": "run-s markdown-lint-fix prettier-fix",
-    "eslint": "eslint --ext .js,.mjs,.ts lib/ test/ tools/",
-    "eslint-fix": "eslint --ext .js,.mjs,.ts --fix lib/ test/ tools/",
+    "eslint": "eslint --ext .js,.mjs,.ts lib/ test/ tools/ --report-unused-disable-directives",
+    "eslint-fix": "eslint --ext .js,.mjs,.ts --fix lib/ test/ tools/ --report-unused-disable-directives",
     "generate": "run-s generate:*",
     "generate:imports": "node tools/generate-imports.mjs",
     "git-check": "node tools/check-git-version.mjs",
diff --git a/test/exec-util.ts b/test/exec-util.ts
index 7e4d4e1497..0a0b5d8bdb 100644
--- a/test/exec-util.ts
+++ b/test/exec-util.ts
@@ -27,7 +27,6 @@ export function execSnapshot(cmd: string, options?: CallOptions): ExecSnapshot {
 
   const cwd = toUnix(process.cwd());
 
-  // eslint-disable-next-line array-callback-return
   return traverse(snapshot).map(function fixup(v) {
     if (is.string(v)) {
       const val = v
diff --git a/tools/check-re2.mjs b/tools/check-re2.mjs
index 04a90c4c3a..0d55da98a2 100644
--- a/tools/check-re2.mjs
+++ b/tools/check-re2.mjs
@@ -4,7 +4,7 @@ import shell from 'shelljs';
 (async () => {
   shell.echo('-n', 'Checking re2 ... ');
   try {
-    const { default: RE2 } = await import('re2'); // eslint-disable-line import/no-extraneous-dependencies
+    const { default: RE2 } = await import('re2');
     new RE2('.*').exec('test');
     shell.echo(`ok.`);
   } catch (e) {
-- 
GitLab