From ce781fde820f3d99da792460ebbbea2664273586 Mon Sep 17 00:00:00 2001
From: RahulGautamSingh <rahultesnik@gmail.com>
Date: Mon, 2 Sep 2024 22:13:28 +0530
Subject: [PATCH] feat(manager/go): support modules without paths (#31155)

---
 lib/modules/manager/gomod/line-parser.spec.ts | 22 +++++++++++++++++++
 lib/modules/manager/gomod/line-parser.ts      |  2 +-
 2 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/lib/modules/manager/gomod/line-parser.spec.ts b/lib/modules/manager/gomod/line-parser.spec.ts
index deef02e43f..11beed76cf 100644
--- a/lib/modules/manager/gomod/line-parser.spec.ts
+++ b/lib/modules/manager/gomod/line-parser.spec.ts
@@ -107,6 +107,28 @@ describe('modules/manager/gomod/line-parser', () => {
     });
   });
 
+  it('should parse go modules without paths - 1', () => {
+    const line = 'require tailscale.com v1.72.0';
+    const res = parseLine(line);
+    expect(res).toStrictEqual({
+      currentValue: 'v1.72.0',
+      datasource: 'go',
+      depName: 'tailscale.com',
+      depType: 'require',
+    });
+  });
+
+  it('should parse go modules without paths - 2', () => {
+    const line = 'require foo.tailscale.com v1.72.0';
+    const res = parseLine(line);
+    expect(res).toStrictEqual({
+      currentValue: 'v1.72.0',
+      datasource: 'go',
+      depName: 'foo.tailscale.com',
+      depType: 'require',
+    });
+  });
+
   it('should parse require multi-line definition with quotes', () => {
     const line = '        "foo/foo" v1.2';
     const res = parseLine(line);
diff --git a/lib/modules/manager/gomod/line-parser.ts b/lib/modules/manager/gomod/line-parser.ts
index 58591c7c50..a0b439560c 100644
--- a/lib/modules/manager/gomod/line-parser.ts
+++ b/lib/modules/manager/gomod/line-parser.ts
@@ -10,7 +10,7 @@ function trimQuotes(str: string): string {
 }
 
 const requireRegex = regEx(
-  /^(?<keyword>require)?\s+(?<module>[^\s]+\/[^\s]+)\s+(?<version>[^\s]+)(?:\s*\/\/\s*(?<comment>[^\s]+)\s*)?$/,
+  /^(?<keyword>require)?\s+(?<module>[^\s]+\/?[^\s]+)\s+(?<version>[^\s]+)(?:\s*\/\/\s*(?<comment>[^\s]+)\s*)?$/,
 );
 
 const replaceRegex = regEx(
-- 
GitLab