Scan timing: clone 4.31s · analysis 4.22s · 28.5 MB · GitHub API rate-limit (preflight)
https://github.com/RatLoopz/sahidawa-india
· scanned 2026-06-05 16:47 UTC (4 days, 23 hours ago)
· 10 languages
675 raw signals (221 security + 454 graph) 11/13 scanners ran 99th percentile · Typescript · medium (20-100K LoC) System graph score 53 (higher by 40)
Last scanned 4 days, 23 hours ago · v2 · 265 actionable findings from 2 signal sources. 179 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
| Component | Sub-score | Weight | Contribution |
|---|---|---|---|
structure_score |
85.0 | 0.15 | 12.75 |
security_score |
100.0 | 0.25 | 25.00 |
testing_score |
95.0 | 0.20 | 19.00 |
documentation_score |
92.0 | 0.15 | 13.80 |
practices_score |
98.0 | 0.15 | 14.70 |
code_quality |
72.0 | 0.10 | 7.20 |
| Overall | 1.00 | 92.5 |
Showing 214 of 265 actionable findings. 444 raw detector signals were grouped into reader-sized issues. Click TP / FP to vote on a finding's accuracy — votes adjust the confidence weighting and improve detection across the platform.
apps/web/scripts/voice-a11y-audit.mjs:84
src/services/advanced_cache_manager.py:99src/services/distributed_lock_manager.py:99src/services/distributed_lock_manager_4.py:99apps/ml/routers/analyze.py:90
src/services/advanced_cache_manager.py:99src/services/distributed_lock_manager.py:99src/services/distributed_lock_manager_4.py:99apps/ml/routers/asr.py:458, 464, 511, 513, 517, 569, 601, 655, +7 more (15 hits)apps/ml/scrapers/commercial_mrp.py:219, 225, 237, 258, 304, 309 (6 hits)apps/ml/routers/analyze.py:129
apps/ml/routers/verify.py:40
apps/ml/routers/ocr.py:17
apps/ml/routers/tts.py:199
apps/ml/routers/ocr.py:72
apps/ml/routers/asr.py:723
apps/api/src/routes/admin.routes.ts:16
apps/api/src/routes/verify.ts:134
apps/api/src/routes/pharmacies.ts:85
apps/api/src/routes/ml.ts:21
apps/api/src/routes/lasa.ts:14
apps/api/src/routes/scan.ts:203
apps/api/src/routes/scan.ts:649
apps/api/src/routes/admin.routes.ts:18
apps/api/src/routes/batch.ts:307
apps/api/src/routes/scan.ts:720
apps/api/Dockerfile:4, 39 (2 hits)apps/ml/Dockerfile:4, 25 (2 hits)apps/web/Dockerfile:4, 41 (2 hits)apps/ml/services/router_loader.py:19
docker-compose.yml:65
CI/CD securitycontainers
.github/workflows/test.yml:18, 21, 40, 43 (8 hits).github/workflows/devtrack.yml:34, 41, 174 (4 hits).github/workflows/linkedin-shoutout.yml:54, 60, 79, 154 (4 hits).github/workflows/welcome-onboarding.yml:20, 24 (4 hits).github/workflows/labeler.yml:20, 30, 59 (3 hits).github/workflows/anti-ping-spam.yml:23 (2 hits).github/workflows/auto-assign.yml:30 (2 hits).github/workflows/auto-unassign.yml:19 (2 hits).github/workflows/codeql.yml:31, 36, 39 (6 hits).github/workflows/pr-quality-check.yml:26 (2 hits).github/workflows/release-drafter.yml:19 (2 hits)apps/web/app/[locale]/login/page.tsx:188
apps/ml/routers/analyze.py:128
securityAuth fastapi unauth mutation
apps/ml/routers/ocr.py:16
securityAuth fastapi unauth mutation
apps/ml/routers/tts.py:198
securityAuth fastapi unauth mutation
apps/ml/routers/ocr.py:71
securityAuth fastapi unauth mutation
apps/ml/routers/asr.py:722
securityAuth fastapi unauth mutation
apps/ml/routers/verify.py:39
securityAuth fastapi unauth mutation
apps/api/src/routes/reports.ts:137
apps/api/src/app.ts:140
apps/api/src/routes/admin.routes.ts:19
apps/api/src/routes/admin.routes.ts:17
apps/api/src/routes/reports.ts:109
apps/api/src/routes/notifications.ts:66
apps/api/src/routes/admin.routes.ts:15
apps/api/src/routes/admin.routes.ts:16
apps/api/src/routes/admin.routes.ts:18
apps/api/src/routes/notifications.ts:70
apps/api/src/routes/notifications.ts:51
apps/api/src/app.ts:91
apps/web/app/api/chat/route.ts:145
apps/api/src/routes/scan.ts:203
apps/web/app/api/overpass/route.ts:11
apps/web/app/api/upload/route.ts:6
apps/web/app/api/voice/transcribe/route.ts:20
apps/web/app/api/voice/tts/route.ts:22
apps/ml/services/telemetry.py:35
apps/ml/routers/verify.py:73
apps/web/components/ServiceWorkerProvider.tsx:29
apps/web/app/[locale]/layout.tsx:99
src/services/advanced_cache_manager.py:99
apps/etl/src/scrapers/jan_aushadhi.py:33
scripts/linkedin_shoutout.py:206, 285 (2 hits)apps/etl/src/scrapers/jan_aushadhi.py:153apps/ml/routers/verify.py:18apps/ml/scrapers/commercial_mrp.py:321apps/ml/services/telemetry.py:94apps/web/src/components/AuthSync.tsx:22, 33 (2 hits)apps/web/app/[locale]/admin/analytics/page.tsx:54apps/web/app/[locale]/admin/dashboard/page.tsx:68apps/web/app/[locale]/profile/page.tsx:95apps/web/app/[locale]/reports/me/page.tsx:46apps/web/components/alerts/RecallPushSubscriber.tsx:63docker-compose.yml:65
CI/CD securitycontainers
apps/api/Dockerfile:20, 31 (2 hits)apps/web/Dockerfile:21, 32 (2 hits)apps/ml/Dockerfile:51apps/api/src/app.ts:131, 138, 196, 197, 198, 199, 200, 201, +5 more (13 hits)apps/api/src/routes/batch.ts:119, 136 (2 hits)apps/web/src/components/MedicineSearchSelect.tsx:52
apps/web/app/[locale]/voice/page.tsx:1223
.well-known/security.txt
.github/workflows/release-drafter.yml
CI/CD securitySupply chainGithub actions
.github/workflows/devtrack.yml
CI/CD securitySupply chainGithub actions
apps/web/app/[locale]/layout.tsx:91
Dangerous innerhtml
.dockerignore
CI/CD securitycontainers
docker-compose.yml:28
CI/CD securitycontainers
docker-compose.yml:53
CI/CD securitycontainers
docker-compose.yml:1, 28, 53 (3 hits)docker-compose.yml:65
CI/CD securitycontainers
src/services/user_auth_dashboard.py:4, 29 (2 hits)src/services/user_notifications.py:4, 29 (2 hits)src/services/user_notifications_8.py:4, 29 (2 hits)apps/api/src/routes/verify.ts:67apps/web/app/[locale]/page.tsx:27apps/web/app/api/overpass/route.ts:25apps/web/app/api/voice/tts/route.ts:7apps/web/public/workers/imageEnhancer.worker.js:5llms.txt
humans.txt
apps/api/Dockerfile:4, 39 (2 hits)apps/web/Dockerfile:4, 41 (2 hits)apps/ml/Dockerfile:4, 25 (2 hits)repo-level (5 hits)repo-level (5 hits)repo-level (3 hits)package.json
CI/CD securitySupply chainNpm
apps/etl/src/scrapers/commercial_medicine.py:68
apps/etl/src/scrapers/commercial_medicine.py:78
apps/etl/src/scrapers/commercial_medicine.py:135
src/services/advanced_cache_manager.py:175src/services/distributed_lock_manager.py:175src/services/distributed_lock_manager_4.py:175src/services/distributed_lock_manager_5.py:175src/services/user_auth_dashboard.py:175src/services/user_notifications.py:175src/services/user_notifications_8.py:175src/services/advanced_cache_manager.py:122src/services/distributed_lock_manager.py:122src/services/distributed_lock_manager_4.py:122src/services/distributed_lock_manager_5.py:122src/services/user_auth_dashboard.py:122src/services/user_notifications.py:122src/services/user_notifications_8.py:122src/services/advanced_cache_manager.py:201src/services/distributed_lock_manager.py:201src/services/distributed_lock_manager_4.py:201src/services/distributed_lock_manager_5.py:201src/services/user_auth_dashboard.py:201src/services/user_notifications_8.py:201
This page is publicly accessible at:
https://repobility.com/scan/4c48c577-63cb-4638-9527-779d7e52f1c2/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/4c48c577-63cb-4638-9527-779d7e52f1c2/
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.