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

Scan timing: clone 2.07s · analysis 1.6s · 1.3 MB · GitHub API rate-limit (preflight)

AstrBotDevs/AstrBot_Plugins_Collection

https://github.com/AstrBotDevs/AstrBot_Plugins_Collection · scanned 2026-06-05 17:58 UTC (4 days, 21 hours ago) · 10 languages

99 raw signals (55 security + 44 graph) 60th percentile · Python · small (2-20K LoC) System graph score 91 (lower by 18)

UNIFIED Repobility · multi-layer engine · AI coders

Complete repo analysis

Last scanned 4 days, 21 hours ago · v2 · 30 actionable findings from 2 signal sources. 22 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 55.0 0.15 8.25
security_score 100.0 0.25 25.00
testing_score 87.0 0.20 17.40
documentation_score 40.0 0.15 6.00
practices_score 65.0 0.15 9.75
code_quality 66.0 0.10 6.60
Overall 1.00 73.0
Severity distribution — click a segment to filter
Active filters: excluding tests × Reset all

All 252 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
load_transform_module software healthy tests/test_transform_plugin_data.py:12
test_parse_metadata_text_extracts_new_optional_fields software healthy tests/test_transform_plugin_data.py:26
test_parse_metadata_text_supports_inline_and_block_lists software healthy tests/test_transform_plugin_data.py:39
test_transform_plugin_data_includes_metadata_fields_from_re… software healthy tests/test_transform_plugin_data.py:54
test_transform_plugin_data_preserves_metadata_fields_from_c… software healthy tests/test_transform_plugin_data.py:87
load_detection_module software healthy tests/test_detect_changed_plugins.py:12
test_load_plugins_map_requires_json_object software healthy tests/test_detect_changed_plugins.py:26
test_load_plugins_map_returns_dict_for_valid_json software healthy tests/test_detect_changed_plugins.py:32
test_load_plugins_map_rejects_non_dict_entries software healthy tests/test_detect_changed_plugins.py:39
test_detect_changed_plugin_names_returns_only_modified_entr… software healthy tests/test_detect_changed_plugins.py:47
test_resolve_astrbot_ref_uses_remote_default_branch software healthy tests/test_detect_changed_plugins.py:59
test_resolve_astrbot_ref_falls_back_to_master software healthy tests/test_detect_changed_plugins.py:67
test_detect_pull_request_selection_handles_fetch_base_ref_f… software healthy tests/test_detect_changed_plugins.py:77
test_detect_pull_request_selection_handles_missing_base_file software healthy tests/test_detect_changed_plugins.py:95
test_detect_pull_request_selection_raises_on_invalid_head_j… software healthy tests/test_detect_changed_plugins.py:111
test_write_github_env_outputs_expected_values software healthy tests/test_detect_changed_plugins.py:123
load_validator_module software healthy tests/test_validate_plugins.py:16
test_strips_git_suffix_trailing_slash_and_query software healthy tests/test_validate_plugins.py:30
test_rejects_non_github_urls software healthy tests/test_validate_plugins.py:40
test_rejects_non_http_schemes software healthy tests/test_validate_plugins.py:46
test_rejects_missing_owner_or_repository software healthy tests/test_validate_plugins.py:57
test_strips_leading_and_trailing_whitespace software healthy tests/test_validate_plugins.py:71
test_returns_all_plugins_when_limit_is_none software healthy tests/test_validate_plugins.py:81
test_returns_all_plugins_when_limit_is_negative_one software healthy tests/test_validate_plugins.py:96
test_prefers_explicit_names_in_requested_order software healthy tests/test_validate_plugins.py:111
test_respects_positive_limit_when_names_not_requested software healthy tests/test_validate_plugins.py:127
test_raises_key_error_for_unknown_requested_plugin software healthy tests/test_validate_plugins.py:143
test_combine_requested_names_merges_trims_and_drops_empty_v… software healthy tests/test_validate_plugins.py:158
test_combine_requested_names_handles_none_inputs software healthy tests/test_validate_plugins.py:168
test_sanitize_name_replaces_invalid_chars_and_falls_back_wh… software healthy tests/test_validate_plugins.py:173
test_build_plugin_clone_dir_is_unique_for_colliding_sanitiz… software healthy tests/test_validate_plugins.py:181
test_build_process_output_details_keeps_partial_timeout_logs software healthy tests/test_validate_plugins.py:191
test_parse_simple_yaml_handles_comments_quotes_and_whitespa… software healthy tests/test_validate_plugins.py:201
test_parse_simple_yaml_rejects_indented_lines software healthy tests/test_validate_plugins.py:224
test_parse_simple_yaml_rejects_list_syntax software healthy tests/test_validate_plugins.py:237
test_parse_simple_yaml_rejects_duplicate_keys software healthy tests/test_validate_plugins.py:250
test_load_metadata_uses_yaml_safe_load_when_available software healthy tests/test_validate_plugins.py:263
test_load_metadata_rejects_non_mapping_yaml_root software healthy tests/test_validate_plugins.py:282
test_load_metadata_uses_simple_parser_when_yaml_unavailable software healthy tests/test_validate_plugins.py:303
test_load_metadata_wraps_fallback_parse_errors software healthy tests/test_validate_plugins.py:321
test_load_plugins_index_accepts_valid_object software healthy tests/test_validate_plugins.py:337
test_load_plugins_index_rejects_json_array software healthy tests/test_validate_plugins.py:356
test_load_plugins_index_rejects_non_dict_values software healthy tests/test_validate_plugins.py:369
test_dummy_context_defers_plugin_data_dir_creation_until_re… software healthy tests/test_validate_plugins.py:389
test_dummy_context_returns_worker_data_dir_for_plugin_stora… software healthy tests/test_validate_plugins.py:406
test_null_stub_supports_async_database_context_pattern software healthy tests/test_validate_plugins.py:418
test_null_stub_returns_defaults_for_restart_style_config_ac… software healthy tests/test_validate_plugins.py:431
test_dummy_context_exposes_dict_like_config_defaults software healthy tests/test_validate_plugins.py:443
test_build_parser_defaults_max_workers_to_sixteen software healthy tests/test_validate_plugins.py:455
test_build_parser_rejects_non_positive_worker_and_timeout_v… software healthy tests/test_validate_plugins.py:462

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

LabelLayerStatusPath
plugins.json software healthy plugins.json
README.md software healthy README.md
unreachable-plugins.json software healthy unreachable-plugins.json
del-plugins.json software healthy del-plugins.json
plugin_cache_original.json software healthy plugin_cache_original.json
test_transform_plugin_data.py software healthy tests/test_transform_plugin_data.py
__init__.py software healthy tests/__init__.py
test_detect_changed_plugins.py software healthy tests/test_detect_changed_plugins.py
test_validate_plugins.py software healthy tests/test_validate_plugins.py
__init__.py software healthy scripts/validate_plugins/__init__.py
detect_changed_plugins.py software healthy scripts/validate_plugins/detect_changed_plugins.py
run.py software healthy scripts/validate_plugins/run.py
plugins_map.py software healthy scripts/validate_plugins/plugins_map.py
run.py software healthy scripts/transform_plugin_data/run.py
run.sh software healthy scripts/transform_plugin_data/clean_up/run.sh
run.sh software healthy scripts/transform_plugin_data/check_for_changes/run.sh
run.sh software healthy scripts/transform_plugin_data/pull_latest_changes_before_ch…
run.sh software healthy scripts/transform_plugin_data/get_github_api_info_for_repos…
run.sh software healthy scripts/transform_plugin_data/transform_plugin_data/run.sh
run.sh software healthy scripts/transform_plugin_data/commit_and_push_changes/run.sh
run.sh software healthy scripts/transform_plugin_data/configure_git/run.sh
run.sh software healthy scripts/transform_plugin_data/summary/run.sh
run.sh software healthy scripts/transform_plugin_data/fetch_original_plugin_data/ru…
run.sh software healthy scripts/transform_plugin_data/load_existing_cache_for_fallb…
PLUGIN_PUBLISH.yml software healthy .github/ISSUE_TEMPLATE/PLUGIN_PUBLISH.yml
validate_json.yml software healthy .github/workflows/validate_json.yml
clean-unreachable-plugins.yml software healthy .github/workflows/clean-unreachable-plugins.yml
transform-plugin-data.yml software healthy .github/workflows/transform-plugin-data.yml
validate-plugin-smoke.yml software healthy .github/workflows/validate-plugin-smoke.yml

LabelLayerStatusPath
MetadataParsingTests software healthy tests/test_transform_plugin_data.py:25
TransformPluginDataTests software healthy tests/test_transform_plugin_data.py:53
LoadPluginsMapTests software healthy tests/test_detect_changed_plugins.py:25
ChangedPluginDetectionTests software healthy tests/test_detect_changed_plugins.py:46
AstrbotRefTests software healthy tests/test_detect_changed_plugins.py:58
PullRequestDetectionTests software healthy tests/test_detect_changed_plugins.py:76
NormalizeRepoUrlTests software healthy tests/test_validate_plugins.py:29
SelectPluginsTests software healthy tests/test_validate_plugins.py:80
HelperFunctionTests software healthy tests/test_validate_plugins.py:157
DummyContextStubTests software healthy tests/test_validate_plugins.py:388
ValidationProgressTests software healthy tests/test_validate_plugins.py:454
ValidatePluginTests software healthy tests/test_validate_plugins.py:547
MetadataValidationTests software healthy tests/test_validate_plugins.py:703
WorkerCommandTests software healthy tests/test_validate_plugins.py:760
WorkerSysPathTests software healthy tests/test_validate_plugins.py:781
WorkerLoadCheckTests software healthy tests/test_validate_plugins.py:796
FakeManager software healthy tests/test_validate_plugins.py:800
RunWorkerIsolationTests software healthy tests/test_validate_plugins.py:817
ReportBuilderTests software healthy tests/test_validate_plugins.py:942
WorkerOutputParsingTests software healthy tests/test_validate_plugins.py:961
MetadataLoadError software healthy scripts/validate_plugins/run.py:37
NullStub software healthy scripts/validate_plugins/run.py:618
DummyConfig software healthy scripts/validate_plugins/run.py:655
DummyContext software healthy scripts/validate_plugins/run.py:667

LabelLayerStatusPath
tests software healthy tests
scripts software healthy scripts
validate_plugins software healthy scripts/validate_plugins
transform_plugin_data software healthy scripts/transform_plugin_data
clean_up software healthy scripts/transform_plugin_data/clean_up
check_for_changes software healthy scripts/transform_plugin_data/check_for_changes
pull_latest_changes_before_checking_rebase_with_autostash software healthy scripts/transform_plugin_data/pull_latest_changes_before_ch…
get_github_api_info_for_repositories software healthy scripts/transform_plugin_data/get_github_api_info_for_repos…
transform_plugin_data software healthy scripts/transform_plugin_data/transform_plugin_data
commit_and_push_changes software healthy scripts/transform_plugin_data/commit_and_push_changes
configure_git software healthy scripts/transform_plugin_data/configure_git
summary software healthy scripts/transform_plugin_data/summary
fetch_original_plugin_data software healthy scripts/transform_plugin_data/fetch_original_plugin_data
load_existing_cache_for_fallback software healthy scripts/transform_plugin_data/load_existing_cache_for_fallb…
.github software healthy .github
ISSUE_TEMPLATE software healthy .github/ISSUE_TEMPLATE
workflows software healthy .github/workflows

LabelLayerStatusPath
gha::validate_json cicd healthy .github/workflows/validate_json.yml
gha::clean-unreachable-plugins cicd healthy .github/workflows/clean-unreachable-plugins.yml
gha::transform-plugin-data cicd healthy .github/workflows/transform-plugin-data.yml
gha::validate-plugin-smoke cicd healthy .github/workflows/validate-plugin-smoke.yml

LabelLayerStatusPath
validate-json cicd healthy .github/workflows/validate_json.yml
clean-unreachable-plugins cicd healthy .github/workflows/clean-unreachable-plugins.yml
transform-data cicd healthy .github/workflows/transform-plugin-data.yml
validate-plugin-smoke cicd healthy .github/workflows/validate-plugin-smoke.yml

LabelLayerStatusPath
auth::plugins.json security healthy plugins.json
auth::plugin_cache_original.json security healthy plugin_cache_original.json

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

LabelLayerStatusPath
mysql data healthy plugins.json

LabelLayerStatusPath
127.0.0.1 network healthy plugins.json

LabelLayerStatusPath
vps::azure hardware healthy plugins.json

LabelLayerStatusPath
PAT_TOKEN cicd healthy
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/8c517160-6c1b-4594-9716-7418b4359bd6/

To check status programmatically (no auth required):

curl -s https://repobility.com/api/v1/public/scan/8c517160-6c1b-4594-9716-7418b4359bd6/

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.