From f4f89e12e1564850bf607c86c6e6c82cb47dbe43 Mon Sep 17 00:00:00 2001
From: RahulGautamSingh <rahultesnik@gmail.com>
Date: Tue, 25 Oct 2022 13:02:52 +0530
Subject: [PATCH] fix(manager/mix): ignore comments when extracting deps
 (#18479)

---
 lib/modules/manager/mix/__fixtures__/mix.exs | 10 +++++++---
 lib/modules/manager/mix/extract.ts           |  6 ++++--
 2 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/lib/modules/manager/mix/__fixtures__/mix.exs b/lib/modules/manager/mix/__fixtures__/mix.exs
index 1d3194f3c8..29966d7d9d 100644
--- a/lib/modules/manager/mix/__fixtures__/mix.exs
+++ b/lib/modules/manager/mix/__fixtures__/mix.exs
@@ -16,14 +16,18 @@ defmodule MyProject.MixProject do
 
   defp deps() do
     [
-      {:postgrex, "~> 0.8.1"},
+      #{:broadway_dashboard, "~> 0.2.2"},
+#{:broadway_dashboard, "~> 0.2.2"},
+#   {:broadway_dashboard, "~> 0.2.2"},
+      #    {:broadway_dashboard, "~> 0.2.2"},
+      {:postgrex, "~> 0.8.1"}, #  {:broadway_dashboard, "~> 0.2.2"},
       {:ecto, ">2.1.0 or <=3.0.0"},
       {:cowboy, github: "ninenines/cowboy"},
       {:secret, "~> 1.0", organization: "acme"},
       {:ex_doc, ">2.1.0 and <=3.0.0"},
       {:jason, ">= 1.0.0"},
-      {:jason, "~> 1.0", 
+      {:jason, "~> 1.0",
         optional: true},
     ]
   end
-end
\ No newline at end of file
+end
diff --git a/lib/modules/manager/mix/extract.ts b/lib/modules/manager/mix/extract.ts
index c8b0815f65..923c5ebba3 100644
--- a/lib/modules/manager/mix/extract.ts
+++ b/lib/modules/manager/mix/extract.ts
@@ -8,6 +8,7 @@ const depSectionRegExp = regEx(/defp\s+deps.*do/g);
 const depMatchRegExp = regEx(
   /{:(?<depName>\w+),\s*(?<datasource>[^:"]+)?:?\s*"(?<currentValue>[^"]+)",?\s*(?:organization: "(?<organization>.*)")?.*}/gm
 );
+const commentMatchRegExp = regEx(/^\s*#/);
 
 export async function extractPackageFile(
   content: string,
@@ -15,8 +16,9 @@ export async function extractPackageFile(
 ): Promise<PackageFile | null> {
   logger.trace('mix.extractPackageFile()');
   const deps: PackageDependency[] = [];
-  const contentArr = content.split(newlineRegex);
-
+  const contentArr = content
+    .split(newlineRegex)
+    .filter((line) => !commentMatchRegExp.test(line));
   for (let lineNumber = 0; lineNumber < contentArr.length; lineNumber += 1) {
     if (contentArr[lineNumber].match(depSectionRegExp)) {
       logger.trace(`Matched dep section on line ${lineNumber}`);
-- 
GitLab