Share a KICS scan report
KICS finds the misconfiguration. It cannot find out whether you meant it.
That second part is the whole job — a public S3 bucket that is a static site, a privileged container that is a CNI plugin, an open security group someone accepted last quarter with a reason. The scanner produces the list; a person produces the verdict; and the verdict, in most pipelines, is stored nowhere.
Publish it
kics scan -p . --report-formats html -o ./kics-out || true
curl -fsS -X PATCH \
"https://commareports.com/api/v1/reports/$COMMA_REPORT_ID" \
-H "Authorization: Bearer $COMMA_API_TOKEN" \
-H "Content-Type: application/json" \
-d "$(jq -n --rawfile html ./kics-out/results.html \
--arg title "KICS — $STACK — $(date +%F)" \
'{title: $title, html: $html}')"
|| true because KICS exits non-zero on HIGH severity results, and that
is the run you most want published rather than swallowed by a failed job.
PATCH on a per-stack report id gives you one URL with a revision per
scan. Use a scoped token with reports:write only,
and keep the report private or team-visible — see the
sharing model.
What the URL changes
- Verdicts stick to findings. "Accepted — this bucket is the docs site, tracked in INFRA-88" pinned to the query result, still there next scan. See commenting on HTML.
- Scan-over-scan diffs. Which queries are new since the last apply, which the hardening PR actually cleared.
- Auditors read a link. No CI access, no pipeline permissions.
- Scheduled rescans. A routine re-scans on a cron, so drift from a console change shows up without anyone pushing code.
Limits
- HTML body: 5 MB. A large monorepo scan can exceed it; scan per
stack, or filter with
--severity HIGH,MEDIUMfor the published view and attach the full JSON as an asset. - Scripts run, sandboxed:
allow-scripts, noallow-same-origin. - 60 requests/minute per token.
Try it
Comma is free — unlimited reports, unlimited commenters, unlimited revision history.
Related
- Terraform plans — the change, not the config
- Checkov · Trivy — neighbouring scanners
- Compliance digests · Publish from CI