1.1 — webhooks, scans, PR comments.
Inbound webhooks trigger pipelines on push and pull-request events. Trivy and Semgrep output is parsed into structured findings. AI review and scan results post back to the originating PR as a single comment.
- addedWebhook handler at
/api/v1/webhook/:providerfor GitHubpush/pull_requestand GitLab Push / MR hooks. - addedHMAC-SHA256 verification for GitHub (
X-Hub-Signature-256) and constant-time token compare for GitLab (X-Gitlab-Token). - addedPR/MR comment poster — stdlib-only HTTP, retry-with-exponential-backoff on 5xx and network failures, fast-fail on 4xx.
- addedTrivy and Semgrep JSON parsed into
SecurityScanResultwith severity counts and per-finding cards. - addedAI review wired into the post-build step — appears as an expandable job card and posts to PRs for pull-request builds.
- fixedPipeline fallback no longer hardcodes JavaScript — projects without a Callahanfile auto-detect Go, Python, Rust, Java, or Ruby from cloned files.
- fixedTrivy parser tolerates progress logs on stdout —
CombinedOutputwas eating findings. - fixedLLM test endpoint now receives provider/model/key from the UI — was posting an empty body and always returning "No provider selected".