Scan timing: clone 2.52s · analysis 3.58s · 0.9 MB · GitHub API rate-limit (preflight)
https://github.com/TurboGears/tg2
· scanned 2026-06-05 22:31 UTC (1 week, 2 days ago)
· 10 languages
185 raw signals (113 security + 72 graph) 88th percentile · Python · medium (20-100K LoC) System graph score 91 (lower by 8)
Last scanned 1 week, 2 days ago · v2 · 83 actionable findings from 2 signal sources. 65 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 |
75.0 | 0.15 | 11.25 |
security_score |
97.3 | 0.25 | 24.32 |
testing_score |
87.0 | 0.20 | 17.40 |
documentation_score |
73.0 | 0.15 | 10.95 |
practices_score |
78.0 | 0.15 | 11.70 |
code_quality |
76.7 | 0.10 | 7.67 |
| Overall | 1.00 | 83.3 |
All 2593 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 |
|---|---|---|---|
setup_method |
software | healthy | tests/test_hooks.py:20 |
teardown_method |
software | healthy | tests/test_hooks.py:23 |
test_config_hooks |
software | healthy | tests/test_hooks.py:27 |
test |
software | healthy | tests/test_hooks.py:254 |
before_config_hook |
software | healthy | tests/test_hooks.py:63 |
after_config_hook |
software | healthy | tests/test_hooks.py:66 |
configure_new_app_hook |
software | healthy | tests/test_hooks.py:69 |
test_config_hooks_through_app_config |
software | healthy | tests/test_hooks.py:56 |
test_controller_hooks_with_value |
software | healthy | tests/test_hooks.py:85 |
value_hook |
software | healthy | tests/test_hooks.py:95 |
test_config_hooks_startup_on_controller |
software | healthy | tests/test_hooks.py:107 |
f |
software | healthy | tests/test_hooks.py:134 |
test_config_hooks_shutdown_on_controller |
software | healthy | tests/test_hooks.py:114 |
test_controller_wrapper_using_register |
software | healthy | tests/test_hooks.py:121 |
test_global_controller_wrapper_after_milestone_reached |
software | healthy | tests/test_hooks.py:126 |
test_dedicated_controller_wrapper_after_milestone_reached |
software | healthy | tests/test_hooks.py:131 |
test_startup_hook |
software | healthy | tests/test_hooks.py:141 |
func |
software | healthy | tests/test_hooks.py:173 |
test_startup_hook_with_exception |
software | healthy | tests/test_hooks.py:151 |
test_shutdown_hook_callable |
software | healthy | tests/test_hooks.py:159 |
_fake_atexit_register |
software | healthy | tests/test_hooks.py:161 |
test_disconnect_hooks |
software | healthy | tests/test_hooks.py:186 |
hook1_listener |
software | healthy | tests/test_hooks.py:245 |
test_disconnect_hooks_multiple_listener |
software | healthy | tests/test_hooks.py:210 |
hook2_listener |
software | healthy | tests/test_hooks.py:249 |
test_disconnect_controller_hooks_multiple_listener |
software | healthy | tests/test_hooks.py:243 |
test2 |
software | healthy | tests/test_hooks.py:259 |
test_hooks_describe_themselves |
software | healthy | tests/test_hooks.py:285 |
simple_app |
software | healthy | tests/test_errorware.py:12 |
_make |
software | healthy | tests/test_errorware.py:103 |
test_enable_none |
software | healthy | tests/test_errorware.py:31 |
test_enable_false |
software | healthy | tests/test_errorware.py:36 |
test_enable_true |
software | healthy | tests/test_errorware.py:40 |
test_enable_email |
software | healthy | tests/test_errorware.py:120 |
test_enable_email_requires_options |
software | healthy | tests/test_errorware.py:53 |
test_enable_sentry |
software | healthy | tests/test_errorware.py:127 |
test_debug_mode |
software | healthy | tests/test_errorware.py:133 |
test_actually_reports |
software | healthy | tests/test_errorware.py:146 |
index |
software | healthy | tests/test_errorware.py:149 |
report |
software | healthy | tests/test_errorware.py:161 |
test_disable_all |
software | healthy | tests/test_errorware.py:111 |
test_enable_without_reporter |
software | healthy | tests/test_errorware.py:115 |
test_backward_compatibility |
software | healthy | tests/test_errorware.py:138 |
__init__ |
software | healthy | tests/test_generic_json.py:8 |
name |
software | healthy | tests/test_generic_json.py:13 |
__json__ |
software | healthy | tests/test_generic_json.py:16 |
test_simple_rule |
software | healthy | tests/test_generic_json.py:20 |
test_custom_encoder_twice |
software | healthy | tests/test_generic_json.py:40 |
test_builtin_override |
software | healthy | tests/test_generic_json.py:62 |
jsonify_date |
software | healthy | tests/test_generic_json.py:76 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
TestGlobalHooks |
software | healthy | tests/test_hooks.py:19 |
RootController |
software | healthy | tests/test_hooks.py:252 |
TestErrorReporterConfig |
software | healthy | tests/test_errorware.py:19 |
RootController |
software | healthy | tests/test_errorware.py:147 |
Reporter |
software | healthy | tests/test_errorware.py:160 |
TestSlowReqsReporterConfig |
software | healthy | tests/test_errorware.py:99 |
Person |
software | healthy | tests/test_generic_json.py:7 |
TestStatics |
software | healthy | tests/test_statics.py:14 |
DummyWrapper |
software | healthy | tests/test_statics.py:70 |
LookupHelper |
software | healthy | tests/test_rest_controller_dispatch.py:32 |
LookupController |
software | healthy | tests/test_rest_controller_dispatch.py:41 |
DeprecatedLookupController |
software | healthy | tests/test_rest_controller_dispatch.py:48 |
LookupAlwaysHelper |
software | healthy | tests/test_rest_controller_dispatch.py:55 |
LookupAlwaysController |
software | healthy | tests/test_rest_controller_dispatch.py:73 |
CustomDispatchingSubController |
software | healthy | tests/test_rest_controller_dispatch.py:80 |
OptionalArgumentRestController |
software | healthy | tests/test_rest_controller_dispatch.py:91 |
RequiredArgumentRestController |
software | healthy | tests/test_rest_controller_dispatch.py:122 |
VariableSubRestController |
software | healthy | tests/test_rest_controller_dispatch.py:153 |
SubRestController |
software | healthy | tests/test_rest_controller_dispatch.py:180 |
VariableRestController |
software | healthy | tests/test_rest_controller_dispatch.py:219 |
ExtraRestController |
software | healthy | tests/test_rest_controller_dispatch.py:241 |
SubClass |
software | healthy | tests/test_rest_controller_dispatch.py:259 |
BasicRestController |
software | healthy | tests/test_rest_controller_dispatch.py:278 |
EmptyRestController |
software | healthy | tests/test_rest_controller_dispatch.py:312 |
SubController |
software | healthy | tests/test_rest_controller_dispatch.py:316 |
BasicTGController |
software | healthy | tests/test_rest_controller_dispatch.py:325 |
BasicTGControllerNoDefault |
software | healthy | tests/test_rest_controller_dispatch.py:350 |
TestTGControllerRoot |
software | healthy | tests/test_rest_controller_dispatch.py:357 |
TestTGController |
software | healthy | tests/test_rest_controller_dispatch.py:367 |
TestRestController |
software | healthy | tests/test_rest_controller_dispatch.py:420 |
BasePredicateTester |
software | healthy | tests/test_predicates.py:25 |
TestPredicate |
software | healthy | tests/test_predicates.py:53 |
CredentialsPredicate |
software | healthy | tests/test_predicates.py:116 |
TestContextRelatedBoolPredicate |
software | healthy | tests/test_predicates.py:128 |
RootController |
software | healthy | tests/test_predicates.py:130 |
TestCompoundPredicate |
software | healthy | tests/test_predicates.py:150 |
TestNotPredicate |
software | healthy | tests/test_predicates.py:164 |
TestAllPredicate |
software | healthy | tests/test_predicates.py:188 |
TestAnyPredicate |
software | healthy | tests/test_predicates.py:216 |
TestIsUserPredicate |
software | healthy | tests/test_predicates.py:249 |
TestInGroupPredicate |
software | healthy | tests/test_predicates.py:275 |
TestInAllGroupsPredicate |
software | healthy | tests/test_predicates.py:289 |
TestInAnyGroupsPredicate |
software | healthy | tests/test_predicates.py:309 |
TestIsAnonymousPredicate |
software | healthy | tests/test_predicates.py:329 |
TestNotAnonymousPredicate |
software | healthy | tests/test_predicates.py:343 |
TestHasPermissionPredicate |
software | healthy | tests/test_predicates.py:357 |
TestHasAllPermissionsPredicate |
software | healthy | tests/test_predicates.py:371 |
TestUserHasAnyPermissionsPredicate |
software | healthy | tests/test_predicates.py:394 |
MockPredicate |
software | healthy | tests/test_predicates.py:432 |
EqualsTwo |
software | healthy | tests/test_predicates.py:435 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
setup.py |
software | warning | setup.py |
pyproject.toml |
software | healthy | pyproject.toml |
devcontainer.json |
software | healthy | .devcontainer/devcontainer.json |
non_overridden.html |
software | healthy | tests/non_overridden.html |
test_hooks.py |
software | healthy | tests/test_hooks.py |
test_errorware.py |
software | healthy | tests/test_errorware.py |
overridden.html |
software | healthy | tests/overridden.html |
__init__.py |
software | healthy | tests/__init__.py |
test_generic_json.py |
software | healthy | tests/test_generic_json.py |
test_statics.py |
software | healthy | tests/test_statics.py |
test_rest_controller_dispatch.py |
software | healthy | tests/test_rest_controller_dispatch.py |
test_predicates.py |
software | healthy | tests/test_predicates.py |
test_fastform.py |
software | healthy | tests/test_fastform.py |
test_render.py |
software | healthy | tests/test_render.py |
test_validation.py |
software | healthy | tests/test_validation.py |
test_converters.py |
software | healthy | tests/test_converters.py |
test_middlewares.py |
software | healthy | tests/test_middlewares.py |
test_controllers.py |
software | healthy | tests/test_controllers.py |
test_tg_controller_dispatch.py |
software | healthy | tests/test_tg_controller_dispatch.py |
test.html |
software | healthy | tests/test.html |
test_configuration.py |
software | healthy | tests/test_configuration.py |
test_i18n.py |
software | healthy | tests/test_i18n.py |
base.py |
software | healthy | tests/base.py |
test_util.py |
software | healthy | tests/test_util.py |
test_expose_allowed_methods.py |
software | healthy | tests/test_expose_allowed_methods.py |
test_jsonify_sqlalchemy.py |
software | healthy | tests/test_jsonify_sqlalchemy.py |
test_jsonify.py |
software | healthy | tests/test_jsonify.py |
test_caching.py |
software | healthy | tests/test_caching.py |
test_configuration_util.py |
software | healthy | tests/test_configuration_util.py |
test_balanced_session.py |
software | healthy | tests/test_balanced_session.py |
test_config_milestones.py |
software | healthy | tests/test_config_milestones.py |
__init__.py |
software | healthy | tests/test_stack/__init__.py |
baseutils.py |
software | healthy | tests/test_stack/baseutils.py |
test_registry.py |
software | healthy | tests/test_stack/test_registry.py |
test_authz.py |
software | healthy | tests/test_stack/test_authz.py |
test_request_local.py |
software | healthy | tests/test_stack/test_request_local.py |
__init__.py |
software | healthy | tests/test_stack/rendering/__init__.py |
test_rendering.py |
software | healthy | tests/test_stack/rendering/test_rendering.py |
test_pagination.py |
software | healthy | tests/test_stack/rendering/test_pagination.py |
test_decorators.py |
software | healthy | tests/test_stack/rendering/test_decorators.py |
test_dotted_rendering.py |
software | healthy | tests/test_stack/rendering/test_dotted_rendering.py |
genshi_doctype.html |
software | healthy | tests/test_stack/rendering/templates/genshi_doctype.html |
__init__.py |
software | healthy | tests/test_stack/rendering/templates/__init__.py |
index.html |
software | healthy | tests/test_stack/rendering/templates/index.html |
genshi_inherits_sub.html |
software | healthy | tests/test_stack/rendering/templates/genshi_inherits_sub.ht… |
genshi_inherits.html |
software | healthy | tests/test_stack/rendering/templates/genshi_inherits.html |
genshi_inherits_sub_dotted.html |
software | healthy | tests/test_stack/rendering/templates/genshi_inherits_sub_do… |
genshi_master.html |
software | healthy | tests/test_stack/rendering/templates/genshi_master.html |
frombottom.html |
software | healthy | tests/test_stack/rendering/templates/sub/frombottom.html |
__init__.py |
software | healthy | tests/test_stack/rendering/templates/sub/__init__.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
.devcontainer |
software | healthy | .devcontainer |
tests |
software | healthy | tests |
test_stack |
software | healthy | tests/test_stack |
rendering |
software | healthy | tests/test_stack/rendering |
templates |
software | healthy | tests/test_stack/rendering/templates |
sub |
software | healthy | tests/test_stack/rendering/templates/sub |
controllers |
software | healthy | tests/test_stack/rendering/controllers |
config |
software | healthy | tests/test_stack/config |
controllers |
software | healthy | tests/test_stack/config/controllers |
fixture |
software | healthy | tests/test_stack/fixture |
dispatch |
software | healthy | tests/test_stack/dispatch |
controllers |
software | healthy | tests/test_stack/dispatch/controllers |
lib |
software | healthy | tests/test_stack/lib |
templatetools |
software | healthy | tests/test_stack/lib/templatetools |
fixtures |
software | healthy | tests/fixtures |
package_with_helpers_submodule |
software | healthy | tests/fixtures/package_with_helpers_submodule |
lib |
software | healthy | tests/fixtures/package_with_helpers_submodule/lib |
tg |
software | healthy | tg |
util |
software | healthy | tg/util |
configurator |
software | healthy | tg/configurator |
components |
software | healthy | tg/configurator/components |
appwrappers |
software | healthy | tg/appwrappers |
configuration |
software | healthy | tg/configuration |
auth |
software | healthy | tg/configuration/auth |
mongo |
software | healthy | tg/configuration/mongo |
sqla |
software | healthy | tg/configuration/sqla |
templates |
software | healthy | tg/templates |
controllers |
software | healthy | tg/controllers |
decorators |
software | healthy | tg/decorators |
renderers |
software | healthy | tg/renderers |
support |
software | healthy | tg/support |
.github |
software | healthy | .github |
workflows |
software | healthy | .github/workflows |
| Label | Layer | Status | Path |
|---|---|---|---|
mongodb |
data | healthy | pyproject.toml |
sqlite |
data | healthy | tests/test_configuration.py |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-9qng1aac |
software | healthy | /tmp/repobility-clone-9qng1aac |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::run-tests |
cicd | healthy | .github/workflows/run-tests.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
build |
cicd | healthy | .github/workflows/run-tests.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
GITHUB_TOKEN |
cicd | healthy | — |
This page is publicly accessible at:
https://repobility.com/scan/53ad27bb-970d-40e5-8f80-52565cc5dc38/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/53ad27bb-970d-40e5-8f80-52565cc5dc38/
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.