From f1073965ab8cdc1b982d5e9fb8568a6571976d4b Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Mon, 14 Oct 2019 16:55:49 +0200 Subject: [PATCH] fix(gomod): skip indirect dependencies (#4650) Skip any go.mod dependencies ending in // indirect Closes #4586, Supercedes #4615 --- lib/manager/gomod/extract.ts | 4 ++-- test/manager/gomod/__snapshots__/extract.spec.ts.snap | 10 ---------- test/manager/gomod/__snapshots__/update.spec.ts.snap | 6 +++--- test/manager/gomod/_fixtures/1/go.mod | 2 +- test/manager/gomod/_fixtures/2/go.mod | 2 +- test/manager/gomod/extract.spec.ts | 2 +- 6 files changed, 8 insertions(+), 18 deletions(-) diff --git a/lib/manager/gomod/extract.ts b/lib/manager/gomod/extract.ts index 625cd5b4ed..a684bbffcf 100644 --- a/lib/manager/gomod/extract.ts +++ b/lib/manager/gomod/extract.ts @@ -54,7 +54,7 @@ export function extractPackageFile(content: string): PackageFile | null { deps.push(dep); } const requireMatch = line.match(/^require\s+([^\s]+)\s+([^\s]+)/); - if (requireMatch) { + if (requireMatch && !line.endsWith('// indirect')) { logger.trace({ lineNumber }, `require line: "${line}"`); const dep = getDep(lineNumber, requireMatch, 'require'); deps.push(dep); @@ -66,7 +66,7 @@ export function extractPackageFile(content: string): PackageFile | null { line = lines[lineNumber]; const multiMatch = line.match(/^\s+([^\s]+)\s+([^\s]+)/); logger.trace(`reqLine: "${line}"`); - if (multiMatch) { + if (multiMatch && !line.endsWith('// indirect')) { logger.trace({ lineNumber }, `require line: "${line}"`); const dep = getDep(lineNumber, multiMatch, 'require'); dep.managerData.multiLine = true; diff --git a/test/manager/gomod/__snapshots__/extract.spec.ts.snap b/test/manager/gomod/__snapshots__/extract.spec.ts.snap index 526d8af0ff..7ba5ee243c 100644 --- a/test/manager/gomod/__snapshots__/extract.spec.ts.snap +++ b/test/manager/gomod/__snapshots__/extract.spec.ts.snap @@ -717,16 +717,6 @@ Array [ "lineNumber": 3, }, }, - Object { - "currentValue": "v1.0.0", - "datasource": "go", - "depName": "github.com/davecgh/go-spew", - "depNameShort": "davecgh/go-spew", - "depType": "require", - "managerData": Object { - "lineNumber": 4, - }, - }, Object { "currentValue": "v1.0.0", "datasource": "go", diff --git a/test/manager/gomod/__snapshots__/update.spec.ts.snap b/test/manager/gomod/__snapshots__/update.spec.ts.snap index ddc3707e96..d4b790db6c 100644 --- a/test/manager/gomod/__snapshots__/update.spec.ts.snap +++ b/test/manager/gomod/__snapshots__/update.spec.ts.snap @@ -5,7 +5,7 @@ exports[`manager/gomod/update updateDependency replaces major gopkg.in updates 1 require github.com/pkg/errors v0.7.0 require github.com/aws/aws-sdk-go v1.15.21 -require github.com/davecgh/go-spew v1.0.0 +require github.com/davecgh/go-spew v1.0.0 // indirect require golang.org/x/foo v1.0.0 require github.com/rarkins/foo abcdef1 require gopkg.in/russross/blackfriday.v2 v2.0.0 @@ -79,7 +79,7 @@ require ( gopkg.in/src-d/go-git.v4 v4.0.0-20180807092216-43d17e14b714 gopkg.in/warnings.v0 v0.1.2 gopkg.in/yaml.v2 v2.2.1 - + golang.org/x/net v0.0.0-20191003171128-d98b1b443823 // indirect ) " `; @@ -89,7 +89,7 @@ exports[`manager/gomod/update updateDependency replaces two values in one file 1 require github.com/pkg/errors v0.8.0 require github.com/aws/aws-sdk-go v1.15.36 -require github.com/davecgh/go-spew v1.0.0 +require github.com/davecgh/go-spew v1.0.0 // indirect require golang.org/x/foo v1.0.0 require github.com/rarkins/foo abcdef1 require gopkg.in/russross/blackfriday.v1 v1.0.0 diff --git a/test/manager/gomod/_fixtures/1/go.mod b/test/manager/gomod/_fixtures/1/go.mod index 479f73c809..914afa7d5f 100644 --- a/test/manager/gomod/_fixtures/1/go.mod +++ b/test/manager/gomod/_fixtures/1/go.mod @@ -2,7 +2,7 @@ module github.com/renovate-tests/gomod1 require github.com/pkg/errors v0.7.0 require github.com/aws/aws-sdk-go v1.15.21 -require github.com/davecgh/go-spew v1.0.0 +require github.com/davecgh/go-spew v1.0.0 // indirect require golang.org/x/foo v1.0.0 require github.com/rarkins/foo abcdef1 require gopkg.in/russross/blackfriday.v1 v1.0.0 diff --git a/test/manager/gomod/_fixtures/2/go.mod b/test/manager/gomod/_fixtures/2/go.mod index 6be860e0cc..d09cab9977 100644 --- a/test/manager/gomod/_fixtures/2/go.mod +++ b/test/manager/gomod/_fixtures/2/go.mod @@ -59,5 +59,5 @@ require ( gopkg.in/src-d/go-git.v4 v4.0.0-20180807092216-43d17e14b714 gopkg.in/warnings.v0 v0.1.2 gopkg.in/yaml.v2 v2.2.1 - + golang.org/x/net v0.0.0-20191003171128-d98b1b443823 // indirect ) diff --git a/test/manager/gomod/extract.spec.ts b/test/manager/gomod/extract.spec.ts index 405070a926..99a8e0081e 100644 --- a/test/manager/gomod/extract.spec.ts +++ b/test/manager/gomod/extract.spec.ts @@ -12,7 +12,7 @@ describe('lib/manager/gomod/extract', () => { it('extracts single-line requires', () => { const res = extractPackageFile(gomod1).deps; expect(res).toMatchSnapshot(); - expect(res).toHaveLength(8); + expect(res).toHaveLength(7); expect(res.filter(e => e.skipReason)).toHaveLength(1); expect(res.filter(e => e.depType === 'replace')).toHaveLength(1); }); -- GitLab