diff --git a/lib/modules/manager/hermit/default-config.spec.ts b/lib/modules/manager/hermit/default-config.spec.ts
index d2a7053771f7298195d24852180cf32fdcf74eea..fadc58b1c3af8e1f6e56febb2654192cd8bc81e0 100644
--- a/lib/modules/manager/hermit/default-config.spec.ts
+++ b/lib/modules/manager/hermit/default-config.spec.ts
@@ -1,12 +1,12 @@
-import { minimatch } from 'minimatch';
 import { regexMatches } from '../../../../test/util';
+import { minimatch } from '../../../util/minimatch';
 import { defaultConfig } from './default-config';
 
 describe('modules/manager/hermit/default-config', () => {
   describe('excludeCommitPaths', () => {
     function miniMatches(target: string, patterns: string[]): boolean {
       return patterns.some((patt: string) => {
-        return minimatch(target, patt, { dot: true });
+        return minimatch(patt, { dot: true }).match(target);
       });
     }
 
diff --git a/lib/modules/manager/hermit/extract.ts b/lib/modules/manager/hermit/extract.ts
index 1c1e1210ff920637b3dd9d6ecb71c0ff59a547de..206ffdb84b8be44df57d97fbcbe692060ef55929 100644
--- a/lib/modules/manager/hermit/extract.ts
+++ b/lib/modules/manager/hermit/extract.ts
@@ -1,7 +1,7 @@
-import { minimatch } from 'minimatch';
 import upath from 'upath';
 import { logger } from '../../../logger';
 import { readLocalDirectory } from '../../../util/fs';
+import { minimatch } from '../../../util/minimatch';
 import { regEx } from '../../../util/regex';
 import { HermitDatasource } from '../../datasource/hermit';
 import type { PackageDependency, PackageFileContent } from '../types';
@@ -68,7 +68,7 @@ async function listHermitPackages(
   const out = [] as HermitListItem[];
 
   for (const f of files) {
-    if (!minimatch(f, '.*.pkg')) {
+    if (!minimatch('.*.pkg').match(f)) {
       continue;
     }
 
diff --git a/lib/modules/manager/npm/extract/utils.ts b/lib/modules/manager/npm/extract/utils.ts
index 629d643ae5e7fe333ceb2589036c806aa613a30e..14eb7117526b1504eb3564138f4793f3a4d7e012 100644
--- a/lib/modules/manager/npm/extract/utils.ts
+++ b/lib/modules/manager/npm/extract/utils.ts
@@ -1,9 +1,10 @@
-import { minimatch } from 'minimatch';
 import { logger } from '../../../../logger';
+import { minimatch } from '../../../../util/minimatch';
 
 export function matchesAnyPattern(val: string, patterns: string[]): boolean {
   const res = patterns.some(
-    (pattern) => pattern === val + '/' || minimatch(val, pattern, { dot: true })
+    (pattern) =>
+      pattern === `${val}/` || minimatch(pattern, { dot: true }).match(val)
   );
   logger.trace({ val, patterns, res }, `matchesAnyPattern`);
   return res;
diff --git a/lib/modules/manager/npm/post-update/npm.ts b/lib/modules/manager/npm/post-update/npm.ts
index 2e4175760432363f4e051c036b6cb34804afa492..0c19bb04a8c27a2b4397bfe3a5cf851808554396 100644
--- a/lib/modules/manager/npm/post-update/npm.ts
+++ b/lib/modules/manager/npm/post-update/npm.ts
@@ -1,6 +1,5 @@
 // TODO: types (#7154)
 import is from '@sindresorhus/is';
-import { minimatch } from 'minimatch';
 import upath from 'upath';
 import { GlobalConfig } from '../../../../config/global';
 import {
@@ -20,6 +19,7 @@ import {
   readLocalFile,
   renameLocalFile,
 } from '../../../../util/fs';
+import { minimatch } from '../../../../util/minimatch';
 import { trimSlashes } from '../../../../util/url';
 import type { PostUpdateConfig, Upgrade } from '../../types';
 import { composeLockFile, parseLockFile } from '../utils';
@@ -246,7 +246,7 @@ export function divideWorkspaceAndRootDeps(
         // stop when the first match is found and
         // add workspaceDir to workspaces set and upgrade object
         for (const workspacePattern of workspacePatterns ?? []) {
-          if (minimatch(workspaceDir, workspacePattern)) {
+          if (minimatch(workspacePattern).match(workspaceDir)) {
             workspaceName = workspaceDir;
             break;
           }
diff --git a/lib/util/package-rules/files.ts b/lib/util/package-rules/files.ts
index bb6cd57a3c5c90037f975d426570b99e9b9b006e..e820c8cc514367503730006d94c0da3c9186f3a6 100644
--- a/lib/util/package-rules/files.ts
+++ b/lib/util/package-rules/files.ts
@@ -1,6 +1,6 @@
 import is from '@sindresorhus/is';
-import { minimatch } from 'minimatch';
 import type { PackageRule, PackageRuleInputConfig } from '../../config/types';
+import { minimatch } from '../minimatch';
 import { Matcher } from './base';
 
 export class FileNamesMatcher extends Matcher {
@@ -17,10 +17,10 @@ export class FileNamesMatcher extends Matcher {
 
     return matchFileNames.some(
       (matchFileName) =>
-        minimatch(packageFile, matchFileName, { dot: true }) ||
+        minimatch(matchFileName, { dot: true }).match(packageFile) ||
         (is.array(lockFiles) &&
           lockFiles.some((lockFile) =>
-            minimatch(lockFile, matchFileName, { dot: true })
+            minimatch(matchFileName, { dot: true }).match(lockFile)
           ))
     );
   }
diff --git a/lib/util/package-rules/match.ts b/lib/util/package-rules/match.ts
index 3ae80396edcc6f59a305a36cd4a8ee8748911aa4..b96249e294f71f8a44c9df7e30c95cd55378ef36 100644
--- a/lib/util/package-rules/match.ts
+++ b/lib/util/package-rules/match.ts
@@ -1,6 +1,6 @@
 import is from '@sindresorhus/is';
-import { minimatch } from 'minimatch';
 import { logger } from '../../logger';
+import { minimatch } from '../minimatch';
 import { regEx } from '../regex';
 
 export function matchRegexOrMinimatch(pattern: string, input: string): boolean {
@@ -13,7 +13,8 @@ export function matchRegexOrMinimatch(pattern: string, input: string): boolean {
       return false;
     }
   }
-  return minimatch(input, pattern, { dot: true });
+
+  return minimatch(pattern, { dot: true }).match(input);
 }
 
 export function anyMatchRegexOrMinimatch(
diff --git a/lib/workers/repository/extract/file-match.ts b/lib/workers/repository/extract/file-match.ts
index 01187497f90d49f5045ac6484a6a21a4e28203ce..1cc6940feff7fb434e8bc6caae8bc4a4f3f1b8a9 100644
--- a/lib/workers/repository/extract/file-match.ts
+++ b/lib/workers/repository/extract/file-match.ts
@@ -1,6 +1,6 @@
-import { minimatch } from 'minimatch';
 import type { RenovateConfig } from '../../../config/types';
 import { logger } from '../../../logger';
+import { minimatch } from '../../../util/minimatch';
 import { regEx } from '../../../util/regex';
 
 export function getIncludedFiles(
@@ -13,7 +13,8 @@ export function getIncludedFiles(
   return fileList.filter((file) =>
     includePaths.some(
       (includePath) =>
-        file === includePath || minimatch(file, includePath, { dot: true })
+        file === includePath ||
+        minimatch(includePath, { dot: true }).match(file)
     )
   );
 }
@@ -30,7 +31,7 @@ export function filterIgnoredFiles(
       !ignorePaths.some(
         (ignorePath) =>
           file.includes(ignorePath) ||
-          minimatch(file, ignorePath, { dot: true })
+          minimatch(ignorePath, { dot: true }).match(file)
       )
   );
 }
diff --git a/lib/workers/repository/update/branch/commit.ts b/lib/workers/repository/update/branch/commit.ts
index 58d11d4ef3224ebdccbf077b0f6a633dd3824da0..a7f4c04eefabbc0669eefd9f1060dde6f0070795 100644
--- a/lib/workers/repository/update/branch/commit.ts
+++ b/lib/workers/repository/update/branch/commit.ts
@@ -1,10 +1,10 @@
 // TODO #7154
 import is from '@sindresorhus/is';
-import { minimatch } from 'minimatch';
 import { GlobalConfig } from '../../../../config/global';
 import { CONFIG_SECRETS_EXPOSED } from '../../../../constants/error-messages';
 import { logger } from '../../../../logger';
 import { scm } from '../../../../modules/platform/scm';
+import { minimatch } from '../../../../util/minimatch';
 import { sanitize } from '../../../../util/sanitize';
 import type { BranchConfig } from '../../../types';
 
@@ -18,7 +18,7 @@ export function commitFilesToBranch(
   if (is.nonEmptyArray(config.excludeCommitPaths)) {
     updatedFiles = updatedFiles.filter(({ path: filePath }) => {
       const matchesExcludePaths = config.excludeCommitPaths!.some(
-        (excludedPath) => minimatch(filePath, excludedPath, { dot: true })
+        (excludedPath) => minimatch(excludedPath, { dot: true }).match(filePath)
       );
       if (matchesExcludePaths) {
         logger.debug(`Excluding ${filePath} from commit`);
diff --git a/lib/workers/repository/update/branch/execute-post-upgrade-commands.ts b/lib/workers/repository/update/branch/execute-post-upgrade-commands.ts
index 281588e4d5defa54c24da74e1fe191af6e928718..4b4de4cc8bf89e7a95a3f19b6d72758a62b9cf77 100644
--- a/lib/workers/repository/update/branch/execute-post-upgrade-commands.ts
+++ b/lib/workers/repository/update/branch/execute-post-upgrade-commands.ts
@@ -1,6 +1,5 @@
 // TODO #7154
 import is from '@sindresorhus/is';
-import { minimatch } from 'minimatch';
 import { mergeChildConfig } from '../../../../config';
 import { GlobalConfig } from '../../../../config/global';
 import { addMeta, logger } from '../../../../logger';
@@ -13,6 +12,7 @@ import {
 } from '../../../../util/fs';
 import { getRepoStatus } from '../../../../util/git';
 import type { FileChange } from '../../../../util/git/types';
+import { minimatch } from '../../../../util/minimatch';
 import { regEx } from '../../../../util/regex';
 import { sanitize } from '../../../../util/sanitize';
 import { compile } from '../../../../util/template';
@@ -110,7 +110,7 @@ export async function postUpgradeCommandsExecutor(
 
       for (const relativePath of status.modified.concat(status.not_added)) {
         for (const pattern of fileFilters) {
-          if (minimatch(relativePath, pattern, { dot: true })) {
+          if (minimatch(pattern, { dot: true }).match(relativePath)) {
             logger.debug(
               { file: relativePath, pattern },
               'Post-upgrade file saved'
@@ -138,7 +138,7 @@ export async function postUpgradeCommandsExecutor(
 
       for (const relativePath of status.deleted || []) {
         for (const pattern of fileFilters) {
-          if (minimatch(relativePath, pattern, { dot: true })) {
+          if (minimatch(pattern, { dot: true }).match(relativePath)) {
             logger.debug(
               { file: relativePath, pattern },
               'Post-upgrade file removed'