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
        }
 

Reply via email to