From 159acb04c72e27d167084b5a0d00b3b5f49672fe Mon Sep 17 00:00:00 2001
From: Sergei Zharinov <zharinov@users.noreply.github.com>
Date: Wed, 27 Oct 2021 18:51:58 +0300
Subject: [PATCH] fix(go): Escape dot for regexes produced for GONOPROXY
 (#12357)

---
 lib/datasource/go/goproxy.spec.ts | 1 +
 lib/datasource/go/goproxy.ts      | 5 ++++-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/lib/datasource/go/goproxy.spec.ts b/lib/datasource/go/goproxy.spec.ts
index 60cdf12c09..fb5ddc6879 100644
--- a/lib/datasource/go/goproxy.spec.ts
+++ b/lib/datasource/go/goproxy.spec.ts
@@ -98,6 +98,7 @@ describe('datasource/go/goproxy', () => {
       expect(parseNoproxy('[abc]')?.source).toEqual('^(?:[abc])$');
       expect(parseNoproxy('[a-c]')?.source).toEqual('^(?:[a-c])$');
       expect(parseNoproxy('[\\a-\\c]')?.source).toEqual('^(?:[a-c])$');
+      expect(parseNoproxy('a.b.c')?.source).toEqual('^(?:a\\.b\\.c)$');
     });
 
     it('matches on real package prefixes', () => {
diff --git a/lib/datasource/go/goproxy.ts b/lib/datasource/go/goproxy.ts
index b6e6fb97ad..6eab2abde0 100644
--- a/lib/datasource/go/goproxy.ts
+++ b/lib/datasource/go/goproxy.ts
@@ -79,7 +79,10 @@ const lexer = moo.states({
       push: 'characterRange',
       value: (_: string) => '[',
     },
-    char: /[^*?\\[\n]/, // TODO #12070
+    char: {
+      match: /[^*?\\[\n]/,
+      value: (s: string) => s.replace(regEx('\\.', 'g'), '\\.'),
+    },
     escapedChar: {
       match: /\\./, // TODO #12070
       value: (s: string) => s.slice(1),
-- 
GitLab