Scan timing: clone 1.42s · analysis 0.53s · 2.4 MB · GitHub API rate-limit (preflight)
https://github.com/opengaming/osgameclones
· scanned 2026-05-31 01:24 UTC (5 days, 12 hours ago)
· 10 languages
99 findings (39 legacy + 60 scanner) 34th percentile · Python · small (2-20K LoC) Scanner says 81 (lower by 20)
Last scanned 5 days, 12 hours ago · v2 · 69 findings from 2 sources. Findings combine the legacy security pipeline AND the multi-layer engine (atlas, wiring, flows, ranked) AND verified AI agent contributions.
| Component | Sub-score | Weight | Contribution |
|---|---|---|---|
structure_score |
75.0 | 0.15 | 11.25 |
security_score |
83.5 | 0.25 | 20.88 |
testing_score |
0.0 | 0.20 | 0.00 |
documentation_score |
71.1 | 0.15 | 10.66 |
practices_score |
77.0 | 0.15 | 11.55 |
code_quality |
66.0 | 0.10 | 6.60 |
| Overall | 1.00 | 60.9 |
All 239 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 |
|---|---|---|---|
names |
software | healthy | _ext.py:60 |
slug |
software | healthy | _ext.py:30 |
wikilink |
software | healthy | _ext.py:34 |
abort |
software | healthy | _ext.py:41 |
validate |
software | healthy | _ext.py:46 |
parse_tag |
software | healthy | _ext.py:64 |
parse_unicode |
software | healthy | _ext.py:68 |
parse_unicode_tag |
software | healthy | _ext.py:78 |
parse_tags |
software | healthy | _ext.py:82 |
parse_global_tags |
software | healthy | _ext.py:107 |
parse_item |
software | dead | _ext.py:126 |
parse_items |
software | healthy | _ext.py:200 |
show_error |
software | healthy | _ext.py:233 |
show_errors |
software | healthy | _ext.py:238 |
show_validation_errors |
software | healthy | _ext.py:246 |
validate_with_schema |
software | healthy | _ext.py:258 |
sort_key |
software | dead | _ext.py:269 |
parse_data |
software | healthy | _ext.py:289 |
has_invalid_status |
software | healthy | _ext.py:357 |
env |
software | healthy | render.py:37 |
ctx |
software | healthy | render.py:42 |
render_to |
software | healthy | render.py:48 |
copy_to |
software | healthy | render.py:59 |
render_all |
software | healthy | render.py:64 |
normalize |
software | healthy | render.py:91 |
render_game_form |
software | healthy | render.py:97 |
render_data |
software | healthy | render.py:107 |
main |
software | healthy | render.py:113 |
menuclick |
software | healthy | static/main.js:menuclick |
getFilter |
software | healthy | static/main.js:getFilter |
filter |
software | healthy | static/main.js:filter |
filterBySelectedTags |
software | healthy | static/main.js:filterBySelectedTags |
sortByUpdated |
software | healthy | static/main.js:sortByUpdated |
highlightTagsMulti |
software | healthy | static/main.js:highlightTagsMulti |
safe |
software | healthy | static/main.js:safe |
renderSelectedTagsBar |
software | healthy | static/main.js:renderSelectedTagsBar |
updateTagsUI |
software | healthy | static/main.js:updateTagsUI |
toggleTagByName |
software | healthy | static/main.js:toggleTagByName |
onTagClick |
software | healthy | static/main.js:onTagClick |
init |
software | healthy | static/main.js:init |
getImages |
software | healthy | static/main.js:getImages |
addGameName |
software | healthy | static/main.js:addGameName |
validateImage |
software | healthy | static/main.js:validateImage |
downloadImage |
software | healthy | static/main.js:downloadImage |
time |
software | healthy | static/main.js:time |
onload |
software | healthy | static/main.js:onload |
onerror |
software | healthy | static/main.js:onerror |
reflect |
software | healthy | static/main.js:reflect |
resolved |
software | healthy | static/main.js:resolved |
rejected |
software | healthy | static/main.js:rejected |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
.yamllint.yml |
software | healthy | .yamllint.yml |
game.html |
software | healthy | game.html |
README.md |
software | healthy | README.md |
_ext.py |
software | healthy | _ext.py |
render.py |
software | healthy | render.py |
index.html |
software | healthy | index.html |
Dockerfile |
software | healthy | Dockerfile |
pyproject.toml |
software | healthy | pyproject.toml |
Makefile |
software | healthy | Makefile |
f.yaml |
software | healthy | games/f.yaml |
s.yaml |
software | healthy | games/s.yaml |
0.yaml |
software | healthy | games/0.yaml |
g.yaml |
software | healthy | games/g.yaml |
m.yaml |
software | healthy | games/m.yaml |
e.yaml |
software | healthy | games/e.yaml |
r.yaml |
software | healthy | games/r.yaml |
l.yaml |
software | healthy | games/l.yaml |
a.yaml |
software | healthy | games/a.yaml |
o.yaml |
software | healthy | games/o.yaml |
w.yaml |
software | healthy | games/w.yaml |
i.yaml |
software | healthy | games/i.yaml |
d.yaml |
software | healthy | games/d.yaml |
x.yaml |
software | healthy | games/x.yaml |
p.yaml |
software | healthy | games/p.yaml |
c.yaml |
software | healthy | games/c.yaml |
z.yaml |
software | healthy | games/z.yaml |
h.yaml |
software | healthy | games/h.yaml |
b.yaml |
software | healthy | games/b.yaml |
t.yaml |
software | healthy | games/t.yaml |
j.yaml |
software | healthy | games/j.yaml |
y.yaml |
software | healthy | games/y.yaml |
n.yaml |
software | healthy | games/n.yaml |
v.yaml |
software | healthy | games/v.yaml |
u.yaml |
software | healthy | games/u.yaml |
k.yaml |
software | healthy | games/k.yaml |
q.yaml |
software | healthy | games/q.yaml |
main.css |
software | healthy | static/main.css |
main.js |
software | healthy | static/main.js |
check_links.py |
software | healthy | scripts/check_links.py |
awesome_game_remakes.py |
software | healthy | scripts/awesome_game_remakes.py |
hacktoberfest.py |
software | healthy | scripts/hacktoberfest.py |
top_frameworks.py |
software | healthy | scripts/top_frameworks.py |
scrape_osgl_inspirations.py |
software | healthy | scripts/scrape_osgl_inspirations.py |
update-development-status.py |
software | healthy | scripts/update-development-status.py |
utils.py |
software | healthy | scripts/utils.py |
scrape_good_scummvm_games.py |
software | healthy | scripts/scrape_good_scummvm_games.py |
games.yaml |
software | healthy | schema/games.yaml |
originals.yaml |
software | healthy | schema/originals.yaml |
tags.html |
software | healthy | templates/tags.html |
games.html |
software | healthy | templates/games.html |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
games |
software | healthy | games |
static |
software | healthy | static |
scripts |
software | healthy | scripts |
schema |
software | healthy | schema |
templates |
software | healthy | templates |
forms |
software | healthy | templates/forms |
static |
software | healthy | templates/forms/static |
tagsinput |
software | healthy | templates/forms/static/tagsinput |
originals |
software | healthy | originals |
.github |
software | healthy | .github |
ISSUE_TEMPLATE |
software | healthy | .github/ISSUE_TEMPLATE |
workflows |
software | healthy | .github/workflows |
| Label | Layer | Status | Path |
|---|---|---|---|
Game |
software | healthy | _ext.py:20 |
Site |
software | healthy | render.py:32 |
when |
software | healthy | templates/forms/static/tagsinput/tagsinput.js:when |
and |
software | healthy | templates/forms/static/tagsinput/tagsinput.js:and |
on |
software | healthy | templates/forms/static/tagsinput/tagsinput.js:on |
| Label | Layer | Status | Path |
|---|---|---|---|
yamllint |
cicd | healthy | .github/workflows/main.yml |
build |
cicd | healthy | .github/workflows/main.yml |
deploy |
cicd | healthy | .github/workflows/main.yml |
pr_check |
cicd | healthy | .github/workflows/pr_check.yml |
upload |
cicd | healthy | .github/workflows/pr_comment.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
nginx |
network | healthy | Dockerfile |
caddy |
network | healthy | .github/languages.yml |
haproxy |
network | healthy | .github/languages.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::originals/p.yaml |
security | healthy | originals/p.yaml |
auth::games/s.yaml |
security | healthy | games/s.yaml |
auth::scripts/scrape_good_scummvm_games.py |
security | healthy | scripts/scrape_good_scummvm_games.py |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::main |
cicd | healthy | .github/workflows/main.yml |
gha::pr_check |
cicd | healthy | .github/workflows/pr_check.yml |
gha::pr_comment |
cicd | healthy | .github/workflows/pr_comment.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-7cpi0pz2 |
software | healthy | /tmp/repobility-clone-7cpi0pz2 |
| Label | Layer | Status | Path |
|---|---|---|---|
mysql |
data | healthy | .github/languages.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
port:80 |
network | healthy | Dockerfile |
| Label | Layer | Status | Path |
|---|---|---|---|
image::Dockerfile |
hardware | healthy | Dockerfile |
| Label | Layer | Status | Path |
|---|---|---|---|
gpu (detected) |
hardware | healthy | games/s.yaml |
| Label | Layer | Status | Path |
|---|---|---|---|
vps::azure |
hardware | healthy | games/c.yaml |
| Label | Layer | Status | Path |
|---|---|---|---|
GITHUB_TOKEN |
cicd | healthy | — |
This page is publicly accessible at:
https://repobility.com/scan/72d19b5e-7f9c-4656-9ae4-1db71aafbad8/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/72d19b5e-7f9c-4656-9ae4-1db71aafbad8/
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.