Scan timing: clone 1.27s · analysis 6.44s · 0.1 MB · GitHub API rate-limit (preflight)
https://github.com/indmdev/Free-Telegram-Store-Bot
· scanned 2026-06-05 14:00 UTC (5 days, 7 hours ago)
· 10 languages
144 raw signals (48 security + 96 graph) 12th percentile · Python · small (2-20K LoC) System graph score 92 (lower by 41)
Last scanned 5 days, 7 hours ago · v2 · 65 actionable findings from 2 signal sources. 31 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 |
40.0 | 0.15 | 6.00 |
security_score |
75.7 | 0.25 | 18.93 |
testing_score |
0.0 | 0.20 | 0.00 |
documentation_score |
84.0 | 0.15 | 12.60 |
practices_score |
42.0 | 0.15 | 6.30 |
code_quality |
69.0 | 0.10 | 6.90 |
| Overall | 1.00 | 50.7 |
All 189 nodes from the latest scan, grouped by kind. Each node is a unit the engine identified (file, function, endpoint, table…). Most users won't need this view — it's primarily for debugging the engine's graph extraction or for AI agents that want to enumerate the project structure.
| Label | Layer | Status | Path |
|---|---|---|---|
get_category_products |
software | healthy | InDMCategories.py:19 |
checkint |
software | healthy | InDMCategories.py:31 |
validate_config |
software | healthy | config.py:70 |
get_db_url |
software | healthy | config.py:86 |
get_log_config |
software | healthy | config.py:91 |
get_headers |
software | healthy | config.py:116 |
is_safe_filename |
software | healthy | config.py:156 |
validate_user_id |
software | healthy | utils.py:15 |
validate_username |
software | healthy | utils.py:26 |
validate_product_number |
software | healthy | utils.py:40 |
validate_price |
software | healthy | utils.py:51 |
validate_quantity |
software | healthy | utils.py:62 |
sanitize_text |
software | healthy | utils.py:73 |
is_valid_url |
software | healthy | utils.py:90 |
sanitize_sql_input |
software | healthy | utils.py:107 |
handle_database_error |
software | healthy | utils.py:125 |
handle_api_error |
software | healthy | utils.py:131 |
handle_user_error |
software | healthy | utils.py:137 |
format_product_info |
software | healthy | utils.py:146 |
format_order_info |
software | healthy | utils.py:159 |
format_error_message |
software | healthy | utils.py:172 |
__init__ |
software | healthy | utils.py:181 |
get |
software | healthy | utils.py:184 |
set |
software | dead | utils.py:188 |
is_expired |
software | dead | utils.py:196 |
clear_expired |
software | dead | utils.py:203 |
shop_items |
software | healthy | purchase.py:26 |
callback_query |
software | dead | purchase.py:52 |
purchase_a_products |
software | healthy | purchase.py:58 |
checkint |
software | healthy | purchase.py:62 |
orderdata |
software | healthy | purchase.py:82 |
webhook |
software | healthy | store_main.py:72 |
get_payment_api_key |
software | healthy | store_main.py:88 |
create_main_keyboard |
software | healthy | store_main.py:102 |
callback_query |
software | healthy | store_main.py:119 |
is_product_command |
software | healthy | store_main.py:139 |
products_get |
software | healthy | store_main.py:148 |
send_welcome |
software | healthy | store_main.py:158 |
admin_switch_user |
software | healthy | store_main.py:241 |
ManageProducts |
software | healthy | store_main.py:274 |
AddProductsMNG |
software | healthy | store_main.py:298 |
add_a_product_name |
software | dead | store_main.py:319 |
add_a_product_decription |
software | dead | store_main.py:341 |
add_a_product_price |
software | dead | store_main.py:363 |
add_a_product_photo_link |
software | dead | store_main.py:385 |
add_a_product_category |
software | dead | store_main.py:417 |
checkint |
software | healthy | store_main.py:1051 |
add_a_product_keys_file |
software | dead | store_main.py:465 |
add_a_product_download_link |
software | dead | store_main.py:515 |
DeleteProductsMNG |
software | healthy | store_main.py:550 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
CategoriesDatas |
software | healthy | InDMCategories.py:18 |
BotConfig |
software | healthy | config.py:12 |
APIConfig |
software | healthy | config.py:100 |
SecurityConfig |
software | healthy | config.py:128 |
InputValidator |
software | healthy | utils.py:11 |
SecurityUtils |
software | healthy | utils.py:86 |
ErrorHandler |
software | healthy | utils.py:121 |
MessageFormatter |
software | healthy | utils.py:142 |
CacheManager |
software | healthy | utils.py:178 |
UserOperations |
software | healthy | purchase.py:25 |
CreateTables |
software | healthy | InDMDevDB.py:17 |
CreateDatas |
software | healthy | InDMDevDB.py:111 |
GetDataFromDB |
software | healthy | InDMDevDB.py:353 |
CleanData |
software | healthy | InDMDevDB.py:813 |
| Label | Layer | Status | Path |
|---|---|---|---|
InDMCategories.py |
software | healthy | InDMCategories.py |
README.md |
software | healthy | README.md |
config.py |
software | healthy | config.py |
utils.py |
software | healthy | utils.py |
purchase.py |
software | healthy | purchase.py |
store_main.py |
software | healthy | store_main.py |
requirements.txt |
software | healthy | requirements.txt |
InDMDevDB.py |
software | healthy | InDMDevDB.py |
| Label | Layer | Status | Path |
|---|---|---|---|
ShopUserTable |
data | healthy | InDMDevDB.py |
ShopAdminTable |
data | healthy | InDMDevDB.py |
ShopProductTable |
data | healthy | InDMDevDB.py |
ShopOrderTable |
data | healthy | InDMDevDB.py |
ShopCategoryTable |
data | healthy | InDMDevDB.py |
PaymentMethodTable |
data | healthy | InDMDevDB.py |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-j00ncoi2 |
software | healthy | /tmp/repobility-clone-j00ncoi2 |
| Label | Layer | Status | Path |
|---|---|---|---|
ANY / |
api | healthy | store_main.py |
| Label | Layer | Status | Path |
|---|---|---|---|
sqlite |
data | healthy | config.py |
| Label | Layer | Status | Path |
|---|---|---|---|
port:5000 |
network | healthy | store_main.py |
This page is publicly accessible at:
https://repobility.com/scan/65df4b6b-94ac-4ace-960a-880d5b0966b9/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/65df4b6b-94ac-4ace-960a-880d5b0966b9/
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.