Classify source relatedness as data-quality advisories
This commit is contained in:
@@ -8,6 +8,7 @@ import (
|
||||
"strings"
|
||||
|
||||
"gitea.maximumdirect.net/eric/notarius/internal/framework/contracts"
|
||||
frameworkdiagnostics "gitea.maximumdirect.net/eric/notarius/internal/framework/diagnostics"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -17,6 +18,25 @@ const (
|
||||
MaxMessageBytes = 4096
|
||||
)
|
||||
|
||||
// DataQualityResult converts accepted source-quality findings into bounded,
|
||||
// locally grouped advisories. These findings do not indicate process
|
||||
// degradation.
|
||||
func DataQualityResult(findings []contracts.Warning) (contracts.ValidationResult, error) {
|
||||
collector := frameworkdiagnostics.NewCollector()
|
||||
for _, finding := range findings {
|
||||
if err := collector.Add(contracts.ProducerDiagnostic{
|
||||
Disposition: contracts.DiagnosticDispositionAdvisory,
|
||||
Category: contracts.DiagnosticCategoryDataQuality,
|
||||
ReasonCode: finding.ReasonCode,
|
||||
OccurrenceCount: 1,
|
||||
Samples: []contracts.DiagnosticSample{{Scope: finding.Scope, Message: finding.Message}},
|
||||
}); err != nil {
|
||||
return contracts.ValidationResult{}, fmt.Errorf("collect data-quality diagnostic: %w", err)
|
||||
}
|
||||
}
|
||||
return contracts.ValidationResult{Approved: true, Diagnostics: collector.Diagnostics()}, nil
|
||||
}
|
||||
|
||||
func Truncate(value string) string {
|
||||
runes := []rune(value)
|
||||
if len(runes) <= MaxDisplayedRunes {
|
||||
|
||||
Reference in New Issue
Block a user