Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
godzilla
command
Command godzilla is the CLI entry point for the Godzilla SAST tool.
|
Command godzilla is the CLI entry point for the Godzilla SAST tool. |
|
godzilla-playground
command
Command godzilla-playground serves the gIR Playground: it lowers a target once with the same pipeline `godzilla scan` uses, then serves a local web UI over the result for reading the gIR and trying rule patterns against it.
|
Command godzilla-playground serves the gIR Playground: it lowers a target once with the same pipeline `godzilla scan` uses, then serves a local web UI over the result for reading the gIR and trying rule patterns against it. |
|
converters
|
|
|
cpp
Package cpp_converter's default-build stub: C/C++ analysis requires libLLVM, which is only linked under the `llvm` build tag.
|
Package cpp_converter's default-build stub: C/C++ analysis requires libLLVM, which is only linked under the `llvm` build tag. |
|
frontend
Package frontend holds the batch-conversion skeleton shared by the per-file frontends (Python, JavaScript, Ruby, Rust, C/C++).
|
Package frontend holds the batch-conversion skeleton shared by the per-file frontends (Python, JavaScript, Ruby, Rust, C/C++). |
|
java
Package java_converter lowers Java to Godzilla's gIR by analyzing compiled JVM bytecode.
|
Package java_converter lowers Java to Godzilla's gIR by analyzing compiled JVM bytecode. |
|
javascript
Package js_converter lowers JavaScript source into gIR for the taint engine in internal/analysis: parse, name every function (collect.go), then lower each one (lower.go).
|
Package js_converter lowers JavaScript source into gIR for the taint engine in internal/analysis: parse, name every function (collect.go), then lower each one (lower.go). |
|
python
Package py_converter lowers Python source into gIR so the taint engine in internal/analysis can analyze it, mirroring the public shape of converters/go (NewConverter / Converter.ConvertFile).
|
Package py_converter lowers Python source into gIR so the taint engine in internal/analysis can analyze it, mirroring the public shape of converters/go (NewConverter / Converter.ConvertFile). |
|
ruby
Package ruby_converter lowers Ruby source into gIR so the shared taint engine can analyze it, mirroring the public shape of the other frontends (NewConverter / Converter.ConvertFile).
|
Package ruby_converter lowers Ruby source into gIR so the shared taint engine can analyze it, mirroring the public shape of the other frontends (NewConverter / Converter.ConvertFile). |
|
rust
Package rust_converter is Godzilla's Rust frontend.
|
Package rust_converter is Godzilla's Rust frontend. |
|
ssabuild
Package ssabuild constructs pruned, minimal SSA form for a single function while the caller walks a structured AST, following Braun, Buchwald, Hack et al.
|
Package ssabuild constructs pruned, minimal SSA form for a single function while the caller walks a structured AST, following Braun, Buchwald, Hack et al. |
|
internal
|
|
|
analysis
Package analysis implements Godzilla's taint analysis engine: it walks gIR programs and reports Findings for source-to-sink dataflows described by a rules.RuleSet, alongside two non-dataflow passes (dangerous-call and secrets).
|
Package analysis implements Godzilla's taint analysis engine: it walks gIR programs and reports Findings for source-to-sink dataflows described by a rules.RuleSet, alongside two non-dataflow passes (dangerous-call and secrets). |
|
buildpolicy
Package buildpolicy centralizes one security-sensitive decision: whether Godzilla may execute a SCANNED project's own build tooling — Maven/Gradle for Java, Cargo for Rust.
|
Package buildpolicy centralizes one security-sensitive decision: whether Godzilla may execute a SCANNED project's own build tooling — Maven/Gradle for Java, Cargo for Rust. |
|
config
Package config loads a per-project .godzilla.yaml so a repository can carry its scan policy in version control (CI-5): the gate threshold, path include/exclude filters (e.g.
|
Package config loads a per-project .godzilla.yaml so a repository can carry its scan policy in version control (CI-5): the gate threshold, path include/exclude filters (e.g. |
|
irwalk
Package irwalk provides the nil-guarded gIR traversal iterators shared by the analysis passes, the frontends' whole-program rewrites, and converter tests.
|
Package irwalk provides the nil-guarded gIR traversal iterators shared by the analysis passes, the frontends' whole-program rewrites, and converter tests. |
|
llm
Package llm provides an optional, pluggable LLM-backed reviewer that adjudicates lower-confidence taint findings and discards likely false positives.
|
Package llm provides an optional, pluggable LLM-backed reviewer that adjudicates lower-confidence taint findings and discards likely false positives. |
|
memlimit
Package memlimit sets a soft heap ceiling (GOMEMLIMIT) so a large scan makes the garbage collector work harder instead of OOM-killing the process.
|
Package memlimit sets a soft heap ceiling (GOMEMLIMIT) so a large scan makes the garbage collector work harder instead of OOM-killing the process. |
|
playground
Package playground serves the gIR Playground: a local web UI that shows what a frontend lowered a project to, and what the loaded rules make of it.
|
Package playground serves the gIR Playground: a local web UI that shows what a frontend lowered a project to, and what the loaded rules make of it. |
|
proc
Package proc centralizes the timeouts for the external toolchain processes the frontends shell out to (python3, java, rustc, cargo, clang, mvn/gradle).
|
Package proc centralizes the timeouts for the external toolchain processes the frontends shell out to (python3, java, rustc, cargo, clang, mvn/gradle). |
|
report
Package report renders a slice of analysis.Finding values into a single HTML document whose only external reference is the Google Fonts stylesheet; it degrades to the system stack offline.
|
Package report renders a slice of analysis.Finding values into a single HTML document whose only external reference is the Google Fonts stylesheet; it degrades to the system stack offline. |
|
rules
Package rules defines Godzilla's rule model and matching primitives.
|
Package rules defines Godzilla's rule model and matching primitives. |
|
rules/loader
Package loader reads Godzilla taint rules from YAML files (user-supplied or built-in) into rules.RuleSet values.
|
Package loader reads Godzilla taint rules from YAML files (user-supplied or built-in) into rules.RuleSet values. |
|
ruletest
Package ruletest runs a directory of vulnerable sample projects against a rule set and checks each against a hand-written expected.yaml, giving rule authors a `godzilla rules test <dir>` workflow (CI-7) without cloning the repo or running `go test`.
|
Package ruletest runs a directory of vulnerable sample projects against a rule set and checks each against a hand-written expected.yaml, giving rule authors a `godzilla rules test <dir>` workflow (CI-7) without cloning the repo or running `go test`. |
|
scan
Package scan is the importable scan pipeline shared by the CLI and the test corpus.
|
Package scan is the importable scan pipeline shared by the CLI and the test corpus. |
|
scaninfo
Package scaninfo carries the scan telemetry behind the HTML report's diagnostics panel: internal/scan fills it, internal/report renders it, and the CLI passes it across without translating.
|
Package scaninfo carries the scan telemetry behind the HTML report's diagnostics panel: internal/scan fills it, internal/report renders it, and the CLI passes it across without translating. |
|
srclines
Package srclines is the shared source-file line cache used by every stage that re-reads scanned source to show or match lines: the HTML report's code snippets, the LLM reviewer's code context, and the inline godzilla:ignore sweep.
|
Package srclines is the shared source-file line cache used by every stage that re-reads scanned source to show or match lines: the HTML report's code snippets, the LLM reviewer's code context, and the inline godzilla:ignore sweep. |
|
testsupport
Package testsupport holds the small helpers shared by test packages across the repo: the toolchain-presence skip (RequireTool) and the one-rule RuleSet builder (OneRuleSet).
|
Package testsupport holds the small helpers shared by test packages across the repo: the toolchain-presence skip (RequireTool) and the one-rule RuleSet builder (OneRuleSet). |
|
triage
Package triage applies deterministic, user-directed suppression to findings AFTER analysis: inline `godzilla:ignore` source directives and a fingerprint baseline file.
|
Package triage applies deterministic, user-directed suppression to findings AFTER analysis: inline `godzilla:ignore` source directives and a fingerprint baseline file. |
|
walkignore
Package walkignore is the one shared policy for which directories and files a source scan prunes: skip VCS metadata, dependency/vendor trees, virtual environments, build output and editor/tool caches, plus individual files that are too large or are obviously generated/minified bundles.
|
Package walkignore is the one shared policy for which directories and files a source scan prunes: skip VCS metadata, dependency/vendor trees, virtual environments, build output and editor/tool caches, plus individual files that are too large or are obviously generated/minified bundles. |
|
pkg
|
|
|
Package rulepacks holds Godzilla's built-in taint rule packs (the *.yaml in this directory) and embeds them into the binary so it ships with a working rule set and no external files.
|
Package rulepacks holds Godzilla's built-in taint rule packs (the *.yaml in this directory) and embeds them into the binary so it ships with a working rule set and no external files. |
|
test
|
|
|
corpus
Package corpus turns the vulnerable samples under test/{go,python,js} into first-class tests: each sample dir carries an expected.yaml declaring which rules must fire, and corpus_test.go asserts the real scan pipeline reproduces exactly that.
|
Package corpus turns the vulnerable samples under test/{go,python,js} into first-class tests: each sample dir carries an expected.yaml declaring which rules must fire, and corpus_test.go asserts the real scan pipeline reproduces exactly that. |
Click to show internal directories.
Click to hide internal directories.