mycop 0.3.1

AI Code Security Scanner — detect vulnerabilities in AI-generated code
Documentation
use crate::rules::matcher::Finding;
use crate::rules::parser::Rule;

use super::types::{FindingOutput, RuleOutput};

pub fn finding_to_output(finding: &Finding) -> FindingOutput {
    FindingOutput {
        rule_id: finding.rule_id.clone(),
        rule_name: finding.rule_name.clone(),
        severity: finding.severity.label().to_string(),
        file: finding.file.display().to_string(),
        line: finding.line,
        column: finding.column,
        matched_text: finding.matched_text.clone(),
        message: finding.message.clone(),
        description: finding.description.clone(),
        fix_hint: finding.fix_hint.clone(),
        cwe: finding.cwe.clone(),
        owasp: finding.owasp.clone(),
        references: finding.references.clone(),
        context_before: finding.context_before.clone(),
        context_after: finding.context_after.clone(),
    }
}

pub fn rule_to_output(rule: &Rule) -> RuleOutput {
    RuleOutput {
        id: rule.id.clone(),
        name: rule.name.clone(),
        severity: rule.severity.label().to_string(),
        language: rule.language.clone(),
        description: rule.description.clone(),
        cwe: rule.cwe.clone(),
        owasp: rule.owasp.clone(),
        fix_hint: rule.fix_hint.clone(),
        references: rule.references.clone(),
    }
}