From 1c54806b6c0ae7dcda375489b851308c13266d31 Mon Sep 17 00:00:00 2001 From: Sylwester Piskozub Date: Mon, 11 Aug 2025 16:27:23 +0200 Subject: [PATCH] improve policy devel error msges Signed-off-by: Sylwester Piskozub --- app/cli/cmd/policy_develop_eval.go | 2 +- app/cli/cmd/policy_develop_lint.go | 4 +-- .../internal/action/policy_develop_eval.go | 4 +-- .../internal/action/policy_develop_lint.go | 3 +-- app/cli/internal/policydevel/eval.go | 4 +-- app/cli/internal/policydevel/lint.go | 26 +++++++++---------- 6 files changed, 20 insertions(+), 23 deletions(-) diff --git a/app/cli/cmd/policy_develop_eval.go b/app/cli/cmd/policy_develop_eval.go index 4e5409942..7fdcc6c50 100644 --- a/app/cli/cmd/policy_develop_eval.go +++ b/app/cli/cmd/policy_develop_eval.go @@ -55,7 +55,7 @@ evaluates the policy against the provided material or attestation.`, policyEval, err := action.NewPolicyEval(opts, actionOpts) if err != nil { - return fmt.Errorf("failed to initialize policy evaluation: %w", err) + return err } result, err := policyEval.Run() diff --git a/app/cli/cmd/policy_develop_lint.go b/app/cli/cmd/policy_develop_lint.go index 1c597608f..58364b96b 100644 --- a/app/cli/cmd/policy_develop_lint.go +++ b/app/cli/cmd/policy_develop_lint.go @@ -38,7 +38,7 @@ func newPolicyDevelopLintCmd() *cobra.Command { RunE: func(cmd *cobra.Command, _ []string) error { a, err := action.NewPolicyLint(actionOpts) if err != nil { - return fmt.Errorf("failed to initialize linter: %w", err) + return err } result, err := a.Run(cmd.Context(), &action.PolicyLintOpts{ @@ -47,7 +47,7 @@ func newPolicyDevelopLintCmd() *cobra.Command { RegalConfig: regalConfig, }) if err != nil { - return fmt.Errorf("linting failed: %w", err) + return err } if result.Valid { diff --git a/app/cli/internal/action/policy_develop_eval.go b/app/cli/internal/action/policy_develop_eval.go index d4d22ba7c..aa68711b8 100644 --- a/app/cli/internal/action/policy_develop_eval.go +++ b/app/cli/internal/action/policy_develop_eval.go @@ -16,8 +16,6 @@ package action import ( - "fmt" - "github.com/chainloop-dev/chainloop/app/cli/internal/policydevel" ) @@ -62,7 +60,7 @@ func (action *PolicyEval) Run() ([]*PolicyEvalResult, error) { // Evaluate policy resp, err := policydevel.Evaluate(evalOpts, action.Logger) if err != nil { - return nil, fmt.Errorf("evaluating policy: %w", err) + return nil, err } results := make([]*PolicyEvalResult, 0, len(resp)) diff --git a/app/cli/internal/action/policy_develop_lint.go b/app/cli/internal/action/policy_develop_lint.go index eabb0e231..259c4ec86 100644 --- a/app/cli/internal/action/policy_develop_lint.go +++ b/app/cli/internal/action/policy_develop_lint.go @@ -17,7 +17,6 @@ package action import ( "context" - "fmt" "github.com/chainloop-dev/chainloop/app/cli/internal/policydevel" ) @@ -47,7 +46,7 @@ func (action *PolicyLint) Run(_ context.Context, opts *PolicyLintOpts) (*PolicyL // Read policies policy, err := policydevel.Lookup(opts.PolicyPath, opts.RegalConfig, opts.Format) if err != nil { - return nil, fmt.Errorf("loading policy: %w", err) + return nil, err } // Run all validations diff --git a/app/cli/internal/policydevel/eval.go b/app/cli/internal/policydevel/eval.go index eb7393888..8ed80cd76 100644 --- a/app/cli/internal/policydevel/eval.go +++ b/app/cli/internal/policydevel/eval.go @@ -48,13 +48,13 @@ func Evaluate(opts *EvalOptions, logger zerolog.Logger) ([]*EvalResult, error) { // 1. Create crafting schema schema, err := createCraftingSchema(opts.PolicyPath, opts.Inputs) if err != nil { - return nil, fmt.Errorf("creating crafting schema: %w", err) + return nil, err } // 2. Craft material with annotations material, err := craftMaterial(opts.MaterialPath, opts.MaterialKind, &logger) if err != nil { - return nil, fmt.Errorf("material crafting: %w", err) + return nil, err } material.Annotations = opts.Annotations diff --git a/app/cli/internal/policydevel/lint.go b/app/cli/internal/policydevel/lint.go index 3e55e9a2e..eadd5a623 100644 --- a/app/cli/internal/policydevel/lint.go +++ b/app/cli/internal/policydevel/lint.go @@ -84,7 +84,7 @@ func (p *PolicyToLint) AddError(path, message string, line int) { func Lookup(absPath, config string, format bool) (*PolicyToLint, error) { resolvedPath, err := resourceloader.GetPathForResource(absPath) if err != nil { - return nil, fmt.Errorf("failed to resolve policy file: %w", err) + return nil, err } fileInfo, err := os.Stat(resolvedPath) @@ -92,7 +92,7 @@ func Lookup(absPath, config string, format bool) (*PolicyToLint, error) { if os.IsNotExist(err) { return nil, fmt.Errorf("policy file does not exist: %s", resolvedPath) } - return nil, fmt.Errorf("failed to stat file %q: %w", resolvedPath, err) + return nil, err } if fileInfo.IsDir() { return nil, fmt.Errorf("expected a file but got a directory: %s", resolvedPath) @@ -141,14 +141,14 @@ func (p *PolicyToLint) loadReferencedRegoFiles(baseDir string) error { resolvedPath, err := resourceloader.GetPathForResource(regoPath) if err != nil { - return fmt.Errorf("failed to resolve rego file %q: %w", regoPath, err) + return err } if _, ok := seen[resolvedPath]; ok { continue // avoid duplicates } seen[resolvedPath] = struct{}{} if err := p.processFile(resolvedPath); err != nil { - return fmt.Errorf("failed to load referenced rego file %q: %w", resolvedPath, err) + return err } } } @@ -159,7 +159,7 @@ func (p *PolicyToLint) loadReferencedRegoFiles(baseDir string) error { func (p *PolicyToLint) processFile(filePath string) error { content, err := os.ReadFile(filePath) if err != nil { - return fmt.Errorf("reading %s: %w", filepath.Base(filePath), err) + return err } ext := strings.ToLower(filepath.Ext(filePath)) @@ -196,7 +196,7 @@ func (p *PolicyToLint) Validate() { func (p *PolicyToLint) validateYAMLFile(file *File) { var policy v1.Policy if err := unmarshal.FromRaw(file.Content, unmarshal.RawFormatYAML, &policy, true); err != nil { - p.AddError(file.Path, fmt.Sprintf("failed to parse/validate: %v", err), 0) + p.AddError(file.Path, "failed to parse/validate policy", 0) return } @@ -206,7 +206,7 @@ func (p *PolicyToLint) validateYAMLFile(file *File) { if p.Format { var root yaml.Node if err := yaml.Unmarshal(file.Content, &root); err != nil { - p.AddError(file.Path, fmt.Sprintf("failed to parse YAML: %v", err), 0) + p.AddError(file.Path, "failed to parse YAML", 0) return } @@ -221,13 +221,13 @@ func (p *PolicyToLint) validateYAMLFile(file *File) { defer enc.Close() if err := enc.Encode(&root); err != nil { - p.AddError(file.Path, fmt.Sprintf("failed to encode YAML: %v", err), 0) + p.AddError(file.Path, err.Error(), 0) return } outYAML := buf.Bytes() if err := os.WriteFile(file.Path, outYAML, 0600); err != nil { - p.AddError(file.Path, fmt.Sprintf("failed to write updated file: %v", err), 0) + p.AddError(file.Path, err.Error(), 0) } else { file.Content = outYAML } @@ -255,7 +255,7 @@ func (p *PolicyToLint) validateRegoFile(file *File) { if p.Format && formatted != original { if err := os.WriteFile(file.Path, []byte(formatted), 0600); err != nil { - p.AddError(file.Path, fmt.Sprintf("failed to auto-format: %v", err), 0) + p.AddError(file.Path, err.Error(), 0) } else { file.Content = []byte(formatted) } @@ -281,7 +281,7 @@ func (p *PolicyToLint) validateAndFormatRego(content, path string) string { func (p *PolicyToLint) applyOPAFmt(content, file string) string { formatted, err := format.SourceWithOpts(file, []byte(content), format.Opts{}) if err != nil { - p.AddError(file, "Auto-formatting failed", 0) + p.AddError(file, "auto-formatting failed", 0) return content } return string(formatted) @@ -315,7 +315,7 @@ func (p *PolicyToLint) checkResultStructure(content, path string, keys []string) func (p *PolicyToLint) runRegalLinter(filePath, content string) { inputModules, err := rules.InputFromText(filePath, content) if err != nil { - p.AddError(filePath, fmt.Sprintf("failed to prepare for linting: %v", err), 0) + p.AddError(filePath, err.Error(), 0) return } @@ -333,7 +333,7 @@ func (p *PolicyToLint) runRegalLinter(filePath, content string) { report, err := lntr.Lint(context.Background()) if err != nil { - p.AddError(filePath, fmt.Sprintf("linting failed: %v", err), 0) + p.AddError(filePath, err.Error(), 0) return }