mirror of
https://github.com/Dvorinka/Devour.git
synced 2026-06-03 20:13:03 +00:00
update
This commit is contained in:
@@ -6,6 +6,7 @@ import (
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
@@ -218,6 +219,7 @@ func runQualityScan(cmd *cobra.Command, args []string) error {
|
||||
if err != nil {
|
||||
return fmt.Errorf("scan failed: %w", err)
|
||||
}
|
||||
result.Findings = quality.AttachDocsEvidence(lang, result.Findings)
|
||||
|
||||
return outputScanResult(result, qualityFormat)
|
||||
}
|
||||
@@ -256,9 +258,11 @@ func runQualityStatus(cmd *cobra.Command, args []string) error {
|
||||
return json.NewEncoder(os.Stdout).Encode(scorecard)
|
||||
case "strict":
|
||||
fmt.Println(scorer.FormatStrictScorecard(findings, lastScan))
|
||||
printQualityEvidenceSummary(findings)
|
||||
return nil
|
||||
default:
|
||||
fmt.Println(scorer.FormatScorecard(scorecard))
|
||||
printQualityEvidenceSummary(findings)
|
||||
return nil
|
||||
}
|
||||
}
|
||||
@@ -318,6 +322,17 @@ func runQualityNext(cmd *cobra.Command, args []string) error {
|
||||
fmt.Printf("Score: %d\n", next.Score)
|
||||
fmt.Printf("ID: %s\n", next.ID)
|
||||
fmt.Printf("\nDescription:\n%s\n", next.Description)
|
||||
if next.Metadata != nil {
|
||||
if urls := strings.TrimSpace(next.Metadata["docs_evidence_urls"]); urls != "" {
|
||||
fmt.Printf("\nEvidence Docs:\n%s\n", urls)
|
||||
}
|
||||
if rationale := strings.TrimSpace(next.Metadata["docs_evidence_rationale"]); rationale != "" {
|
||||
fmt.Printf("\nRationale:\n%s\n", rationale)
|
||||
}
|
||||
if confidence := strings.TrimSpace(next.Metadata["docs_evidence_confidence"]); confidence != "" {
|
||||
fmt.Printf("Evidence confidence: %s\n", confidence)
|
||||
}
|
||||
}
|
||||
|
||||
if explain {
|
||||
fmt.Printf("\nExplanation:\n")
|
||||
@@ -693,3 +708,27 @@ func importReviewResponses(dataDir string, filename string) error {
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func printQualityEvidenceSummary(findings []quality.Finding) {
|
||||
totalWithEvidence := 0
|
||||
for _, f := range findings {
|
||||
if f.Metadata != nil && strings.TrimSpace(f.Metadata["docs_evidence_urls"]) != "" {
|
||||
totalWithEvidence++
|
||||
}
|
||||
}
|
||||
if totalWithEvidence == 0 {
|
||||
return
|
||||
}
|
||||
fmt.Printf("\nEvidence-linked findings: %d/%d\n", totalWithEvidence, len(findings))
|
||||
for _, f := range findings {
|
||||
if f.Metadata == nil {
|
||||
continue
|
||||
}
|
||||
urls := strings.TrimSpace(f.Metadata["docs_evidence_urls"])
|
||||
if urls == "" {
|
||||
continue
|
||||
}
|
||||
fmt.Printf(" • %s:%d - %s\n %s\n", filepath.Base(f.File), f.Line, f.Title, urls)
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user