Public scan — anyone with this URL can view this analysis. Sign up to track your own repos privately, run scheduled re-scans, and get AI fix prompts via your dashboard.

SPB-AI-Data-Science-Club/sentiment-analyzer

https://github.com/SPB-AI-Data-Science-Club/sentiment-analyzer · scanned 2026-06-16 02:57 UTC (2 months ago)

16 raw signals (0 security + 16 graph)

UNIFIED Repobility · multi-layer engine · AI coders

Complete repo analysis

Last scanned 2 months ago · v2 · 16 actionable findings from 1 signal source. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.

JSON
Severity distribution — click a segment to filter
Active filters: excluding tests × Reset all
Corpus Intelligence Cross-corpus context (cohort percentile, top patterns, fix plan) is shown only on repositories you own. Sign up and connect your repo to view it.
Scan summary Repository scanned at 67.9/100 with 88.9% coverage. It contains 21 nodes across 5 cross-layer flows, written primarily in mixed languages. Engine surfaced 16 findings — concentrated in security (5), api (5), quality (4). Risk profile is high: 0 critical, 4 high, 2 medium. Recommended next step: open the security layer findings first — that's where the highest-impact wins live.

Showing 14 of 16 actionable findings. Click TP / FP to vote on a finding's accuracy — votes adjust the confidence weighting and improve detection across the platform.

high System graph security auth conf 1.00 Flask mutation route `analyze` without `@login_required` — app.py:97
Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent.
app.py:97 securityAuth flask unauth route
high System graph security auth conf 1.00 Flask mutation route `batch_analyze` without `@login_required` — app.py:112
Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent.
app.py:112 securityAuth flask unauth route
high System graph security auth conf 1.00 Flask mutation route `stock_data` without `@login_required` — app.py:125
Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent.
app.py:125 securityAuth flask unauth route
high System graph security auth conf 1.00 Flask mutation route `stock_sentiment` without `@login_required` — app.py:176
Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent.
app.py:176 securityAuth flask unauth route
medium System graph cicd CI/CD security conf 1.00 No CI/CD pipelines detected
No GitHub Actions, GitLab CI, or CircleCI configs found. Without CI you can't gate deploys on tests/lints.
CI/CD securityCoverage
medium System graph quality Tests conf 1.00 Very low test-to-source ratio
0 test file(s) for 1 source file(s) (ratio 0.00). Consider adding integration or unit tests for critical paths.
Coverage
low System graph quality Production readiness conf 1.00 Composite production-readiness gap
Multiple low-cost hardening controls are missing together: license, ci. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation.
Repo hardeningGenerated repo pattern
low System graph security security conf 1.00 Insecure pattern 'debug_true' in app.py:236
Found a known-risky pattern (debug_true). Review and replace if possible.
app.py:236 Debug true
low System graph quality License conf 1.00 No license file detected
No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake.
Repo hardeningGenerated repo pattern
low System graph api Wiring conf 1.00 Unused endpoint: ANY /
`app.py` declares `ANY /` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /api/analyze
`app.py` declares `ANY /api/analyze` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /api/batch
`app.py` declares `ANY /api/batch` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /api/stock
`app.py` declares `ANY /api/stock` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /api/stock-sentiment
`app.py` declares `ANY /api/stock-sentiment` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
For AI agents: Voting guide (TP/FP) MCP manifest Stdio wrapper SARIF Integrate Findings queue Vote TP/FP on findings to calibrate the engine.
For AI agents + API integrations
Email me when this repo regresses
Free. We re-scan periodically; new criticals → your inbox. No signup required for the scan itself.
API access

This page is publicly accessible at: https://repobility.com/scan/08d1ad28-2f85-4329-ba1d-a01d9b5d7836/

To check status programmatically (no auth required):

curl -s https://repobility.com/api/v1/public/scan/08d1ad28-2f85-4329-ba1d-a01d9b5d7836/

Important — please don't re-submit the same URL repeatedly. The submission endpoint is idempotent: re-submitting the same git URL returns this same scan_token, not a new one. To re-scan this repo, sign up free and use the dashboard.