///|
/// Curated reusable rule templates for SARIF-producing MoonBit tools.
/// The catalog is intentionally domain-neutral: package validators, linters,
/// build tools and security scanners can reuse these descriptors as stable
/// defaults and then attach project-specific results.
///|
pub fn catalog_rule_sk001() -> SarifRule {
SarifRule::SarifRule(
"SK001",
name="secret-literal",
short_description="Secret-like literal should not be committed",
full_description="Secret-like literal should not be committed. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="error",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk001",
tags=["security", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk002() -> SarifRule {
SarifRule::SarifRule(
"SK002",
name="weak-random",
short_description="Weak random source used for security-sensitive code",
full_description="Weak random source used for security-sensitive code. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="warning",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk002",
tags=["security", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk003() -> SarifRule {
SarifRule::SarifRule(
"SK003",
name="insecure-url",
short_description="HTTP URL appears in release configuration",
full_description="HTTP URL appears in release configuration. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="error",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk003",
tags=["security", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk004() -> SarifRule {
SarifRule::SarifRule(
"SK004",
name="wide-permission",
short_description="Permission scope is wider than required",
full_description="Permission scope is wider than required. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="warning",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk004",
tags=["security", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk005() -> SarifRule {
SarifRule::SarifRule(
"SK005",
name="missing-license",
short_description="Distributed artifact has no license declaration",
full_description="Distributed artifact has no license declaration. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="error",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk005",
tags=["compliance", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk006() -> SarifRule {
SarifRule::SarifRule(
"SK006",
name="unknown-license",
short_description="License expression is not recognized",
full_description="License expression is not recognized. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="warning",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk006",
tags=["compliance", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk007() -> SarifRule {
SarifRule::SarifRule(
"SK007",
name="missing-readme",
short_description="Package has no README",
full_description="Package has no README. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="error",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk007",
tags=["documentation", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk008() -> SarifRule {
SarifRule::SarifRule(
"SK008",
name="stale-changelog",
short_description="Changelog does not mention current version",
full_description="Changelog does not mention current version. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="warning",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk008",
tags=["documentation", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk009() -> SarifRule {
SarifRule::SarifRule(
"SK009",
name="empty-description",
short_description="Package description is empty",
full_description="Package description is empty. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="warning",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk009",
tags=["metadata", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk010() -> SarifRule {
SarifRule::SarifRule(
"SK010",
name="missing-repository",
short_description="Package repository URL is missing",
full_description="Package repository URL is missing. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="error",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk010",
tags=["metadata", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk011() -> SarifRule {
SarifRule::SarifRule(
"SK011",
name="untracked-example",
short_description="Runnable example is not referenced by README",
full_description="Runnable example is not referenced by README. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="warning",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk011",
tags=["examples", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk012() -> SarifRule {
SarifRule::SarifRule(
"SK012",
name="example-fails",
short_description="Example command failed during verification",
full_description="Example command failed during verification. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="error",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk012",
tags=["examples", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk013() -> SarifRule {
SarifRule::SarifRule(
"SK013",
name="test-gap",
short_description="Public API lacks focused tests",
full_description="Public API lacks focused tests. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="warning",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk013",
tags=["testing", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk014() -> SarifRule {
SarifRule::SarifRule(
"SK014",
name="ci-missing",
short_description="Repository has no CI workflow",
full_description="Repository has no CI workflow. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="error",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk014",
tags=["ci", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk015() -> SarifRule {
SarifRule::SarifRule(
"SK015",
name="ci-too-narrow",
short_description="CI workflow misses build or test step",
full_description="CI workflow misses build or test step. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="warning",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk015",
tags=["ci", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk016() -> SarifRule {
SarifRule::SarifRule(
"SK016",
name="large-file",
short_description="Large file should be excluded or justified",
full_description="Large file should be excluded or justified. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="warning",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk016",
tags=["repository", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk017() -> SarifRule {
SarifRule::SarifRule(
"SK017",
name="generated-artifact",
short_description="Generated build artifact is committed",
full_description="Generated build artifact is committed. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="warning",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk017",
tags=["repository", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk018() -> SarifRule {
SarifRule::SarifRule(
"SK018",
name="unstable-api",
short_description="Public API exposes unstable naming",
full_description="Public API exposes unstable naming. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="warning",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk018",
tags=["api", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk019() -> SarifRule {
SarifRule::SarifRule(
"SK019",
name="ambiguous-error",
short_description="Error message lacks actionable context",
full_description="Error message lacks actionable context. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="warning",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk019",
tags=["api", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk020() -> SarifRule {
SarifRule::SarifRule(
"SK020",
name="panic-path",
short_description="Library path may panic instead of returning Result",
full_description="Library path may panic instead of returning Result. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="error",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk020",
tags=["api", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk021() -> SarifRule {
SarifRule::SarifRule(
"SK021",
name="path-assumption",
short_description="Path handling assumes one operating system",
full_description="Path handling assumes one operating system. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="warning",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk021",
tags=["portability", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk022() -> SarifRule {
SarifRule::SarifRule(
"SK022",
name="clock-assumption",
short_description="Logic depends on wall clock time",
full_description="Logic depends on wall clock time. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="warning",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk022",
tags=["determinism", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk023() -> SarifRule {
SarifRule::SarifRule(
"SK023",
name="order-unstable",
short_description="Report output is not deterministic",
full_description="Report output is not deterministic. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="warning",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk023",
tags=["determinism", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk024() -> SarifRule {
SarifRule::SarifRule(
"SK024",
name="duplicate-rule",
short_description="Rule id is declared more than once",
full_description="Rule id is declared more than once. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="error",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk024",
tags=["sarif", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk025() -> SarifRule {
SarifRule::SarifRule(
"SK025",
name="missing-location",
short_description="Result does not carry a physical location",
full_description="Result does not carry a physical location. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="warning",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk025",
tags=["sarif", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk026() -> SarifRule {
SarifRule::SarifRule(
"SK026",
name="unknown-level",
short_description="Result level is not SARIF standard",
full_description="Result level is not SARIF standard. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="warning",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk026",
tags=["sarif", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk027() -> SarifRule {
SarifRule::SarifRule(
"SK027",
name="invalid-region",
short_description="Region uses invalid one-based coordinates",
full_description="Region uses invalid one-based coordinates. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="error",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk027",
tags=["sarif", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk028() -> SarifRule {
SarifRule::SarifRule(
"SK028",
name="empty-message",
short_description="SARIF message text is empty",
full_description="SARIF message text is empty. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="error",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk028",
tags=["sarif", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk029() -> SarifRule {
SarifRule::SarifRule(
"SK029",
name="missing-fingerprint",
short_description="Result has no stable fingerprint",
full_description="Result has no stable fingerprint. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="warning",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk029",
tags=["sarif", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk030() -> SarifRule {
SarifRule::SarifRule(
"SK030",
name="baseline-drift",
short_description="Baseline state is inconsistent with comparison",
full_description="Baseline state is inconsistent with comparison. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="warning",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk030",
tags=["sarif", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk031() -> SarifRule {
SarifRule::SarifRule(
"SK031",
name="oversized-report",
short_description="SARIF report has too many results for CI upload",
full_description="SARIF report has too many results for CI upload. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="warning",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk031",
tags=["sarif", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk032() -> SarifRule {
SarifRule::SarifRule(
"SK032",
name="missing-tool-version",
short_description="Tool driver has no version",
full_description="Tool driver has no version. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="warning",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk032",
tags=["sarif", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk033() -> SarifRule {
SarifRule::SarifRule(
"SK033",
name="missing-help-uri",
short_description="Rule has no help URI",
full_description="Rule has no help URI. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="note",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk033",
tags=["documentation", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk034() -> SarifRule {
SarifRule::SarifRule(
"SK034",
name="tagless-rule",
short_description="Rule has no taxonomy tags",
full_description="Rule has no taxonomy tags. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="note",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk034",
tags=["documentation", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk035() -> SarifRule {
SarifRule::SarifRule(
"SK035",
name="absolute-path",
short_description="Report contains absolute local path",
full_description="Report contains absolute local path. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="warning",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk035",
tags=["privacy", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk036() -> SarifRule {
SarifRule::SarifRule(
"SK036",
name="user-path",
short_description="Report may expose user-specific path segments",
full_description="Report may expose user-specific path segments. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="warning",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk036",
tags=["privacy", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk037() -> SarifRule {
SarifRule::SarifRule(
"SK037",
name="binary-content",
short_description="Text report includes binary-looking content",
full_description="Text report includes binary-looking content. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="warning",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk037",
tags=["privacy", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk038() -> SarifRule {
SarifRule::SarifRule(
"SK038",
name="token-shaped-text",
short_description="Report contains token-shaped text",
full_description="Report contains token-shaped text. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="error",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk038",
tags=["privacy", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk039() -> SarifRule {
SarifRule::SarifRule(
"SK039",
name="unbounded-array",
short_description="Array growth is not bounded by policy",
full_description="Array growth is not bounded by policy. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="warning",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk039",
tags=["performance", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk040() -> SarifRule {
SarifRule::SarifRule(
"SK040",
name="quadratic-scan",
short_description="Nested scan may be expensive on large reports",
full_description="Nested scan may be expensive on large reports. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="warning",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk040",
tags=["performance", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk041() -> SarifRule {
SarifRule::SarifRule(
"SK041",
name="missing-limit",
short_description="CLI accepts no result limit",
full_description="CLI accepts no result limit. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="note",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk041",
tags=["performance", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk042() -> SarifRule {
SarifRule::SarifRule(
"SK042",
name="slow-json",
short_description="JSON conversion repeatedly rebuilds objects",
full_description="JSON conversion repeatedly rebuilds objects. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="note",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk042",
tags=["performance", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk043() -> SarifRule {
SarifRule::SarifRule(
"SK043",
name="unchecked-json",
short_description="JSON input type is not checked before decoding",
full_description="JSON input type is not checked before decoding. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="warning",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk043",
tags=["parser", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk044() -> SarifRule {
SarifRule::SarifRule(
"SK044",
name="lossy-json",
short_description="JSON roundtrip drops supported fields",
full_description="JSON roundtrip drops supported fields. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="warning",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk044",
tags=["parser", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk045() -> SarifRule {
SarifRule::SarifRule(
"SK045",
name="bad-default",
short_description="Default value weakens validation",
full_description="Default value weakens validation. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="warning",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk045",
tags=["config", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk046() -> SarifRule {
SarifRule::SarifRule(
"SK046",
name="silent-ignore",
short_description="Configuration silently ignores unknown fields",
full_description="Configuration silently ignores unknown fields. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="warning",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk046",
tags=["config", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk047() -> SarifRule {
SarifRule::SarifRule(
"SK047",
name="no-schema",
short_description="Output does not include SARIF schema URI",
full_description="Output does not include SARIF schema URI. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="note",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk047",
tags=["config", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk048() -> SarifRule {
SarifRule::SarifRule(
"SK048",
name="no-automation-id",
short_description="Run lacks automation id in CI context",
full_description="Run lacks automation id in CI context. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="note",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk048",
tags=["ci", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk049() -> SarifRule {
SarifRule::SarifRule(
"SK049",
name="failed-invocation",
short_description="Invocation marks execution unsuccessful",
full_description="Invocation marks execution unsuccessful. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="error",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk049",
tags=["ci", "sarifkit"],
)
}
///|
pub fn catalog_rule_sk050() -> SarifRule {
SarifRule::SarifRule(
"SK050",
name="empty-artifacts",
short_description="Run has results but no artifact list",
full_description="Run has results but no artifact list. The rule is provided by the sarifkit reusable catalog and can be used directly or copied into a tool-specific rule set.",
default_level="note",
help_uri="https://github.com/Derk2006/sarifkit/tree/main/docs/rules#sk050",
tags=["sarif", "sarifkit"],
)
}
///|
pub fn catalog_rules() -> Array[SarifRule] {
[
catalog_rule_sk001(),
catalog_rule_sk002(),
catalog_rule_sk003(),
catalog_rule_sk004(),
catalog_rule_sk005(),
catalog_rule_sk006(),
catalog_rule_sk007(),
catalog_rule_sk008(),
catalog_rule_sk009(),
catalog_rule_sk010(),
catalog_rule_sk011(),
catalog_rule_sk012(),
catalog_rule_sk013(),
catalog_rule_sk014(),
catalog_rule_sk015(),
catalog_rule_sk016(),
catalog_rule_sk017(),
catalog_rule_sk018(),
catalog_rule_sk019(),
catalog_rule_sk020(),
catalog_rule_sk021(),
catalog_rule_sk022(),
catalog_rule_sk023(),
catalog_rule_sk024(),
catalog_rule_sk025(),
catalog_rule_sk026(),
catalog_rule_sk027(),
catalog_rule_sk028(),
catalog_rule_sk029(),
catalog_rule_sk030(),
catalog_rule_sk031(),
catalog_rule_sk032(),
catalog_rule_sk033(),
catalog_rule_sk034(),
catalog_rule_sk035(),
catalog_rule_sk036(),
catalog_rule_sk037(),
catalog_rule_sk038(),
catalog_rule_sk039(),
catalog_rule_sk040(),
catalog_rule_sk041(),
catalog_rule_sk042(),
catalog_rule_sk043(),
catalog_rule_sk044(),
catalog_rule_sk045(),
catalog_rule_sk046(),
catalog_rule_sk047(),
catalog_rule_sk048(),
catalog_rule_sk049(),
catalog_rule_sk050(),
]
}
///|
pub fn catalog_rule_ids() -> Array[String] {
catalog_rules().map(rule => rule.id)
}
///|
pub fn catalog_rules_by_tag(tag : StringView) -> Array[SarifRule] {
let needle = tag.to_owned()
catalog_rules().filter(rule => rule.tags.contains(needle))
}
///|
pub fn catalog_rules_by_level(minimum : StringView) -> Array[SarifRule] {
catalog_rules().filter(rule => level_at_least(rule.default_level, minimum))
}
///|
pub fn catalog_lookup(rule_id : StringView) -> SarifRule? {
let needle = rule_id.to_owned()
for rule in catalog_rules() {
if rule.id == needle {
return Some(rule)
}
}
None
}
///|
pub fn catalog_report() -> String {
let rules = catalog_rules()
let mut out = "sarifkit catalog rules=" + rules.length().to_string()
for rule in rules {
out = out +
"\n" +
rule.id +
" " +
rule.default_level +
" " +
rule.name.unwrap_or("")
}
out
}