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