Scan timing: clone 1.65s · analysis 21.78s · 3.3 MB · GitHub API rate-limit (preflight)
https://github.com/hackclub/hackatime
· scanned 2026-06-05 17:54 UTC (4 days, 21 hours ago)
· 10 languages
201 raw signals (117 security + 84 graph) System graph score 69 (lower by 6)
Last scanned 4 days, 21 hours ago · v2 · 97 actionable findings from 2 signal sources. 62 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 |
85.0 | 0.15 | 12.75 |
security_score |
36.2 | 0.25 | 9.05 |
testing_score |
61.0 | 0.20 | 12.20 |
documentation_score |
60.8 | 0.15 | 9.12 |
practices_score |
86.0 | 0.15 | 12.90 |
code_quality |
71.9 | 0.10 | 7.19 |
| Overall | 1.00 | 63.2 |
All 961 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 |
|---|---|---|---|
.rubocop.yml |
software | healthy | .rubocop.yml |
.erb_lint.yml |
software | healthy | .erb_lint.yml |
.prettierrc.json |
software | healthy | .prettierrc.json |
vite.config.ts |
software | warning | vite.config.ts |
entrypoint.dev.sh |
software | healthy | entrypoint.dev.sh |
DEVELOPMENT.md |
software | healthy | DEVELOPMENT.md |
Gemfile |
software | healthy | Gemfile |
README.md |
software | healthy | README.md |
tsconfig.svelte-check.json |
software | healthy | tsconfig.svelte-check.json |
CLAUDE.md |
software | healthy | CLAUDE.md |
bunfig.toml |
software | healthy | bunfig.toml |
package.json |
software | healthy | package.json |
tsconfig.node.json |
software | healthy | tsconfig.node.json |
Dockerfile |
software | healthy | Dockerfile |
svelte.config.js |
software | warning | svelte.config.js |
knip.json |
software | healthy | knip.json |
slack_manifest_sailors_log.yml |
software | healthy | slack_manifest_sailors_log.yml |
.env.example |
software | healthy | .env.example |
tsconfig.json |
software | healthy | tsconfig.json |
slack_manifest_harbor.yml |
software | healthy | slack_manifest_harbor.yml |
AGENTS.md |
software | healthy | AGENTS.md |
docker-compose.yml |
software | healthy | docker-compose.yml |
swagger_helper.rb |
software | healthy | spec/swagger_helper.rb |
spec_helper.rb |
software | healthy | spec/spec_helper.rb |
rails_helper.rb |
software | healthy | spec/rails_helper.rb |
slack_spec.rb |
software | healthy | spec/requests/slack_spec.rb |
summary_spec.rb |
software | healthy | spec/requests/api/summary_spec.rb |
compatibility_spec.rb |
software | healthy | spec/requests/api/hackatime/v1/compatibility_spec.rb |
my_spec.rb |
software | healthy | spec/requests/api/v1/my_spec.rb |
leaderboards_spec.rb |
software | healthy | spec/requests/api/v1/leaderboards_spec.rb |
authenticated_spec.rb |
software | healthy | spec/requests/api/v1/authenticated_spec.rb |
stats_spec.rb |
software | healthy | spec/requests/api/v1/stats_spec.rb |
users_spec.rb |
software | healthy | spec/requests/api/v1/users_spec.rb |
external_spec.rb |
software | healthy | spec/requests/api/v1/external_spec.rb |
internal_spec.rb |
software | healthy | spec/requests/api/internal/internal_spec.rb |
permissions_spec.rb |
software | healthy | spec/requests/api/admin/v1/permissions_spec.rb |
heartbeats_spec.rb |
software | healthy | spec/requests/api/admin/v1/heartbeats_spec.rb |
leaderboard_shadowbans_spec.rb |
software | healthy | spec/requests/api/admin/v1/leaderboard_shadowbans_spec.rb |
admin_user_utils_spec.rb |
software | healthy | spec/requests/api/admin/v1/admin_user_utils_spec.rb |
admin_resources_spec.rb |
software | healthy | spec/requests/api/admin/v1/admin_resources_spec.rb |
admin_timeline_spec.rb |
software | healthy | spec/requests/api/admin/v1/admin_timeline_spec.rb |
admin_users_spec.rb |
software | healthy | spec/requests/api/admin/v1/admin_users_spec.rb |
heartbeats.json |
software | healthy | spec/fixtures/heartbeats.json |
environment.rb |
software | healthy | config/environment.rb |
skylight.yml |
software | healthy | config/skylight.yml |
languages_custom.yml |
software | healthy | config/languages_custom.yml |
storage.yml |
software | healthy | config/storage.yml |
cable.yml |
software | healthy | config/cable.yml |
vite.json |
software | healthy | config/vite.json |
cache.yml |
software | healthy | config/cache.yml |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
spec |
software | healthy | spec |
requests |
software | healthy | spec/requests |
api |
software | healthy | spec/requests/api |
hackatime |
software | healthy | spec/requests/api/hackatime |
v1 |
software | healthy | spec/requests/api/hackatime/v1 |
v1 |
software | healthy | spec/requests/api/v1 |
internal |
software | healthy | spec/requests/api/internal |
admin |
software | healthy | spec/requests/api/admin |
v1 |
software | healthy | spec/requests/api/admin/v1 |
fixtures |
software | healthy | spec/fixtures |
config |
software | healthy | config |
locales |
software | healthy | config/locales |
initializers |
software | healthy | config/initializers |
environments |
software | healthy | config/environments |
swagger |
software | healthy | swagger |
v1 |
software | healthy | swagger/v1 |
test |
software | healthy | test |
integration |
software | healthy | test/integration |
models |
software | healthy | test/models |
concerns |
software | healthy | test/models/concerns |
fixtures |
software | healthy | test/fixtures |
mailers |
software | healthy | test/mailers |
previews |
software | healthy | test/mailers/previews |
lib |
software | healthy | test/lib |
controllers |
software | healthy | test/controllers |
api |
software | healthy | test/controllers/api |
hackatime |
software | healthy | test/controllers/api/hackatime |
v1 |
software | healthy | test/controllers/api/hackatime/v1 |
v1 |
software | healthy | test/controllers/api/v1 |
internal |
software | healthy | test/controllers/api/internal |
admin |
software | healthy | test/controllers/api/admin |
v1 |
software | healthy | test/controllers/api/admin/v1 |
doorkeeper |
software | healthy | test/controllers/doorkeeper |
admin |
software | healthy | test/controllers/admin |
my |
software | healthy | test/controllers/my |
custom_doorkeeper |
software | healthy | test/controllers/custom_doorkeeper |
system |
software | healthy | test/system |
settings |
software | healthy | test/system/settings |
admin |
software | healthy | test/system/admin |
services |
software | healthy | test/services |
jobs |
software | healthy | test/jobs |
docs |
software | healthy | docs |
editors |
software | healthy | docs/editors |
oauth |
software | healthy | docs/oauth |
getting-started |
software | healthy | docs/getting-started |
app |
software | healthy | app |
models |
software | healthy | app/models |
concerns |
software | healthy | app/models/concerns |
javascript |
software | healthy | app/javascript |
types |
software | healthy | app/javascript/types |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
outta |
software | healthy | app/javascript/application.js:outta |
pluralize |
software | healthy | app/javascript/utils.ts:pluralize |
toSentence |
software | healthy | app/javascript/utils.ts:toSentence |
secondsToDisplay |
software | healthy | app/javascript/utils.ts:secondsToDisplay |
secondsToDetailedDisplay |
software | healthy | app/javascript/utils.ts:secondsToDetailedDisplay |
secondsToCompactDisplay |
software | healthy | app/javascript/utils.ts:secondsToCompactDisplay |
durationInWords |
software | healthy | app/javascript/utils.ts:durationInWords |
percentOf |
software | healthy | app/javascript/utils.ts:percentOf |
logScale |
software | healthy | app/javascript/utils.ts:logScale |
timeAgo |
software | healthy | app/javascript/utils.ts:timeAgo |
streakTheme |
software | healthy | app/javascript/utils.ts:streakTheme |
streakLabel |
software | healthy | app/javascript/utils.ts:streakLabel |
rankDisplay |
software | healthy | app/javascript/utils.ts:rankDisplay |
formatWith |
software | healthy | app/javascript/utils.ts:formatWith |
formatUtcDate |
software | healthy | app/javascript/utils.ts:formatUtcDate |
formatUtcDateTime |
software | healthy | app/javascript/utils.ts:formatUtcDateTime |
intervalParams |
software | healthy | app/javascript/pages/Projects/intervalNav.ts:intervalParams |
buildIntervalChange |
software | healthy | app/javascript/pages/Projects/intervalNav.ts:buildIntervalC… |
visitWithInterval |
software | healthy | app/javascript/pages/Projects/intervalNav.ts:visitWithInter… |
tabClass |
software | healthy | app/javascript/pages/Leaderboards/utils.ts:tabClass |
buildSections |
software | healthy | app/javascript/pages/Users/Settings/types.ts:buildSections |
buildSubsections |
software | healthy | app/javascript/pages/Users/Settings/types.ts:buildSubsectio… |
sectionFromHash |
software | healthy | app/javascript/pages/Users/Settings/types.ts:sectionFromHash |
copyToClipboard |
software | healthy | app/javascript/pages/OAuthApplications/components/copy.ts:c… |
debounce |
software | healthy | app/javascript/controllers/admin_timeline_user_selector_con… |
executedFunction |
software | healthy | app/javascript/controllers/admin_timeline_user_selector_con… |
later |
software | healthy | app/javascript/controllers/admin_timeline_user_selector_con… |
templateHtml |
software | healthy | app/javascript/entrypoints/rails_modals.ts:templateHtml |
mountModal |
software | healthy | app/javascript/entrypoints/rails_modals.ts:mountModal |
pruneUnmounted |
software | healthy | app/javascript/entrypoints/rails_modals.ts:pruneUnmounted |
mountAllRailsModals |
software | healthy | app/javascript/entrypoints/rails_modals.ts:mountAllRailsMod… |
currentPageName |
software | healthy | app/javascript/entrypoints/inertia.ts:currentPageName |
likelyNextPages |
software | healthy | app/javascript/entrypoints/inertia.ts:likelyNextPages |
prefetchPage |
software | healthy | app/javascript/entrypoints/inertia.ts:prefetchPage |
prefetchLikelyNextPages |
software | healthy | app/javascript/entrypoints/inertia.ts:prefetchLikelyNextPag… |
schedulePrefetch |
software | healthy | app/javascript/entrypoints/inertia.ts:schedulePrefetch |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::spec/requests/api/v1/external_spec.rb |
security | healthy | spec/requests/api/v1/external_spec.rb |
auth::config/locales/doorkeeper.en.yml |
security | healthy | config/locales/doorkeeper.en.yml |
auth::test/controllers/custom_doorkeeper/authorizations_con… |
security | healthy | test/controllers/custom_doorkeeper/authorizations_controlle… |
auth::config/routes.rb |
security | healthy | config/routes.rb |
auth::swagger/v1/swagger.yaml |
security | healthy | swagger/v1/swagger.yaml |
auth::app/models/concerns/oauth_authentication.rb |
security | healthy | app/models/concerns/oauth_authentication.rb |
auth::app/controllers/doorkeeper/applications_controller.rb |
security | healthy | app/controllers/doorkeeper/applications_controller.rb |
auth::.env.example |
security | healthy | .env.example |
auth::app/controllers/inertia_controller.rb |
security | healthy | app/controllers/inertia_controller.rb |
auth::app/controllers/sessions_controller.rb |
security | healthy | app/controllers/sessions_controller.rb |
auth::test/controllers/sessions_controller_test.rb |
security | healthy | test/controllers/sessions_controller_test.rb |
auth::test/integration/email_login_test.rb |
security | healthy | test/integration/email_login_test.rb |
| Label | Layer | Status | Path |
|---|---|---|---|
update-linguist |
cicd | healthy | .github/workflows/update-linguist.yml |
scan_ruby |
cicd | healthy | .github/workflows/ci.yml |
scan_js |
cicd | healthy | .github/workflows/ci.yml |
lint |
cicd | healthy | .github/workflows/ci.yml |
frontend |
cicd | healthy | .github/workflows/ci.yml |
zeitwerk |
cicd | healthy | .github/workflows/ci.yml |
docker_build |
cicd | healthy | .github/workflows/ci.yml |
test |
cicd | healthy | .github/workflows/ci.yml |
test_system |
cicd | healthy | .github/workflows/ci.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
port:80 |
network | healthy | Dockerfile |
port:1000 |
network | healthy | Dockerfile |
port:3000 |
network | healthy | docker-compose.yml |
port:3036 |
network | healthy | docker-compose.yml |
port:5432 |
network | healthy | docker-compose.yml |
port:10 |
network | healthy | swagger/v1/swagger.yaml |
port:23 |
network | healthy | swagger/v1/swagger.yaml |
port:59 |
network | healthy | swagger/v1/swagger.yaml |
| Label | Layer | Status | Path |
|---|---|---|---|
/Projects/intervalNav |
frontend | healthy | app/javascript/pages/Projects/intervalNav.ts |
/Projects/types |
frontend | healthy | app/javascript/pages/Projects/types.ts |
/Leaderboards/utils |
frontend | healthy | app/javascript/pages/Leaderboards/utils.ts |
/Home/signedIn/utils |
frontend | healthy | app/javascript/pages/Home/signedIn/utils.ts |
/Users/Settings/types |
frontend | healthy | app/javascript/pages/Users/Settings/types.ts |
/Users/Settings/components/SectionIcons |
frontend | healthy | app/javascript/pages/Users/Settings/components/SectionIcons… |
/OAuthApplications/types |
frontend | healthy | app/javascript/pages/OAuthApplications/types.ts |
/OAuthApplications/components/copy |
frontend | healthy | app/javascript/pages/OAuthApplications/components/copy.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
extends |
software | healthy | app/javascript/controllers/flash_controller.js:extends |
extends |
software | healthy | app/javascript/controllers/admin_timeline_user_selector_con… |
added |
software | healthy | app/javascript/controllers/admin_timeline_user_selector_con… |
extends |
software | healthy | app/javascript/controllers/nav_controller.js:extends |
| Label | Layer | Status | Path |
|---|---|---|---|
postgresql |
data | healthy | Gemfile |
postgres |
data | healthy | docker-compose.yml |
mysql |
data | healthy | config/languages.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
caddy |
network | healthy | config/languages.yml |
haproxy |
network | healthy | config/languages.yml |
nginx |
network | healthy | config/languages.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
image::Dockerfile |
hardware | healthy | Dockerfile |
web |
hardware | healthy | docker-compose.yml |
db |
hardware | healthy | docker-compose.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
vps::aws |
hardware | healthy | Gemfile |
vps::azure |
hardware | healthy | config/storage.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::update-linguist |
cicd | healthy | .github/workflows/update-linguist.yml |
gha::ci |
cicd | healthy | .github/workflows/ci.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-m044xjf8 |
software | healthy | /tmp/repobility-clone-m044xjf8 |
| Label | Layer | Status | Path |
|---|---|---|---|
gpu (detected) |
hardware | healthy | config/languages.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
GITHUB_TOKEN |
cicd | healthy | — |
This page is publicly accessible at:
https://repobility.com/scan/56bb2fd3-05ef-451b-9d47-d06ccc7ed7eb/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/56bb2fd3-05ef-451b-9d47-d06ccc7ed7eb/
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.