This is an automated email from the ASF dual-hosted git repository. kezhenxu94 pushed a commit to branch deps in repository https://gitbox.apache.org/repos/asf/skywalking-eyes.git
commit 5f30d70be32716bbf7e89a546a8f89014bad6ccd Author: kezhenxu94 <[email protected]> AuthorDate: Sun Dec 27 12:09:50 2020 +0800 Polish the report output, deps 1.0 is finished --- license-eye/commands/deps_resolve.go | 19 ++++++++++++++----- license-eye/pkg/deps/golang.go | 4 ++++ license-eye/pkg/deps/result.go | 34 ++++++++++++++++++++++++++++++++++ license-eye/pkg/review/header.go | 2 +- 4 files changed, 53 insertions(+), 6 deletions(-) diff --git a/license-eye/commands/deps_resolve.go b/license-eye/commands/deps_resolve.go index f4d492f..b493952 100644 --- a/license-eye/commands/deps_resolve.go +++ b/license-eye/commands/deps_resolve.go @@ -18,7 +18,9 @@ package commands import ( - "github.com/apache/skywalking-eyes/license-eye/internal/logger" + "fmt" + "strings" + "github.com/apache/skywalking-eyes/license-eye/pkg/deps" "github.com/spf13/cobra" ) @@ -34,11 +36,18 @@ var ResolveCommand = &cobra.Command{ return err } - for _, result := range report.Resolved { - logger.Log.Debugln("Pkg: ", result.Dependency, " License:", result.LicenseSpdxID) - } + fmt.Println(report.String()) - logger.Log.Debugln("Skipped:", len(report.Skipped)) + if skipped := len(report.Skipped); skipped > 0 { + pkgs := make([]string, skipped) + for i, s := range report.Skipped { + pkgs[i] = s.Dependency + } + return fmt.Errorf( + "failed to identify the licenses of following packages:\n%s", + strings.Join(pkgs, "\n"), + ) + } return nil }, diff --git a/license-eye/pkg/deps/golang.go b/license-eye/pkg/deps/golang.go index 99f4fe2..cb9eac1 100644 --- a/license-eye/pkg/deps/golang.go +++ b/license-eye/pkg/deps/golang.go @@ -81,6 +81,10 @@ func (resolver *GoModeResolver) ResolvePackages(pkgNames []string, report *Repor err := resolver.ResolvePackageLicense(p, report) if err != nil { logger.Log.Warnln("Failed to resolve the license of dependency:", p.PkgPath, err) + report.Skip(&Result{ + Dependency: p.PkgPath, + LicenseSpdxID: []string{Unknown}, + }) } return true }, nil) diff --git a/license-eye/pkg/deps/result.go b/license-eye/pkg/deps/result.go index abf8669..5ab00d6 100644 --- a/license-eye/pkg/deps/result.go +++ b/license-eye/pkg/deps/result.go @@ -17,6 +17,12 @@ // under the License. package deps +import ( + "fmt" + "math" + "strings" +) + type SpdxID string const ( @@ -46,3 +52,31 @@ func (report *Report) Resolve(result *Result) { func (report *Report) Skip(result *Result) { report.Skipped = append(report.Skipped, result) } + +func (report *Report) String() string { + dWidth, lWidth := .0, .0 + for _, r := range report.Skipped { + dWidth = math.Max(float64(len(r.Dependency)), dWidth) + for _, s := range r.LicenseSpdxID { + lWidth = math.Max(float64(len(s)), lWidth) + } + } + for _, r := range report.Resolved { + dWidth = math.Max(float64(len(r.Dependency)), dWidth) + for _, s := range r.LicenseSpdxID { + lWidth = math.Max(float64(len(s)), lWidth) + } + } + + rowTemplate := fmt.Sprintf("%%-%dv | %%%dv\n", int(dWidth), int(lWidth)) + s := fmt.Sprintf(rowTemplate, "Dependency", "License") + s += fmt.Sprintf(rowTemplate, strings.Repeat("-", int(dWidth)), strings.Repeat("-", int(lWidth))) + for _, r := range report.Resolved { + s += fmt.Sprintf(rowTemplate, r.Dependency, strings.Join(r.LicenseSpdxID, ",")) + } + for _, r := range report.Skipped { + s += fmt.Sprintf(rowTemplate, r.Dependency, Unknown) + } + + return s +} diff --git a/license-eye/pkg/review/header.go b/license-eye/pkg/review/header.go index 7c5b790..b43cfaa 100644 --- a/license-eye/pkg/review/header.go +++ b/license-eye/pkg/review/header.go @@ -59,7 +59,7 @@ var ( func init() { if os.Getenv("INPUT_GITHUB_TOKEN") == "" { - logger.Log.Warnln("GITHUB_TOKEN is not set, license-eye won't comment on the pull request") + logger.Log.Infoln("GITHUB_TOKEN is not set, license-eye won't comment on the pull request") return }
