Move #[allow(clippy::too_many_arguments)] to module level so it
propagates through Dioxus #[server] macro expansion. Upgrade CI
container from rust:1.89 to rust:1.94 to match local toolchain.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace expect() calls with let-else returns in SBOM download, use
strip_prefix() instead of manual slicing in extract_base_url, and
suppress too_many_arguments on server function.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Auto-generate webhook_secret on repository creation (UUID-based)
- Webhook routes use per-repo URLs: /webhook/{platform}/{repo_id}
- Verify signatures using per-repo secret (not global env var)
- Dashboard proxies webhooks to agent (agent not exposed publicly)
- Edit modal shows webhook URL + secret for user to copy into Gitea
- Add webhook-config API endpoint to retrieve per-repo secret
- Add Gitea option to edit dialog tracker type dropdown
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
On PR open/sync, webhook triggers incremental scan: runs semgrep on
changed files + LLM code review on the diff, then posts review comments
via the configured tracker. Adds Gitea webhook handler with HMAC-SHA256
verification, and wires up the previously stubbed GitHub/GitLab PR
handlers.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Gitea API expects label IDs (integers), not names. Append label names
to the issue body instead. Also lower "Parsing file" log from info to
debug to reduce noise.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
After scan findings are persisted, Stage 6 now creates issues in the
configured tracker (GitHub/GitLab/Gitea/Jira) for new findings with
severity >= Medium. Includes fingerprint-based dedup, per-repo token
fallback to global config, and formatted markdown issue bodies.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add ability to configure issue tracker (GitHub, GitLab, Gitea, Jira) per
repository at creation time and edit later via PATCH endpoint. Includes
new Gitea tracker implementation, edit modal in dashboard, and
tracker_token field on the repository model.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>