///|
pub fn sample_rule() -> SarifRule {
SarifRule::SarifRule(
"MB001",
name="no-debug-print",
short_description="Debug print should not be committed",
full_description="Reports println-style debug statements in checked-in MoonBit source.",
default_level="warning",
tags=["maintainability", "ci"],
)
}
///|
pub fn sample_error_rule() -> SarifRule {
SarifRule::SarifRule(
"MB999",
name="unsafe-config",
short_description="Configuration violates release policy",
default_level="error",
tags=["security", "release"],
)
}
///|
pub fn sample_result() -> SarifResult {
SarifResult::SarifResult(
"MB001",
"debug print should be removed",
level="warning",
locations=[SarifLocation::from_path("src/main.mbt", 12, column=3)],
).with_stable_fingerprint()
}
///|
pub fn sample_error_result() -> SarifResult {
SarifResult::SarifResult(
"MB999",
"release config allows insecure transport",
level="error",
locations=[SarifLocation::from_path("moon.mod", 8, column=1)],
).with_stable_fingerprint()
}
///|
pub fn sample_run() -> SarifRun {
let driver = ToolDriver::ToolDriver(
"moonlint",
version="0.1.0",
information_uri="https://github.com/Derk2006/sarifkit",
rules=[sample_rule(), sample_error_rule()],
)
SarifRun::SarifRun(
driver,
results=[sample_result(), sample_error_result()],
artifacts=[
Artifact::Artifact("src/main.mbt"),
Artifact::Artifact("moon.mod"),
],
invocations=[SarifInvocation::SarifInvocation(command_line="moon test")],
automation_id="ci",
)
}
///|
pub fn sample_log() -> SarifLog {
SarifLog::SarifLog([sample_run()])
}