Skip to content

Commit a2dc9ad

Browse files
feat: extend GoModResolver to support any valid Go *.mod file
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
1 parent b5e0ec5 commit a2dc9ad

2 files changed

Lines changed: 15 additions & 7 deletions

File tree

pkg/deps/golang.go

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,14 +55,21 @@ func (resolver *GoModResolver) CanResolve(file string) bool {
5555
return strings.HasSuffix(base, ".mod")
5656
}
5757

58-
// Resolve resolves licenses of all dependencies declared in the go.mod file.
59-
func (resolver *GoModResolver) Resolve(goModFile string, config *ConfigDeps, report *Report) error {
60-
content, err := os.ReadFile(goModFile)
58+
func validateGoModFile(file string) error {
59+
content, err := os.ReadFile(file)
6160
if err != nil {
6261
return err
6362
}
6463
if !goModuleDirective.Match(content) || !goVersionDirective.Match(content) {
65-
return fmt.Errorf("%v is not a valid Go module file", goModFile)
64+
return fmt.Errorf("%v is not a valid Go module file", file)
65+
}
66+
return nil
67+
}
68+
69+
// Resolve resolves licenses of all dependencies declared in the go.mod file.
70+
func (resolver *GoModResolver) Resolve(goModFile string, config *ConfigDeps, report *Report) error {
71+
if err := validateGoModFile(goModFile); err != nil {
72+
return err
6673
}
6774

6875
if err := os.Chdir(filepath.Dir(goModFile)); err != nil {

pkg/deps/golang_test.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,10 @@ import (
2323
"path/filepath"
2424
"testing"
2525

26+
"golang.org/x/tools/go/packages"
27+
2628
"github.com/apache/skywalking-eyes/pkg/deps"
2729
"github.com/apache/skywalking-eyes/pkg/logger"
28-
"golang.org/x/tools/go/packages"
2930
)
3031

3132
func TestMain(m *testing.M) {
@@ -116,8 +117,8 @@ func TestResolvePackageLicense(t *testing.T) {
116117
if len(report.Resolved) != 1 {
117118
t.Fatalf("expected 1 resolved, got %d", len(report.Resolved))
118119
}
119-
if report.Resolved[0].LicenseSpdxID != "Apache-2.0" {
120-
t.Errorf("expected Apache-2.0, got %v", report.Resolved[0].LicenseSpdxID)
120+
if report.Resolved[0].LicenseSpdxID != npmLicenseApache20 {
121+
t.Errorf("expected %v, got %v", npmLicenseApache20, report.Resolved[0].LicenseSpdxID)
121122
}
122123
})
123124

0 commit comments

Comments
 (0)