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.
66 of your 70 findings came from Repobility's proprietary detections. ✓ Repobility tags below mark them.

Scan timing: clone 1.59s · analysis 3.39s · 0.6 MB · GitHub API rate-limit (preflight)

signalbot-org/signalbot

https://github.com/signalbot-org/signalbot · scanned 2026-06-05 18:28 UTC (4 days, 19 hours ago) · 10 languages

151 raw signals (69 security + 82 graph) 94th percentile · Python · small (2-20K LoC)

UNIFIED Repobility · multi-layer engine · AI coders

Complete repo analysis

Last scanned 4 days, 19 hours ago · v2 · 41 actionable findings from 2 signal sources. 44 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.

JSON
Score breakdown â 2026-05-18-v5
Component Sub-score Weight Contribution
structure_score 100.0 0.15 15.00
security_score 98.8 0.25 24.70
testing_score 87.0 0.20 17.40
documentation_score 66.0 0.15 9.90
practices_score 75.0 0.15 11.25
code_quality 80.0 0.10 8.00
Overall 1.00 86.2
Severity distribution — click a segment to filter
Active filters: excluding tests × Reset all

All 455 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.

LabelLayerStatusPath
_make_mock_redis_module software healthy tests/test_storage.py:11
test_init_without_password software healthy tests/test_storage.py:19
test_init_with_password software healthy tests/test_storage.py:28
setup software healthy tests/test_bot.py:278
test_produce software healthy tests/test_bot.py:37
test_null_group software healthy tests/test_bot.py:81
test_get_group software healthy tests/test_bot.py:85
__init__ software healthy tests/test_bot.py:275
handle software healthy tests/test_bot.py:281
test_connection_mode_defaults_to_auto software healthy tests/test_bot.py:139
test_connection_mode_can_be_set_to_http_only software healthy tests/test_bot.py:151
test_connection_mode_can_be_set_to_https_only software healthy tests/test_bot.py:164
test_new_version_is_okay software healthy tests/test_bot.py:180
test_unset_version software healthy tests/test_bot.py:193
test_old_version_raises_runtime_error software healthy tests/test_bot.py:203
test_invalid_version software healthy tests/test_bot.py:218
test_valid_username software healthy tests/test_bot.py:231
test_invalid_username software healthy tests/test_bot.py:243
test_register_one_command software healthy tests/test_bot.py:263
test_register_three_commands software healthy tests/test_bot.py:267
test_register_calls_setup_of_command software healthy tests/test_bot.py:273
test_register_single_contact software healthy tests/test_bot.py:291
test_register_multiple_contacts software healthy tests/test_bot.py:298
test_register_multiple_contacts_multiple_commands software healthy tests/test_bot.py:311
test_poll_with_phone_number software healthy tests/test_bot.py:326
test_poll_with_group_id software healthy tests/test_bot.py:347
test_poll_with_multiple_selections software healthy tests/test_bot.py:371
setup software healthy tests/test_message.py:33
test_parse_source_own_message software healthy tests/test_message.py:41
test_parse_timestamp_own_message software healthy tests/test_message.py:45
test_parse_type_own_message software healthy tests/test_message.py:49
test_parse_text_own_message software healthy tests/test_message.py:53
test_parse_group_own_message software healthy tests/test_message.py:57
test_parse_source_foreign_message software healthy tests/test_message.py:63
test_parse_timestamp_foreign_message software healthy tests/test_message.py:67
test_parse_type_foreign_message software healthy tests/test_message.py:71
test_parse_text_foreign_message software healthy tests/test_message.py:75
test_parse_group_foreign_message software healthy tests/test_message.py:79
test_read_reaction software healthy tests/test_message.py:83
test_group_update software healthy tests/test_message.py:90
test_attachments software healthy tests/test_message.py:96
test_parse_user_chat_message software healthy tests/test_message.py:127
test_preview_no_image software healthy tests/test_message.py:137
test_contacts_sync_message software healthy tests/test_message.py:151
test_message_read software healthy tests/test_message.py:159
setup software healthy tests/test_api.py:16
test_send software healthy tests/test_api.py:20
test_poll software healthy tests/test_api.py:39
test_receive software healthy tests/test_api.py:59
test_receive_uri software healthy tests/test_api.py:74

Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.

LabelLayerStatusPath
TestRedisStorage software healthy tests/test_storage.py:18
TestCommon software healthy tests/test_bot.py:19
TestProducer software healthy tests/test_bot.py:35
TestGetter software healthy tests/test_bot.py:80
GroupInspector software healthy tests/test_bot.py:86
TestSignalApiProtocolConfig software healthy tests/test_bot.py:135
TestSignalApiVersionCheck software healthy tests/test_bot.py:179
TestUsernameValidation software healthy tests/test_bot.py:230
TestRegisterCommand software healthy tests/test_bot.py:262
SomeTestCommand software healthy tests/test_bot.py:274
TestPoll software healthy tests/test_bot.py:325
TestMessage software healthy tests/test_message.py:12
TestAPI software healthy tests/test_api.py:9
TriggeredCommand software healthy tests/test_decorator.py:16
TriggeredCaseSensitiveCommand software healthy tests/test_decorator.py:22
ReactionTriggeredCommand software healthy tests/test_decorator.py:28
ReactionFilteredCommand software healthy tests/test_decorator.py:34
RegexTriggeredCommand software healthy tests/test_decorator.py:40
SendReceiveGetGroupsMocks software healthy tests/test_decorator.py:47
TestCommon software healthy tests/test_decorator.py:54
TestTriggered software healthy tests/test_decorator.py:71
TestTriggeredCaseSensitive software healthy tests/test_decorator.py:99
TestRegexTriggered software healthy tests/test_decorator.py:120
TestTriggeredGroups software healthy tests/test_decorator.py:148
TestReactionTriggered software healthy tests/test_decorator.py:194
TestReactionFiltered software healthy tests/test_decorator.py:215
TestQuote software healthy tests/test_quote.py:6
SchnickSchnackSchnuckCommand software healthy tests/test_chat.py:8
TestSchnickSchnackSchnuckCommand software healthy tests/test_chat.py:21
TestLoadConfig software healthy tests/test_bot_config.py:23
PingCommand software healthy examples/simple_bot.py:14
PingCommand software healthy examples/commands/ping.py:5
TriggeredCommand software healthy examples/commands/multiple_triggered.py:5
ReactionCommand software healthy examples/commands/reaction.py:5
ThumbsUpCommand software healthy examples/commands/reaction.py:21
StylesCommand software healthy examples/commands/styles.py:5
DeleteCommand software healthy examples/commands/delete.py:10
DeleteLocalAttachmentCommand software healthy examples/commands/delete.py:21
ReceiveDeleteCommand software healthy examples/commands/delete.py:47
ReplyCommand software healthy examples/commands/reply.py:5
CommandWithHelpMessage software healthy examples/commands/help.py:6
HelpCommand software healthy examples/commands/help.py:12
TypingCommand software healthy examples/commands/typing.py:7
RegexTriggeredCommand software healthy examples/commands/regex_triggered.py:5
AttachmentCommand software healthy examples/commands/attachments.py:9
EditCommand software healthy examples/commands/edit.py:7
TestPingChatTest software healthy examples/commands/tests/test_ping.py:9
Storage software healthy src/signalbot/storage.py:17
StorageError software healthy src/signalbot/storage.py:35
SQLiteStorage software healthy src/signalbot/storage.py:39

Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.

LabelLayerStatusPath
mkdocs.yml software healthy mkdocs.yml
README.md software healthy README.md
prek.toml software healthy prek.toml
pyproject.toml software healthy pyproject.toml
.codecov.yml software healthy .codecov.yml
test_storage.py software healthy tests/test_storage.py
test_bot.py software healthy tests/test_bot.py
test_message.py software healthy tests/test_message.py
test_api.py software healthy tests/test_api.py
test_decorator.py software healthy tests/test_decorator.py
test_quote.py software healthy tests/test_quote.py
test_chat.py software healthy tests/test_chat.py
test_bot_config.py software healthy tests/test_bot_config.py
local_development.md software healthy docs/local_development.md
getting_started.md software healthy docs/getting_started.md
troubleshooting.md software healthy docs/troubleshooting.md
index.md software healthy docs/index.md
additional_information.md software healthy docs/additional_information.md
quote.md software healthy docs/reference/quote.md
message.md software healthy docs/reference/message.md
linkpreview.md software healthy docs/reference/linkpreview.md
context.md software healthy docs/reference/context.md
bot_config.md software healthy docs/reference/bot_config.md
bot.md software healthy docs/reference/bot.md
command.md software healthy docs/reference/command.md
reaction.md software healthy docs/reference/reaction.md
api_overview.md software healthy docs/examples/api_overview.md
bot_config_options.md software healthy docs/examples/bot_config_options.md
bot_with_scheduler.md software healthy docs/examples/bot_with_scheduler.md
simple_bot.py software healthy examples/simple_bot.py
bot_with_scheduler.py software healthy examples/bot_with_scheduler.py
__init__.py software healthy examples/__init__.py
bot.py software healthy examples/bot.py
__init__.py software healthy examples/commands/__init__.py
ping.py software healthy examples/commands/ping.py
multiple_triggered.py software healthy examples/commands/multiple_triggered.py
reaction.py software healthy examples/commands/reaction.py
styles.py software healthy examples/commands/styles.py
delete.py software healthy examples/commands/delete.py
reply.py software healthy examples/commands/reply.py
help.py software healthy examples/commands/help.py
typing.py software healthy examples/commands/typing.py
regex_triggered.py software healthy examples/commands/regex_triggered.py
attachments.py software healthy examples/commands/attachments.py
edit.py software healthy examples/commands/edit.py
__init__.py software healthy examples/commands/tests/__init__.py
test_ping.py software healthy examples/commands/tests/test_ping.py
pull_request_template.md software healthy .github/pull_request_template.md
CONTRIBUTING.md software healthy .github/CONTRIBUTING.md
dependabot.yml software healthy .github/dependabot.yml

Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.

LabelLayerStatusPath
tests software healthy tests
docs software healthy docs
reference software healthy docs/reference
examples software healthy docs/examples
examples software healthy examples
commands software healthy examples/commands
tests software healthy examples/commands/tests
.github software healthy .github
workflows software healthy .github/workflows
install-uv software healthy .github/workflows/install-uv
src software healthy src
signalbot software healthy src/signalbot
utils software healthy src/signalbot/utils

LabelLayerStatusPath
deploy-check cicd healthy .github/workflows/deploy-pr-dispatch.yaml
ci cicd healthy .github/workflows/release.yaml
publish-test-pypi cicd healthy .github/workflows/release.yaml
publish-pypi cicd healthy .github/workflows/release.yaml
prek cicd healthy .github/workflows/ci.yaml
unittest cicd healthy .github/workflows/ci.yaml
deploy cicd healthy .github/workflows/deploy-docs.yaml
docs cicd healthy .github/workflows/ci-docs.yaml
publish-package cicd healthy .github/workflows/deploy-pr-command.yaml

LabelLayerStatusPath
gha::deploy-pr-dispatch cicd healthy .github/workflows/deploy-pr-dispatch.yaml
gha::release cicd healthy .github/workflows/release.yaml
gha::ci cicd healthy .github/workflows/ci.yaml
gha::deploy-docs cicd healthy .github/workflows/deploy-docs.yaml
gha::ci-docs cicd healthy .github/workflows/ci-docs.yaml
gha::deploy-pr-command cicd healthy .github/workflows/deploy-pr-command.yaml
gha::action cicd healthy .github/workflows/install-uv/action.yaml

LabelLayerStatusPath
CODECOV_TOKEN cicd healthy
GITHUB_TOKEN cicd healthy
API_TOKEN cicd healthy

LabelLayerStatusPath
redis data healthy pyproject.toml
sqlite data healthy src/signalbot/storage.py

LabelLayerStatusPath
password_literal::tests/test_storage.py security healthy tests/test_storage.py
password_literal::tests/test_storage.py security healthy tests/test_storage.py

LabelLayerStatusPath
repobility-clone-bov6tzhx software healthy /tmp/repobility-clone-bov6tzhx

LabelLayerStatusPath
signalbot data healthy src/signalbot/storage.py

LabelLayerStatusPath
port:6379 network healthy tests/test_storage.py

LabelLayerStatusPath
127.0.0.1 network healthy tests/test_bot.py
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/762243d6-5d17-4e05-94f7-fbd7bb632ccf/

To check status programmatically (no auth required):

curl -s https://repobility.com/api/v1/public/scan/762243d6-5d17-4e05-94f7-fbd7bb632ccf/

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.