Scan timing: clone 25.69s · analysis 9.68s · 36.1 MB · GitHub API rate-limit (preflight)
https://github.com/zylon-ai/private-gpt
· scanned 2026-06-05 09:58 UTC (5 days, 14 hours ago)
· 10 languages
675 raw signals (243 security + 432 graph) 11/13 scanners ran 77th percentile · Python · large (100-500K LoC) System graph score 74 (higher by 10)
Last scanned 5 days, 14 hours ago · v2 · 280 actionable findings from 2 signal sources. 159 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 |
60.0 | 0.15 | 9.00 |
security_score |
100.0 | 0.25 | 25.00 |
testing_score |
90.0 | 0.20 | 18.00 |
documentation_score |
86.0 | 0.15 | 12.90 |
practices_score |
85.0 | 0.15 | 12.75 |
code_quality |
61.0 | 0.10 | 6.10 |
| Overall | 1.00 | 83.8 |
Showing 212 of 280 actionable findings. 439 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.
private_gpt/components/readers/nodes/v2/document_node_v2.py:45
private_gpt/chat/input_models.py:58private_gpt/components/ingest/ingest_helper.py:57private_gpt/components/readers/text/email_reader.py:132private_gpt/components/tabular/database_query_generator.py:1066private_gpt/components/vector_store/patched_qdrant_store.py:802private_gpt/components/web/web_search/processors/select_best_links.py:153private_gpt/server/chat/interceptors/condensation_interceptor.py:113private_gpt/components/readers/nodes/v2/document_node_v2.py:45
Dockerfile:127, 128, 129, 214, 215 (5 hits).github/workflows/post-release-please.yml:23, 51 (2 hits)private_gpt/celery/tasks/ingestion/extraction_tasks.py:121private_gpt/cli/commands/worker.py:150private_gpt/server/chat/interceptors/condensation_interceptor.py:191private_gpt/components/workflows/others/summary.py:213
private_gpt/components/sandbox/local.py:35
scripts/ingest_folder.py:53, 56, 60, 61, 75 (5 hits)private_gpt/global_handler.py:41private_gpt/server/chat_async/chat_async_router.py:618
private_gpt/server/skills/skill_router.py:270
private_gpt/server/skills/skill_router.py:539
private_gpt/server/chat_async/chat_async_router.py:197
private_gpt/server/skills/skill_router.py:84
private_gpt/server/content/content_router.py:523
private_gpt/server/completion/completion_router.py:23
private_gpt/server/content/content_router.py:333
private_gpt/server/ingest/ingest_router.py:896
private_gpt/server/ingest/ingest_router.py:945
private_gpt/server/embeddings/embeddings_router.py:283
private_gpt/server/ingest/ingest_router.py:412
private_gpt/server/ingest/ingest_router.py:564
private_gpt/server/chat/chat_router.py:222
private_gpt/server/chat/chat_router.py:274
private_gpt/server/chat/chat_router.py:388
private_gpt/server/primitives/primitives_router.py:304
private_gpt/server/tools/tool_router.py:429
private_gpt/server/tools/tool_router.py:211
private_gpt/server/tools/tool_router.py:320
private_gpt/server/tools/tool_router.py:515
private_gpt/server/tools/tool_router.py:610
private_gpt/server/chat_async/chat_async_router.py:556
private_gpt/server/skills/skill_router.py:345
Dockerfile:2
private_gpt/components/code_execution/local.py:134
.github/workflows/generate-release.yml:30, 61, 98, 101, 106, 175, 225, 228, +1 more (18 hits).github/workflows/preview-docs.yml:20, 25, 44 (6 hits).github/workflows/tests.yml:33, 42, 49, 55 (6 hits).github/workflows/fern-check.yml:15, 18 (4 hits).github/workflows/post-release-please.yml:20, 48 (4 hits).github/workflows/publish-docs.yml:15, 18 (4 hits).github/workflows/update-claude-specs.yml:16private_gpt/components/concurrency/redis_semaphore_manager.py:90
Eval used
private_gpt/components/llm/custom/sagemaker.py:336
Eval used
private_gpt/components/storage/s3_helper.py:48
Tls verify false
private_gpt/components/streaming/stream/stream_processor.py:113
private_gpt/components/sandbox/local.py:35
private_gpt/components/readers/nodes/v2/document_node_v2.py:45
private_gpt/initialize.py:55
private_gpt/components/storage/s3_helper.py:48
private_gpt/cli/commands/run.py:106private_gpt/components/database/table_like_inspector.py:92private_gpt/components/engines/citations/term_extractor.py:57private_gpt/launcher.py:1
private_gpt/components/database/procedure_inspector.py:117, 205, 285 (3 hits)private_gpt/components/tabular/database_query_generator.py:280, 299, 1199 (3 hits)private_gpt/cli/commands/run.py:40, 114 (2 hits)private_gpt/components/database/function_inspector.py:118, 206 (2 hits)private_gpt/components/web/web_scraper_service.py:330, 375 (2 hits)private_gpt/components/llm/utils.py:17private_gpt/components/tools/binary_block_decorators.py:166private_gpt/events/interceptors/ping_event_interceptor.py:31Dockerfile:119, 120 (2 hits)Dockerfile:174
CI/CD securitycontainers
.well-known/security.txt
README.md:65fern/docs/pages/getting-started/quickstart.mdx:18fern/docs/pages/installation/local.mdx:31.github/workflows/generate-release.yml:164, 178, 181, 184, 191, 203 (7 hits).github/workflows/actions/install_dependencies/action.yml:31.github/workflows/release-please.yml:16.github/workflows/generate-release.yml.github/workflows/post-release-please.yml.github/workflows/release-please.yml.github/workflows/update-claude-specs.ymlprivate_gpt/components/sandbox/local.py:37
Subprocess shell true
.dockerignore
CI/CD securitycontainers
Dockerfile:133, 206 (2 hits)private_gpt/components/llm/tokenizers/tiktoken.py:65, 66 (2 hits)private_gpt/components/tools/tool_factories.py:38, 71 (2 hits)private_gpt/server/chat_async/chat_async_router.py:31, 110 (2 hits)private_gpt/components/concurrency/redis_semaphore_manager.py:81private_gpt/components/database/procedure_inspector.py:34private_gpt/components/llm/registry.py:60private_gpt/components/llm/tokenizers/mistral.py:437private_gpt/components/llm/tokenizers/remote.py:67Dockerfile:2
containersPinned dependencies
repo-level (16 hits)repo-level (3 hits)private_gpt/components/engines/citations/utils.py:53
private_gpt/components/engines/citations/term_extractor.py:45
private_gpt/utils/eta.py:38
private_gpt/launcher.py:169
private_gpt/celery/notify.py:78
scripts/ingest_folder.py:73
private_gpt/components/engines/chat_loop/utils/message_utils.py:4
private_gpt/settings/yaml.py:22
private_gpt/celery/backend_config.py:38
private_gpt/celery/broker_config.py:53
private_gpt/initialize.py:113
private_gpt/components/concurrency/registry.py:63
private_gpt/celery/task_registry.py:6
private_gpt/global_handler.py:67
private_gpt/utils/retry.py:51
private_gpt/cli/commands/run.py:269
private_gpt/utils/async_utils.py:55
private_gpt/global_handler.py:34
private_gpt/cli/commands/serve.py:19
private_gpt/components/engines/citations/utils.py:180
private_gpt/celery/notify.py:100
private_gpt/celery/callback.py:95
private_gpt/utils/time.py:19
private_gpt/utils/async_utils.py:25
private_gpt/utils/tokens.py:103
private_gpt/celery/bootsteps.py:33
private_gpt/components/engines/chat_loop/utils/message_utils.py:18
private_gpt/cli/commands/worker.py:60
This page is publicly accessible at:
https://repobility.com/scan/236a1059-41c1-4798-8b77-d160d63718b9/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/236a1059-41c1-4798-8b77-d160d63718b9/
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.