Scan timing: clone 3.77s · analysis 145.3s · 16.5 MB · GitHub API rate-limit (preflight)
https://github.com/OpenHands/OpenHands
· scanned 2026-06-05 07:42 UTC (5 days, 19 hours ago)
· 10 languages
1215 raw signals (493 security + 722 graph) 12th percentile · Typescript · large (100-500K LoC) System graph score 59 (higher by 5)
Last scanned 5 days, 19 hours ago · v2 · 551 actionable findings from 2 signal sources. 303 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 |
0.0 | 0.25 | 0.00 |
testing_score |
100.0 | 0.20 | 20.00 |
documentation_score |
96.0 | 0.15 | 14.40 |
practices_score |
100.0 | 0.15 | 15.00 |
code_quality |
49.6 | 0.10 | 4.96 |
| Overall | 1.00 | 63.4 |
Showing 398 of 551 actionable findings. 854 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.
docker-compose.yml:2
CI/CD securitycontainers
containers/dev/compose.yml:2
CI/CD securitycontainers
containers/dev/compose.yml:2
CI/CD securitycontainers
enterprise/tests/unit/test_saas_user_auth.py:941, 1027, 1091, 1137 (4 hits)enterprise/tests/unit/server/routes/test_api_keys.py:34, 61, 83 (3 hits)tests/unit/app_server/utils/logger/test_logging.py:40, 49, 58 (3 hits)enterprise/tests/unit/storage/test_api_key_store.py:191, 293 (2 hits)enterprise/doc/design-doc/openhands-enterprise-telemetry-design.md:288enterprise/server/routes/integration/slack.py:300enterprise/tests/unit/routes/test_service.py:183enterprise/tests/unit/test_saas_settings_store.py:299enterprise/server/auth/email_validation.py:27enterprise/server/auth/recaptcha_service.py:56enterprise/server/routes/auth.py:917enterprise/server/services/org_invitation_service.py:63enterprise/storage/org_invitation_store.py:72enterprise/storage/resend_synced_user_store.py:31enterprise/storage/user_store.py:734enterprise/sync/resend_keycloak.py:355openhands-ui/bun.lock
.github/workflows/pr-artifacts.yml:41
CI/CD securityworkflow secretsGitHub Actions
frontend/src/i18n/declaration.ts:493
openhands/app_server/secrets/secrets_router.py:348
openhands/app_server/app_conversation/app_conversation_router.py:1437
openhands/app_server/app_conversation/app_conversation_router.py:965
openhands/app_server/app_conversation/app_conversation_router.py:1133
openhands/app_server/app_conversation/app_conversation_router.py:1167
openhands/app_server/app_conversation/app_conversation_router.py:1293
openhands/app_server/app_conversation/app_conversation_router.py:1194
enterprise/server/sharing/shared_event_router.py:188
openhands/app_server/sandbox/sandbox_router.py:84
openhands/app_server/secrets/secrets_router.py:294
.github/scripts/find_prs_between_commits.py:144
enterprise/integrations/bitbucket/bitbucket_service.py:21enterprise/integrations/bitbucket_data_center/bitbucket_dc_service.py:21enterprise/integrations/github/github_service.py:23enterprise/storage/auth_token_store.py:79, 92, 143, 152, 182, 192, 259, 275 (8 hits)enterprise/storage/api_key_store.py:75, 125, 182, 281, 326, 391 (6 hits)enterprise/storage/saas_settings_store.py:139, 185, 249, 326, 354, 358 (6 hits)enterprise/storage/org_app_settings_store.py:50, 65 (2 hits)enterprise/storage/device_code.py:71enterprise/storage/gitlab_webhook_store.py:172enterprise/storage/proactive_conversation_store.py:47enterprise/poetry.lock
enterprise/poetry.lock
enterprise/server/routes/integration/jira.py:483, 493, 523 (3 hits)enterprise/server/routes/integration/jira_dc.py:814, 828 (2 hits)containers/app/Dockerfile:100
CI/CD securitycontainers
containers/app/Dockerfile:2, 11 (2 hits)containers/dev/Dockerfile:4enterprise/Dockerfile:11
CI/CD securitycontainers
containers/dev/Dockerfile:65
CI/CD securitycontainers
enterprise/server/routes/service.py:215
enterprise/server/routes/auth.py:859
enterprise/server/routes/orgs.py:440
enterprise/server/routes/user_app_settings.py:73
enterprise/server/routes/auth.py:675
enterprise/server/routes/oauth_device.py:89
enterprise/server/routes/auth.py:1000
enterprise/server/routes/integration/jira_dc.py:364
enterprise/server/routes/integration/jira.py:282
enterprise/server/routes/github_proxy.py:83
enterprise/server/routes/github_proxy.py:103
enterprise/server/routes/integration/gitlab.py:83
enterprise/server/routes/auth.py:1063
enterprise/server/routes/oauth_device.py:126
enterprise/server/routes/service.py:112
enterprise/server/routes/integration/jira.py:338
enterprise/server/routes/integration/jira_dc.py:466
enterprise/server/routes/integration/jira.py:402
enterprise/server/routes/integration/jira_dc.py:713
enterprise/server/routes/integration/jira_dc.py:677
enterprise/server/routes/integration/jira.py:662
enterprise/server/routes/integration/jira_dc.py:1010
enterprise/server/routes/email.py:117
openhands-ui/bun.lock
openhands-ui/bun.lock
openhands-ui/bun.lock
openhands-ui/bun.lock
openhands-ui/bun.lock
openhands-ui/bun.lock
openhands-ui/bun.lock
dev_config/python/.pre-commit-config.yaml:2, 21, 27, 45 (4 hits)enterprise/dev_config/python/.pre-commit-config.yaml:2, 15, 37 (3 hits)enterprise/poetry.lockpoetry.lockuv.lockenterprise/poetry.lockpoetry.lockuv.lockenterprise/poetry.lockpoetry.lockuv.lockenterprise/poetry.lockpoetry.lockuv.lockenterprise/poetry.lockpoetry.lockuv.lockfrontend/package-lock.json
frontend/package-lock.json
frontend/package-lock.json
frontend/package-lock.json
openhands-ui/bun.lock
enterprise/poetry.lockpoetry.lockuv.lockopenhands-ui/bun.lock
openhands-ui/bun.lock
openhands-ui/bun.lock
openhands-ui/bun.lock
openhands-ui/bun.lock
openhands-ui/bun.lock
openhands-ui/bun.lock
openhands-ui/bun.lock
openhands-ui/bun.lock
.github/workflows/ghcr-build.yml:30, 39 (2 hits)enterprise/server/routes/integration/jira.py:493
Sync io in asyncPerformance
enterprise/server/routes/integration/jira.py:523
Sync io in asyncPerformance
enterprise/server/routes/integration/jira_dc.py:828
Sync io in asyncPerformance
enterprise/server/routes/integration/jira.py:483
Sync io in asyncPerformance
enterprise/server/routes/integration/jira_dc.py:814
Sync io in asyncPerformance
containers/dev/Dockerfile:65
containersRemote installer
openhands/app_server/app_conversation/app_conversation_router.py:779
securityAuth fastapi unauth mutation
openhands/app_server/secrets/secrets_router.py:348
securityAuth fastapi unauth mutation
openhands/app_server/sandbox/sandbox_router.py:108
securityAuth fastapi unauth mutation
openhands/app_server/secrets/secrets_router.py:155
securityAuth fastapi unauth mutation
openhands/app_server/app_conversation/app_conversation_router.py:409
securityAuth fastapi unauth mutation
enterprise/server/routes/github_proxy.py:82
securityAuth fastapi unauth mutation
openhands/app_server/secrets/secrets_router.py:249
securityAuth fastapi unauth mutation
openhands/app_server/event_callback/webhook_router.py:299
securityAuth fastapi unauth mutation
openhands/app_server/event_callback/webhook_router.py:408
securityAuth fastapi unauth mutation
openhands/app_server/sandbox/sandbox_router.py:84
securityAuth fastapi unauth mutation
enterprise/server/routes/github_proxy.py:102
securityAuth fastapi unauth mutation
openhands/app_server/pending_messages/pending_message_router.py:34
securityAuth fastapi unauth mutation
openhands/app_server/sandbox/sandbox_router.py:95
securityAuth fastapi unauth mutation
openhands/app_server/app_conversation/app_conversation_router.py:425
securityAuth fastapi unauth mutation
openhands/app_server/app_conversation/app_conversation_router.py:359
securityAuth fastapi unauth mutation
openhands/app_server/sandbox/sandbox_router.py:75
securityAuth fastapi unauth mutation
openhands/app_server/settings/settings_router.py:185
securityAuth fastapi unauth mutation
openhands/app_server/app_conversation/app_conversation_router.py:868
securityAuth fastapi unauth mutation
openhands/app_server/secrets/secrets_router.py:294
securityAuth fastapi unauth mutation
enterprise/server/auth/authorization.py:18, 258 (2 hits)openhands/app_server/sandbox/sandbox_router.py:154
openhands/app_server/sandbox/sandbox_router.py:185
enterprise/server/auth/authorization.py:26
enterprise/server/email_validation.py:36
openhands/app_server/app_conversation/app_conversation_router.py:779
openhands/app_server/sandbox/sandbox_router.py:108
enterprise/server/routes/org_profiles.py:233
openhands/app_server/secrets/secrets_router.py:348
enterprise/server/routes/bitbucket_dc_proxy.py:19
openhands/app_server/app_conversation/app_conversation_router.py:1437
enterprise/server/routes/org_profiles.py:164
enterprise/server/routes/org_profiles.py:181
enterprise/server/routes/org_profiles.py:202
enterprise/server/routes/org_profiles.py:344
enterprise/integrations/jira/jira_v1_callback_processor.py:189enterprise/integrations/jira_dc/jira_dc_v1_callback_processor.py:199enterprise/server/routes/email.py:128frontend/src/components/features/settings/git-settings/configure-azure-devops-anchor.tsx:22frontend/src/hooks/mutation/stripe/use-create-stripe-checkout-session.ts:10frontend/src/hooks/mutation/use-accept-tos.ts:39openhands/app_server/user/skills_router.py:40
enterprise/poetry.lockpoetry.lockuv.lockenterprise/poetry.lockpoetry.lockuv.lockfrontend/package-lock.jsonopenhands-ui/bun.lockuv.lock
frontend/package-lock.jsonopenhands-ui/bun.lockenterprise/enterprise_local/convert_to_env.py:50, 71 (2 hits)enterprise/integrations/github/data_collector.py:121, 181 (2 hits)enterprise/server/routes/auth.py:151, 681 (2 hits)openhands/app_server/app_conversation/skill_loader.py:77, 99 (2 hits)enterprise/integrations/gitlab/gitlab_service.py:435enterprise/integrations/utils.py:352enterprise/run_maintenance_tasks.py:52enterprise/server/routes/integration/jira_dc.py:1037frontend/src/hooks/use-invitation.ts:44, 57 (2 hits)docker-compose.yml:2
CI/CD securitycontainers
containers/dev/Dockerfile:92
CI/CD securitycontainers
containers/dev/Dockerfile:49
CI/CD securitycontainers
frontend/src/api/api-keys.ts:24, 34, 45 (3 hits)frontend/src/api/auth-service/auth-service.api.ts:20, 33, 47 (3 hits)frontend/src/api/billing-service/billing-service.api.ts:14, 28, 39 (3 hits)frontend/src/api/config-service/config-service.api.ts:27, 37 (2 hits)frontend/src/api/analytics-service/analytics-events.api.ts:38frontend/src/api/conversation-service/conversation-service.api.ts:40frontend/src/api/conversation-service/v1-conversation-service.api.ts:26frontend/package-lock.json
enterprise/poetry.lockpoetry.lockuv.lockopenhands-ui/bun.lock
openhands-ui/bun.lock
frontend/package.json
openhands-ui/package.json
openhands-ui/package.json
openhands-ui/package.json
frontend/package.json
frontend/package.json
frontend/package.json
openhands-ui/package.json
openhands-ui/bun.lock
frontend/package-lock.jsonopenhands-ui/bun.lockfrontend/package-lock.json
.well-known/security.txt
poetry.lock
poetry.lock
frontend/package-lock.json
frontend/package-lock.json
frontend/package-lock.json
.devcontainer/setup.sh:11
openhands-ui/bun.lock
openhands-ui/bun.lock
frontend/package-lock.jsonopenhands-ui/bun.lockfrontend/package-lock.jsonopenhands-ui/bun.lock.github/workflows/_build-image.yml.github/workflows/lint-fix.yml.github/workflows/pr-artifacts.yml.github/workflows/py-tests.yml.github/workflows/tag-image.yml.github/workflows/stale.yml
Ports
.dockerignore
CI/CD securitycontainers
openhands/app_server/file_store/local.py:62
docker-compose.yml:2
CI/CD securitycontainers
containers/dev/compose.yml:2
CI/CD securitycontainers
docker-compose.yml:2
CI/CD securitycontainers
containers/dev/compose.yml:2
CI/CD securitycontainers
containers/dev/Dockerfile:7, 17, 33, 59, 65, 94 (6 hits)containers/app/Dockerfile:25, 54 (2 hits)enterprise/Dockerfile:11enterprise/Dockerfile:27, 32 (2 hits)containers/app/Dockerfile:25containers/dev/Dockerfile:7, 59 (2 hits)containers/app/Dockerfile:25enterprise/integrations/jira_dc/jira_dc_v1_callback_processor.py:16, 20, 90, 108 (4 hits)enterprise/integrations/jira/jira_v1_callback_processor.py:6, 81, 99 (3 hits)enterprise/integrations/slack/slack_v1_callback_processor.py:10, 106, 195 (3 hits)enterprise/integrations/gitlab/gitlab_v1_callback_processor.py:6, 109 (2 hits)enterprise/integrations/gitlab/gitlab_view.py:88, 89 (2 hits)enterprise/integrations/bitbucket_data_center/bitbucket_dc_manager.py:316enterprise/integrations/bitbucket_data_center/bitbucket_dc_v1_callback_processor.py:6enterprise/integrations/bitbucket_data_center/bitbucket_dc_view.py:8frontend/package.json
frontend/package.json (2 hits)frontend/package.json
frontend/package.json
frontend/package.json
frontend/package.json
frontend/package.jsonopenhands-ui/package.jsonpoetry.lock
poetry.lock
poetry.lock
poetry.lock
poetry.lock
poetry.lock
poetry.lock
poetry.lock
poetry.lock
poetry.lock
poetry.lock
poetry.lock
poetry.lock
poetry.lock
poetry.lock
poetry.lock
poetry.lock
poetry.lock
poetry.lock
openhands-ui/bun.lock
openhands-ui/bun.lock
containers/app/Dockerfile:2
containersPinned dependencies
containers/app/Dockerfile:11
containersPinned dependencies
containers/dev/Dockerfile:4
containersPinned dependencies
.github/workflows/py-tests.yml:33, 40, 48, 64, 79, 83, 96, 112, +1 more (14 hits).github/workflows/issue-opened.yml:42, 76, 79, 199, 456, 459, 479, 632, +2 more (10 hits).github/workflows/lint.yml:24, 26, 46, 50, 63, 67 (9 hits).github/workflows/pr-readiness-confirm.yml:42, 180, 194, 220 (8 hits).github/workflows/npm-publish-ui.yml:30, 66 (4 hits).github/workflows/fe-e2e-tests.yml:27, 29, 44 (3 hits).github/workflows/_build-image.yml:58, 105 (2 hits).github/workflows/check-package-versions.yml:15, 18 (2 hits)repo-level (13 hits)repo-level (3 hits)Showing first 300 of 398. Refine filters or use the findings page for deep search.
This page is publicly accessible at:
https://repobility.com/scan/3808c140-1460-4c5b-8651-204c3325fe6f/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/3808c140-1460-4c5b-8651-204c3325fe6f/
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.