Skip to content

Add HTML report output: multi-project pages and --format html for CLI#6

Merged
BjornvdLaan merged 4 commits intomainfrom
claude/scan-results-to-html-6V9Lg
Apr 24, 2026
Merged

Add HTML report output: multi-project pages and --format html for CLI#6
BjornvdLaan merged 4 commits intomainfrom
claude/scan-results-to-html-6V9Lg

Conversation

@BjornvdLaan
Copy link
Copy Markdown
Contributor

  • scripts/html-report.sh: takes aggregated JSON + per-project JSONs and
    generates a sleek self-contained HTML report — index.html with stat
    cards, compliance grid, algorithm bar chart, and a projects table
    linking to per-project detail pages with findings and snippet expand.

  • scripts/scan-all.sh: add --groundstate-url / --groundstate-token flags;
    each completed project JSON is POSTed to the Groundstate server via curl.

  • scripts/run.sh: add --html / --html-dir flags that trigger html-report.sh
    after aggregation; pass groundstate flags through to scan-all.sh.

  • pkg/report/html/renderer.go: self-contained Go HTML renderer (no JS
    framework, no external deps) for single-scan output. Groups findings by
    file, shows compliance badges, algorithm bar chart, collapsible snippets,
    and a severity filter bar — same design language as the multi-project report.

  • cmd/observer/main.go, cmd/action/main.go: wire --format html | output-format
    html into the existing json|sarif switch.

  • action.yml: document html as a valid output-format value.

https://claude.ai/code/session_01VKJhpMHJcrENToF3GWZsqP

claude added 4 commits April 24, 2026 06:10
- scripts/html-report.sh: takes aggregated JSON + per-project JSONs and
  generates a sleek self-contained HTML report — index.html with stat
  cards, compliance grid, algorithm bar chart, and a projects table
  linking to per-project detail pages with findings and snippet expand.

- scripts/scan-all.sh: add --groundstate-url / --groundstate-token flags;
  each completed project JSON is POSTed to the Groundstate server via curl.

- scripts/run.sh: add --html / --html-dir flags that trigger html-report.sh
  after aggregation; pass groundstate flags through to scan-all.sh.

- pkg/report/html/renderer.go: self-contained Go HTML renderer (no JS
  framework, no external deps) for single-scan output. Groups findings by
  file, shows compliance badges, algorithm bar chart, collapsible snippets,
  and a severity filter bar — same design language as the multi-project report.

- cmd/observer/main.go, cmd/action/main.go: wire --format html | output-format
  html into the existing json|sarif switch.

- action.yml: document html as a valid output-format value.

https://claude.ai/code/session_01VKJhpMHJcrENToF3GWZsqP
- cmd/observer/README.md: full standalone CLI reference — all flags,
  all three output formats (JSON/SARIF/HTML), rules layering, suppressions,
  Groundstate integration, exit codes.

- plugins/gradle/README.md: Gradle plugin reference — extension DSL with
  all properties, output formats, Groundstate, custom rules (local + remote),
  multi-module projects, binary caching, CI example.

- scripts/README.md: bulk-scan scripts reference — run.sh orchestrator,
  scan-all.sh (targets.yaml format, Groundstate posting), aggregate.sh
  (combined JSON schema), html-report.sh, CI example.

- README.md: add HTML to the output formats table, add HTML format section,
  add "More documentation" table linking to the new sub-READMEs.

https://claude.ai/code/session_01VKJhpMHJcrENToF3GWZsqP
scan-all.sh now runs the full pipeline itself:
  1. build/locate observer binary
  2. clone + scan each target
  3. call aggregate.sh → combined JSON + markdown
  4. call html-report.sh → index.html + per-project pages

HTML is always generated (no --html flag needed; --html is kept as a
no-op for backwards compat). Added --out and --html-dir flags.
Added --help, banner, and final summary block listing all output paths.

run.sh reduced to a one-liner shim (exec scan-all.sh "$@") so existing
scripts and CI configs that reference it continue to work.

scripts/README.md updated to reflect scan-all.sh as the entry point,
with aggregate.sh and html-report.sh documented as standalone tools
for re-generating reports from existing JSON.

https://claude.ai/code/session_01VKJhpMHJcrENToF3GWZsqP
run.sh was a one-liner shim with no purpose once scan-all.sh became
the orchestrator. Deleted the file and removed the reference from
scripts/README.md.

https://claude.ai/code/session_01VKJhpMHJcrENToF3GWZsqP
@BjornvdLaan BjornvdLaan merged commit 1f89c55 into main Apr 24, 2026
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants