diff --git a/src/com/mirantis/mk/Git.groovy b/src/com/mirantis/mk/Git.groovy
index 83847bf..5108cda 100644
--- a/src/com/mirantis/mk/Git.groovy
+++ b/src/com/mirantis/mk/Git.groovy
@@ -542,35 +542,3 @@
     }
     pushForReview(repo, creds, commit, branch, topic)
 }
-
-
-/**
- * findChangedPathsInCommit searches for paths in the given Git repository (repoPath)
- * that matches any of pattern provided.
- * Returns list of matched paths.
- */
-def findChangedPathsInCommit(String repoPath, List<String> patterns = []) {
-    List<String> fileNames
-
-    if (fileExists("${repoPath}/.git")) {
-        dir(repoPath) {
-            fileNames = (sh(
-                script: "git show --pretty=oneline --name-only | tail -n +2",
-                returnStdout: true
-            )).readLines()
-        }
-    }
-
-    if (patterns) {
-        List<Pattern> compiledPatterns = patterns.collect {
-            Pattern.compile(it.trim())
-        }
-        return fileNames.findAll { fileName ->
-            compiledPatterns.find { pattern ->
-                fileName =~ pattern
-            }
-        }
-    } else {
-        return fileNames
-    }
-}
