MoonBit-native README example verifier and open-source provenance proof toolkit
moon add NBB2006/harborchecktest {
let markdown =
#|# Usage
#|
#|```moonbit
#|fn main {
#| println("verified")
#|}
#|```
#|
let report = @harborcheck.doc_proof(
markdown,
[
@harborcheck.SourceEvidence(
name="HarborCheck source",
kind=@harborcheck.OwnedCode,
license="MIT",
note="Original MoonBit implementation by the project applicant",
),
],
)
inspect(report.verdict, content="ready")
}moon run examples/basicmoon run cmd/mainmoon check
moon build
moon test
moon run examples/basic
moon run cmd/main
moon publish --dry-runmoon check --deny-warn
moon build
moon test --deny-warn
moon fmt --check
moon run examples/basic
moon run cmd/main
moon publish --dry-runmoon login
moon publish --dry-run
moon publishhttps://mooncakes.io/docs/NBB2006/harborcheck
https://mooncakes.io/api/v0/manifest/NBB2006/harborcheckpub(all) struct AuditReport {
project_name : String
score : Int
max_score : Int
verdict : String
package_name : String
repository : String
findings : Array[Finding]
metrics : AuditMetrics
} derive(Eq, Debug)pub(all) struct DocProofReport {
snippet_count : Int
runnable_snippet_count : Int
source_count : Int
unclear_source_count : Int
license_issue_count : Int
verdict : String
snippets : Array[DocSnippet]
sources : Array[SourceEvidence]
} derive(Eq, Debug)pub(all) struct ProjectSnapshot {
name : String
moon_mod : String
readme : String
ci_workflow : String
license_text : String
examples : Array[String]
tests : Array[String]
commands : Array[String]
changelog : String
design_notes : String
issue_notes : String
commit_count : Int
repository_public : Bool
mooncakes_published : Bool
mooncakes_owner : String
mooncakes_package : String
} derive(Eq, Debug)fn ProjectSnapshot::ProjectSnapshot(name? : String, moon_mod? : String, readme? : String, ci_workflow? : String, license_text? : String, examples? : Array[String], tests? : Array[String], commands? : Array[String], changelog? : String, design_notes? : String, issue_notes? : String, commit_count? : Int, repository_public? : Bool, mooncakes_published? : Bool, mooncakes_owner? : String, mooncakes_package? : String) -> ProjectSnapshotpub(all) struct SourceEvidence {
name : String
kind : SourceKind
source_url : String
license : String
note : String
} derive(Eq, Debug)fn SourceEvidence::SourceEvidence(name? : String, kind? : SourceKind, source_url? : String, license? : String, note? : String) -> SourceEvidencefn rules_markdown() -> Stringfn snapshot_from_bundle(bundle : String, project_name? : String, commit_count? : Int, repository_public? : Bool, mooncakes_published? : Bool, mooncakes_owner? : String, mooncakes_package? : String) -> ProjectSnapshotfn snapshot_from_files(files : Array[NamedFile], project_name? : String, commit_count? : Int, repository_public? : Bool, mooncakes_published? : Bool, mooncakes_owner? : String, mooncakes_package? : String) -> ProjectSnapshotMoonBit-native README example verifier and open-source provenance proof toolkit