RepoTrust

Leaderboard github.com

S3cur3Th1sSh1t/multiplayer_snake

A mix of Snake and "Achtung die Kurve" with multiplayer mode

  • View repository ↗
  • Python
  • ★ 2
  • commit 681613f1ad5d
  • scored 2026-11-14
  • scoring prov-5+qual-2+sec-2

unreviewed-ai-risk

AI provenance

39%

explicit

Confidence
76%
Coverage
100%

Estimated share of AI-generated code. Explicit attribution is a lower bound.

Code quality

21/100

poor

Confidence
90%
Coverage
100%

Complexity, duplication, lint density, tests, CI, docs and review process.

Security

66/100

weak

Confidence
85%
Coverage
100%

Secrets, static analysis, vulnerable dependencies, CI and supply-chain posture.

AI provenance

39% explicit

Explicit AI attribution on 39% of first-party code added; an estimated 39% including velocity signals.

How the score is built

  • Explicitly attributed share39%
  • Unattributed share in AI-pace bursts0%
  • Estimated AI-generated share39%
  • AI tool configuration files0
  • Work sessions at AI pace1
  • Releases at AI pacenot measured
  • Coding-style index (1.0+ means possible)1.47

Attributed AI tools

ToolCommitsLines addedFirst seenLast seen
GitHub Copilot coding agent182,5922026-02-212026-02-22

Lines added per month all AI-attributed share

  1. 2026-014,042 · 0% AI
  2. 2026-022,592 · 100% AI

Findings in AI-attributed lines vs the rest

From git blame: 2,313 lines trace to AI-attributed commits, 3,823 to others. Reported, not scored.

Findings per 1,000 linesAI-attributedOtherRatio
Code quality0.005.750.00×
Security6.492.352.75×

Evidence by analyzer

Explicit AI attributionok19 items
attributed_commit_share
75.0%
attributed_commits
18
attributed_loc
2,592
attributed_loc_share
39.1%
commits
24
effective_loc
6,634
tools_detected
1
AI tool configurationok
artifacts
0
tools_configured
0
workflow_agents
0
Commit velocityok1 item
excluded_import_loc
3,581
flagged_loc
1,563
flagged_loc_share
51.2%
flagged_units
1
max_loc_per_hour
633.65
measured_loc
3,053
median_loc_per_hour
94.15
pr_timed_units
0
pre_ai_era_burst_loc
0
pre_ai_era_bursts
0
pre_ai_era_measured_loc
0
work_units
6
Release velocityskipped
Coding styleok1 item
count:assistant_voice
0
count:emoji_in_code
16
count:narrated_steps
1
count:placeholder
0
files:assistant_voice
0
files:emoji_in_code
2
files:narrated_steps
1
files:placeholder
0
index
1.47
lines_scanned
6,136
per_kloc:assistant_voice
0
per_kloc:emoji_in_code
2.61
per_kloc:narrated_steps
0.16
per_kloc:placeholder
0
Findings in AI-written linesok
ai_lines
2,313
blame_failures
0
files_blamed
3
other_lines
3,823
quality:ai_findings
0
quality:ai_per_kloc
0
quality:other_findings
22
quality:other_per_kloc
5.75
quality:ratio
0
security:ai_findings
15
security:ai_per_kloc
6.49
security:other_findings
9
security:other_per_kloc
2.35
security:ratio
2.75

Code quality

21 poor

Code quality is poor: test-to-source ratio 0.00, no CI test run detected; 45% of function code in complex or long functions; 20% duplicated lines. Weakest area: testing.

How the score is built

  • Complexity26
  • Duplication29
  • Lint and smells21
  • Tests and CI0
  • Documentation40
  • Type safety40
  • Review processnot measured

Evidence by analyzer

Complexity (lizard)ok10 items
complex_functions
23
function_nloc
4,153
functions
184
long_functions
6
many_param_functions
2
mean_ccn
8.39
p90_ccn
20
risky_nloc_share
44.7%
Duplication (jscpd)ok2 items
compared_lines
5,010
duplicated_lines
1,021
duplicated_share
20.4%
files
3
Lintok
category:best-practice
16
category:maintainability
6
findings
22
scanned_lines
6,136
weighted_findings
38
Tests and CIok
check:ci_present
no
check:ci_runs_lint
no
check:ci_runs_tests
no
check:has_tests
no
check:test_ratio
no
check:tests_cochange
no
ci_files
0
cochange_commits
20
cochange_share
0.0%
source_lines
6,136
test_lines
0
test_ratio
0
Documentationok1 item
  • README.md README.md
check:changelog
no
check:contributing
no
check:license
no
check:readme
yes
readme_lines
271
Type safetyok
check:low_escape_density
yes
check:strict_config
no
escapes
0
escapes_per_kloc
0

Security

66 weak

Security posture is weak: 46 known vulnerabilities in 1 dependencies; 8 high-severity SAST findings. Weakest area: posture.

How the score is built

  • Secrets97
  • Static analysis (SAST)48
  • Vulnerable dependencies78
  • CI workflowsnot measured
  • Security posture0
  • OpenSSF Scorecardnot measured

Evidence by analyzer

OpenSSF Scorecardskipped

no published OpenSSF Scorecard result for this repo

Package registriesok
checked
2
declared
2
lookup_errors
0
missing
0
recent
0
Secrets (gitleaks)ok
secrets_current
0
secrets_history
0
secrets_low_confidence
0
secrets_nonprod
1
Static analysis (opengrep)ok
findings
24
findings_high
8
findings_low
1
findings_medium
15
parse_errors
0
scanned_lines
6,136
weighted_findings
12.80
Dependencies (osv-scanner)ok
penalty
15
vulnerabilities
46
vulnerable_packages
1
vulns_critical
1
vulns_high
20
vulns_low
6
vulns_medium
19
vulns_unknown
0
CI workflows (zizmor)skipped
Security postureok
check:dependency_updates
no
check:lockfiles
yes
check:security_policy
no
check:signed_commits
no
signed_commit_share
20.8%
unpinned_manifests
0
Release downloadsok2 items
binary_assets
1
signals
2
suspicious
0

Findings

1 critical36 high48 medium8 low

SeverityRuleLocationMessageTool
critical osv/GHSA-63hf-3vf5-4wqf web/requirements.txt [email protected] (PyPI) is affected by PYSEC-2026-2102, GHSA-63hf-3vf5-4wqf Dependencies (osv-scanner)
high opengrep/python.lang.best-practice.arbitrary-sleep snake_game.py:1454 time.sleep() call; did you mean to leave this in? Lint
high opengrep/python.lang.best-practice.arbitrary-sleep snake_game.py:1990 time.sleep() call; did you mean to leave this in? Lint
high opengrep/python.lang.best-practice.arbitrary-sleep snake_game.py:2569 time.sleep() call; did you mean to leave this in? Lint
high opengrep/python.lang.best-practice.arbitrary-sleep snake_game.py:2886 time.sleep() call; did you mean to leave this in? Lint
high opengrep/python.lang.best-practice.arbitrary-sleep snake_game.py:2925 time.sleep() call; did you mean to leave this in? Lint
high opengrep/python.lang.best-practice.arbitrary-sleep snake_game.py:314 time.sleep() call; did you mean to leave this in? Lint
high opengrep/python.lang.best-practice.arbitrary-sleep snake_game.py:316 time.sleep() call; did you mean to leave this in? Lint
high opengrep/python.lang.best-practice.open-never-closed snake_game.py:332 file object opened without corresponding close Lint
high opengrep/javascript.browser.security.insecure-document-method web/game.js:279 User controlled data in methods like `innerHTML`, `outerHTML` or `document.write` is an anti-pattern that can lead to XSS vulnerabilities [confidence low] Static analysis (opengrep)
high opengrep/javascript.browser.security.insecure-innerhtml web/game.js:279 User controlled data in a `fireBtn.innerHTML` is an anti-pattern that can lead to XSS vulnerabilities [confidence low] Static analysis (opengrep)
high opengrep/javascript.browser.security.insecure-document-method web/game.js:295 User controlled data in methods like `innerHTML`, `outerHTML` or `document.write` is an anti-pattern that can lead to XSS vulnerabilities [confidence low] Static analysis (opengrep)
high opengrep/javascript.browser.security.insecure-innerhtml web/game.js:295 User controlled data in a `playerList.innerHTML` is an anti-pattern that can lead to XSS vulnerabilities [confidence low] Static analysis (opengrep)
high opengrep/javascript.browser.security.insecure-document-method web/game.js:310 User controlled data in methods like `innerHTML`, `outerHTML` or `document.write` is an anti-pattern that can lead to XSS vulnerabilities [confidence low] Static analysis (opengrep)
high opengrep/javascript.browser.security.insecure-innerhtml web/game.js:310 User controlled data in a `gameOverRankings.innerHTML` is an anti-pattern that can lead to XSS vulnerabilities [confidence low] Static analysis (opengrep)
high opengrep/javascript.browser.security.insecure-document-method web/game.js:368 User controlled data in methods like `innerHTML`, `outerHTML` or `document.write` is an anti-pattern that can lead to XSS vulnerabilities [confidence low] Static analysis (opengrep)
high opengrep/javascript.browser.security.insecure-innerhtml web/game.js:368 User controlled data in a `hudWeapons.innerHTML` is an anti-pattern that can lead to XSS vulnerabilities [confidence low] Static analysis (opengrep)
high osv/GHSA-2fqr-mr3j-6wp8 web/requirements.txt [email protected] (PyPI) is affected by PYSEC-2026-2112, GHSA-2fqr-mr3j-6wp8 Dependencies (osv-scanner)
high osv/GHSA-2g87-pp6c-29x5 web/requirements.txt [email protected] (PyPI) is affected by GHSA-2g87-pp6c-29x5 Dependencies (osv-scanner)
high osv/GHSA-4fvr-rgm6-gqmc web/requirements.txt [email protected] (PyPI) is affected by PYSEC-2026-2107, GHSA-4fvr-rgm6-gqmc Dependencies (osv-scanner)
high osv/GHSA-4m7w-qmgq-4wj5 web/requirements.txt [email protected] (PyPI) is affected by PYSEC-2026-237, GHSA-4m7w-qmgq-4wj5 Dependencies (osv-scanner)
high osv/GHSA-5h86-8mv2-jq9f web/requirements.txt [email protected] (PyPI) is affected by PYSEC-2024-24, GHSA-5h86-8mv2-jq9f Dependencies (osv-scanner)
high osv/GHSA-5m98-qgg9-wh84 web/requirements.txt [email protected] (PyPI) is affected by PYSEC-2026-1098, GHSA-5m98-qgg9-wh84 Dependencies (osv-scanner)
high osv/GHSA-5wr8-gcqf-gqf3 web/requirements.txt [email protected] (PyPI) is affected by GHSA-5wr8-gcqf-gqf3 Dependencies (osv-scanner)
high osv/GHSA-63hw-fmq6-xxg2 web/requirements.txt [email protected] (PyPI) is affected by PYSEC-2026-2110, GHSA-63hw-fmq6-xxg2 Dependencies (osv-scanner)
high osv/GHSA-6mq8-rvhq-8wgg web/requirements.txt [email protected] (PyPI) is affected by PYSEC-2026-1101, GHSA-6mq8-rvhq-8wgg Dependencies (osv-scanner)
high osv/GHSA-9x8q-7h8h-wcw9 web/requirements.txt [email protected] (PyPI) is affected by PYSEC-2026-2113, GHSA-9x8q-7h8h-wcw9 Dependencies (osv-scanner)
high osv/GHSA-9xw5-w5jj-pvcg web/requirements.txt [email protected] (PyPI) is affected by GHSA-9xw5-w5jj-pvcg Dependencies (osv-scanner)
high osv/GHSA-cq5v-8q36-5273 web/requirements.txt [email protected] (PyPI) is affected by PYSEC-2026-3545, GHSA-cq5v-8q36-5273 Dependencies (osv-scanner)
high osv/GHSA-g3cq-j2xw-wf74 web/requirements.txt [email protected] (PyPI) is affected by PYSEC-2026-2111, GHSA-g3cq-j2xw-wf74 Dependencies (osv-scanner)
high osv/GHSA-hcc4-c3v8-rx92 web/requirements.txt [email protected] (PyPI) is affected by PYSEC-2026-2095, GHSA-hcc4-c3v8-rx92 Dependencies (osv-scanner)
high osv/GHSA-hg6j-4rv6-33pg web/requirements.txt [email protected] (PyPI) is affected by PYSEC-2026-2105, GHSA-hg6j-4rv6-33pg Dependencies (osv-scanner)
high osv/GHSA-jg22-mg44-37j8 web/requirements.txt [email protected] (PyPI) is affected by PYSEC-2026-2104, GHSA-jg22-mg44-37j8 Dependencies (osv-scanner)
high osv/GHSA-m5qp-6w8w-w647 web/requirements.txt [email protected] (PyPI) is affected by PYSEC-2026-2098, GHSA-m5qp-6w8w-w647 Dependencies (osv-scanner)
high osv/GHSA-m6qw-4cw2-hm4m web/requirements.txt [email protected] (PyPI) is affected by PYSEC-2026-2106, GHSA-m6qw-4cw2-hm4m Dependencies (osv-scanner)
high osv/GHSA-p998-jp59-783m web/requirements.txt [email protected] (PyPI) is affected by PYSEC-2026-2097, GHSA-p998-jp59-783m Dependencies (osv-scanner)
high osv/GHSA-xcgm-r5h9-7989 web/requirements.txt [email protected] (PyPI) is affected by PYSEC-2026-2108, GHSA-xcgm-r5h9-7989 Dependencies (osv-scanner)
medium opengrep/python.lang.maintainability.return-not-in-function snake_game.py:244 `return` only makes sense inside a function Lint
medium opengrep/python.lang.best-practice.unspecified-open-encoding snake_game.py:272 Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding="utf-8"). Lint
medium opengrep/python.lang.maintainability.is-function-without-parentheses snake_game.py:2757 Is "is_host" a function or an attribute? If it is a function, you may have meant self.logic.is_host() because self.logic.is_host is always true. Lint
medium opengrep/python.lang.maintainability.is-function-without-parentheses snake_game.py:2888 Is "is_host" a function or an attribute? If it is a function, you may have meant self.logic.is_host() because self.logic.is_host is always true. Lint
medium opengrep/python.lang.best-practice.unspecified-open-encoding snake_game.py:324 Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding="utf-8"). Lint
medium opengrep/python.lang.maintainability.is-function-without-parentheses snake_game.py:3245 Is "is_host" a function or an attribute? If it is a function, you may have meant self.logic.is_host() because self.logic.is_host is always true. Lint
medium opengrep/python.lang.best-practice.unspecified-open-encoding snake_game.py:332 Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding="utf-8"). Lint
medium opengrep/python.lang.maintainability.is-function-without-parentheses snake_game.py:3539 Is "is_host" a function or an attribute? If it is a function, you may have meant self.logic.is_host() because self.logic.is_host is always true. Lint
medium opengrep/python.lang.best-practice.unspecified-open-encoding snake_game.py:366 Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding="utf-8"). Lint
medium opengrep/python.lang.best-practice.unspecified-open-encoding snake_game.py:378 Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding="utf-8"). Lint
medium opengrep/python.lang.best-practice.unspecified-open-encoding snake_game.py:394 Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding="utf-8"). Lint
medium opengrep/python.lang.best-practice.unspecified-open-encoding snake_game.py:413 Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding="utf-8"). Lint
medium opengrep/python.lang.best-practice.unspecified-open-encoding snake_game.py:417 Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding="utf-8"). Lint
medium opengrep/python.lang.maintainability.is-function-without-parentheses snake_game.py:447 Is "is_host" a function or an attribute? If it is a function, you may have meant self.is_host() because self.is_host is always true. Lint
medium opengrep/python.lang.security.audit.insecure-file-permissions snake_game.py:262 These permissions `0o777` are widely permissive and grant access to more people than may be necessary. A good default is `0o644` which gives read and write access to yourself and read access to everyone else. [confidence medium] Static analysis (opengrep)
medium opengrep/python.lang.security.audit.insecure-file-permissions snake_game.py:263 These permissions `0o777` are widely permissive and grant access to more people than may be necessary. A good default is `0o644` which gives read and write access to yourself and read access to everyone else. [confidence medium] Static analysis (opengrep)
medium opengrep/python.lang.security.audit.insecure-file-permissions snake_game.py:276 These permissions `0o666` are widely permissive and grant access to more people than may be necessary. A good default is `0o644` which gives read and write access to yourself and read access to everyone else. [confidence medium] Static analysis (opengrep)
medium opengrep/python.lang.security.insecure-hash-algorithm-md5 snake_game.py:288 Detected MD5 hash algorithm which is considered insecure. MD5 is not collision resistant and is therefore not suitable as a cryptographic signature. Use SHA256 or SHA3 instead. [confidence medium] Static analysis (opengrep)
medium opengrep/python.lang.security.audit.insecure-file-permissions snake_game.py:326 These permissions `0o666` are widely permissive and grant access to more people than may be necessary. A good default is `0o644` which gives read and write access to yourself and read access to everyone else. [confidence medium] Static analysis (opengrep)
medium opengrep/python.lang.security.audit.insecure-file-permissions snake_game.py:334 These permissions `0o666` are widely permissive and grant access to more people than may be necessary. A good default is `0o644` which gives read and write access to yourself and read access to everyone else. [confidence medium] Static analysis (opengrep)
medium opengrep/python.lang.security.audit.insecure-file-permissions snake_game.py:383 These permissions `0o666` are widely permissive and grant access to more people than may be necessary. A good default is `0o644` which gives read and write access to yourself and read access to everyone else. [confidence medium] Static analysis (opengrep)
medium opengrep/python.lang.security.audit.insecure-file-permissions snake_game.py:399 These permissions `0o666` are widely permissive and grant access to more people than may be necessary. A good default is `0o644` which gives read and write access to yourself and read access to everyone else. [confidence medium] Static analysis (opengrep)
medium opengrep/javascript.lang.security.html-in-template-string web/game.js:279 This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS).... Static analysis (opengrep)
medium opengrep/javascript.lang.security.html-in-template-string web/game.js:297 This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS).... Static analysis (opengrep)
medium opengrep/javascript.lang.security.html-in-template-string web/game.js:313 This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS).... Static analysis (opengrep)
medium opengrep/javascript.lang.security.html-in-template-string web/game.js:361 This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS).... Static analysis (opengrep)
medium opengrep/javascript.lang.security.html-in-template-string web/game.js:362 This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS).... Static analysis (opengrep)
medium opengrep/javascript.lang.security.html-in-template-string web/game.js:366 This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS).... Static analysis (opengrep)
medium opengrep/javascript.lang.security.html-in-template-string web/game.js:368 This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS).... Static analysis (opengrep)
medium osv/GHSA-2vrm-gr82-f7m5 web/requirements.txt [email protected] (PyPI) is affected by PYSEC-2026-2096, GHSA-2vrm-gr82-f7m5 Dependencies (osv-scanner)
medium osv/GHSA-3wq7-rqq7-wx6j web/requirements.txt [email protected] (PyPI) is affected by PYSEC-2026-2099, GHSA-3wq7-rqq7-wx6j Dependencies (osv-scanner)
medium osv/GHSA-494j-54xm-rwp3 web/requirements.txt [email protected] (PyPI) is affected by GHSA-494j-54xm-rwp3 Dependencies (osv-scanner)
medium osv/GHSA-6cjc-53gc-5rqm web/requirements.txt [email protected] (PyPI) is affected by GHSA-6cjc-53gc-5rqm Dependencies (osv-scanner)
medium osv/GHSA-6jhg-hg63-jvvf web/requirements.txt [email protected] (PyPI) is affected by PYSEC-2026-1100, GHSA-6jhg-hg63-jvvf Dependencies (osv-scanner)
medium osv/GHSA-7gpw-8wmc-pm8g web/requirements.txt [email protected] (PyPI) is affected by PYSEC-2026-1102, GHSA-7gpw-8wmc-pm8g Dependencies (osv-scanner)
medium osv/GHSA-8495-4g3g-x7pr web/requirements.txt [email protected] (PyPI) is affected by PYSEC-2026-1103, GHSA-8495-4g3g-x7pr Dependencies (osv-scanner)
medium osv/GHSA-8qpw-xqxj-h4r2 web/requirements.txt [email protected] (PyPI) is affected by PYSEC-2024-26, GHSA-8qpw-xqxj-h4r2 Dependencies (osv-scanner)
medium osv/GHSA-966j-vmvw-g2g9 web/requirements.txt [email protected] (PyPI) is affected by PYSEC-2026-2100, GHSA-966j-vmvw-g2g9 Dependencies (osv-scanner)
medium osv/GHSA-c427-h43c-vf67 web/requirements.txt [email protected] (PyPI) is affected by PYSEC-2026-2103, GHSA-c427-h43c-vf67 Dependencies (osv-scanner)
medium osv/GHSA-f9xw-jh8m-3mwq web/requirements.txt [email protected] (PyPI) is affected by GHSA-f9xw-jh8m-3mwq Dependencies (osv-scanner)
medium osv/GHSA-g84x-mcqj-x9qq web/requirements.txt [email protected] (PyPI) is affected by PYSEC-2026-1106, GHSA-g84x-mcqj-x9qq Dependencies (osv-scanner)
medium osv/GHSA-hpj7-wq8m-9hgp web/requirements.txt [email protected] (PyPI) is affected by PYSEC-2026-2109, GHSA-hpj7-wq8m-9hgp Dependencies (osv-scanner)
medium osv/GHSA-jj3x-wxrx-4x23 web/requirements.txt [email protected] (PyPI) is affected by PYSEC-2026-1107, GHSA-jj3x-wxrx-4x23 Dependencies (osv-scanner)
medium osv/GHSA-mfx4-hv73-q22v web/requirements.txt [email protected] (PyPI) is affected by PYSEC-2026-3546, GHSA-mfx4-hv73-q22v Dependencies (osv-scanner)
medium osv/GHSA-mq44-7p77-q5h7 web/requirements.txt [email protected] (PyPI) is affected by PYSEC-2026-3547, GHSA-mq44-7p77-q5h7 Dependencies (osv-scanner)
medium osv/GHSA-mwh4-6h8g-pg8w web/requirements.txt [email protected] (PyPI) is affected by PYSEC-2026-2101, GHSA-mwh4-6h8g-pg8w Dependencies (osv-scanner)
medium osv/GHSA-pqxq-w44r-73xw web/requirements.txt [email protected] (PyPI) is affected by GHSA-pqxq-w44r-73xw Dependencies (osv-scanner)
medium osv/GHSA-w2fm-2cpv-w7v5 web/requirements.txt [email protected] (PyPI) is affected by PYSEC-2026-2094, GHSA-w2fm-2cpv-w7v5 Dependencies (osv-scanner)
low gitleaks/generic-api-key README.md:74 Possible generic-api-key secret in the current tree (test/docs/example file) Secrets (gitleaks)
low opengrep/python.lang.security.audit.network.avoid-bind-to-all-interfaces snake_game.py:2064 Running `socket.bind` to 0.0.0.0, or empty string could unexpectedly expose the server publicly as it binds to all available interfaces. Consider instead getting correct address from an environment variable or configuration file.... Static analysis (opengrep)
low osv/GHSA-54jq-c3m8-4m76 web/requirements.txt [email protected] (PyPI) is affected by PYSEC-2026-1097, GHSA-54jq-c3m8-4m76 Dependencies (osv-scanner)
low osv/GHSA-69f9-5gxw-wvc2 web/requirements.txt [email protected] (PyPI) is affected by PYSEC-2026-1099, GHSA-69f9-5gxw-wvc2 Dependencies (osv-scanner)
low osv/GHSA-9548-qrrj-x5pj web/requirements.txt [email protected] (PyPI) is affected by PYSEC-2026-1104, GHSA-9548-qrrj-x5pj Dependencies (osv-scanner)
low osv/GHSA-fh55-r93g-j68g web/requirements.txt [email protected] (PyPI) is affected by PYSEC-2026-1105, GHSA-fh55-r93g-j68g Dependencies (osv-scanner)
low osv/GHSA-gx76-c99x-2c96 web/requirements.txt [email protected] (PyPI) is affected by GHSA-gx76-c99x-2c96 Dependencies (osv-scanner)
low osv/GHSA-mqqc-3gqh-h2x8 web/requirements.txt [email protected] (PyPI) is affected by PYSEC-2026-1109, GHSA-mqqc-3gqh-h2x8 Dependencies (osv-scanner)

Tools and coverage

Every analyzer that ran on this commit. A failed or skipped tool is a coverage gap: its share of the score is left out and the coverage figure drops.

AnalyzerPillarStatusVersionFindingsNote
AI tool configurationAI provenanceoksignatures-v10
Explicit AI attributionAI provenanceoksignatures-v10
Release velocityAI provenanceskipped—0
Coding styleAI provenanceok—0
Commit velocityAI provenanceokprov-40
Findings in AI-written linesAI provenanceokgit-blame0
Complexity (lizard)Code qualityoklizard 1.25.10
DocumentationCode qualityok—0
Duplication (jscpd)Code qualityokrepotrust-dup-w60
LintCode qualityokopengrep 1.33.1; rules f1d2b562b41422
Tests and CICode qualityok—0
Type safetyCode qualityok—0
CI workflows (zizmor)Securityskipped—0
Dependencies (osv-scanner)Securityokosv-scanner version: 2.7.146
Release downloadsSecurityok—0
Security postureSecurityok—0
Package registriesSecurityok—0
Static analysis (opengrep)Securityokopengrep 1.33.1; rules f1d2b562b41424
OpenSSF ScorecardSecurityskipped—0no published OpenSSF Scorecard result for this repo
Secrets (gitleaks)Securityokgitleaks 8.30.11

Score history

Scores from different scoring versions aren't directly comparable.

ScoredCommitScoringAI provenanceQualitySecurity
2026-11-14681613f1ad5dprov-5+qual-2+sec-239%2166
2026-11-14681613f1ad5dprov-4+qual-2+sec-239%2166

Embed a badge

Maintainers can show these in a README. Badges update when the repository is re-scored.

[![RepoTrust ai](https://repotrust.synapticcyber.com/badge/github.com/S3cur3Th1sSh1t/multiplayer_snake/ai.svg)](https://repotrust.synapticcyber.com/r/github.com/S3cur3Th1sSh1t/multiplayer_snake/)
[![RepoTrust quality](https://repotrust.synapticcyber.com/badge/github.com/S3cur3Th1sSh1t/multiplayer_snake/quality.svg)](https://repotrust.synapticcyber.com/r/github.com/S3cur3Th1sSh1t/multiplayer_snake/)
[![RepoTrust security](https://repotrust.synapticcyber.com/badge/github.com/S3cur3Th1sSh1t/multiplayer_snake/security.svg)](https://repotrust.synapticcyber.com/r/github.com/S3cur3Th1sSh1t/multiplayer_snake/)
Full text report

Scores

Unreviewed AI code risk: a large share of this code is explicitly AI-attributed, and its tests or review process are weak while quality or security scores are low.

Pillar Score Signal Confidence Coverage
AI provenance (estimated AI-generated share) 39 explicit 76% 100%
Code quality 21 poor 90% 100%
Security 66 weak 85% 100%

AI provenance

Explicit AI attribution on 39% of first-party code added; an estimated 39% including velocity signals.

  • Explicitly attributed share (lower bound): 39.1%
  • Unattributed share in AI-consistent velocity bursts: 0.0%
  • Estimated AI-generated share: 39.1%
AI tool Attributed commits Lines added
GitHub Copilot coding agent 18 2,592

Current source lines last changed by AI-attributed commits: 2,313 of 6,136.

Findings per 1,000 lines AI-attributed Other Ratio
Quality 0.0 5.755 0.0x
Security 6.485 2.354 2.75x
  • Stylometry index: 1.47 per 1,000 lines (narrated steps 1, placeholders 0, assistant phrasing 0, emoji 16). Reported as a signal, not scored.
Month Lines added Attributed to AI
2026-01 4,042 0%
2026-02 2,592 100%

Evidence

  • GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot' (fde76a50cb0c)
  • GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot' (ef6895e8fcf4)
  • GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot' (d6086c578433)
  • GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot' (881c640bd23b)
  • GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot' (952c0a44f446)
  • GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot' (8b3bda0334ac)
  • GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot' (63e3ded76f00)
  • GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot' (57392cdb6052)
  • GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot' (98d5d88e22c7)
  • GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot' (9aa5c8f934f1)
  • GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot' (3049f306cd67)
  • GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot' (782d27bd53e4)
  • GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot' (61cf4fa1c4a1)
  • GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot' (b863b70777d6)
  • GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot' (5116237be010)

AI provenance describes how code was produced; it is not a quality judgment. Unless attribution is explicit, these are signals consistent with AI generation, not proof. Squash/rebase workflows, imported code, and rewritten history reduce accuracy.

Code quality

Code quality is poor: test-to-source ratio 0.00, no CI test run detected; 45% of function code in complex or long functions; 20% duplicated lines. Weakest area: testing.

Area Score
Complexity (lizard) 26
Duplication 29
Code smells (Opengrep) 21
Tests and CI 0
Documentation 40
Type safety 40
Process (Scorecard review/maintenance) n/a
  • Functions: 184; mean complexity 8.4, 90th percentile 20; 23 complex and 6 long functions
  • Duplicated lines: 20.4% of 5,010 compared
  • Tests: 0 test lines for 6,136 source lines (ratio 0.00); CI test commands: none detected; 0% of recent source commits also change tests
  • Docs missing or thin: license, contributing, changelog

Most complex functions:

Security

Security posture is weak: 46 known vulnerabilities in 1 dependencies; 8 high-severity SAST findings. Weakest area: posture.

Area Score
Secrets (gitleaks, tree + history) 97
Static analysis (Opengrep) 48
Vulnerable dependencies (OSV) 78
CI workflows (zizmor) n/a
Posture (policy, updates, signing, lockfiles) 0
OpenSSF Scorecard n/a
  • Known vulnerabilities: 46 in 1 packages (critical 1, high 20, medium 19, low 6)

  • Posture checks passed: lockfiles; missing: security policy, dependency updates, signed commits

Top findings

Severity Finding Location
critical osv/GHSA-63hf-3vf5-4wqf: [email protected] (PyPI) is affected by PYSEC-2026-2102, GHSA-63hf-3vf5-4wqf web/requirements.txt
high opengrep/javascript.browser.security.insecure-document-method: User controlled data in methods like innerHTML, outerHTML or document.write is an anti-pattern that can lead to XSS vulnerabilities [confidence low] web/game.js:279
high opengrep/javascript.browser.security.insecure-innerhtml: User controlled data in a fireBtn.innerHTML is an anti-pattern that can lead to XSS vulnerabilities [confidence low] web/game.js:279
high opengrep/javascript.browser.security.insecure-document-method: User controlled data in methods like innerHTML, outerHTML or document.write is an anti-pattern that can lead to XSS vulnerabilities [confidence low] web/game.js:295
high opengrep/javascript.browser.security.insecure-innerhtml: User controlled data in a playerList.innerHTML is an anti-pattern that can lead to XSS vulnerabilities [confidence low] web/game.js:295
high opengrep/javascript.browser.security.insecure-document-method: User controlled data in methods like innerHTML, outerHTML or document.write is an anti-pattern that can lead to XSS vulnerabilities [confidence low] web/game.js:310
high opengrep/javascript.browser.security.insecure-innerhtml: User controlled data in a gameOverRankings.innerHTML is an anti-pattern that can lead to XSS vulnerabilities [confidence low] web/game.js:310
high opengrep/javascript.browser.security.insecure-document-method: User controlled data in methods like innerHTML, outerHTML or document.write is an anti-pattern that can lead to XSS vulnerabilities [confidence low] web/game.js:368
high opengrep/javascript.browser.security.insecure-innerhtml: User controlled data in a hudWeapons.innerHTML is an anti-pattern that can lead to XSS vulnerabilities [confidence low] web/game.js:368
high osv/GHSA-5h86-8mv2-jq9f: [email protected] (PyPI) is affected by PYSEC-2024-24, GHSA-5h86-8mv2-jq9f web/requirements.txt
high osv/GHSA-5m98-qgg9-wh84: [email protected] (PyPI) is affected by PYSEC-2026-1098, GHSA-5m98-qgg9-wh84 web/requirements.txt
high osv/GHSA-6mq8-rvhq-8wgg: [email protected] (PyPI) is affected by PYSEC-2026-1101, GHSA-6mq8-rvhq-8wgg web/requirements.txt
high osv/GHSA-hcc4-c3v8-rx92: [email protected] (PyPI) is affected by PYSEC-2026-2095, GHSA-hcc4-c3v8-rx92 web/requirements.txt
high osv/GHSA-p998-jp59-783m: [email protected] (PyPI) is affected by PYSEC-2026-2097, GHSA-p998-jp59-783m web/requirements.txt
high osv/GHSA-m5qp-6w8w-w647: [email protected] (PyPI) is affected by PYSEC-2026-2098, GHSA-m5qp-6w8w-w647 web/requirements.txt
high osv/GHSA-jg22-mg44-37j8: [email protected] (PyPI) is affected by PYSEC-2026-2104, GHSA-jg22-mg44-37j8 web/requirements.txt
high osv/GHSA-hg6j-4rv6-33pg: [email protected] (PyPI) is affected by PYSEC-2026-2105, GHSA-hg6j-4rv6-33pg web/requirements.txt
high osv/GHSA-m6qw-4cw2-hm4m: [email protected] (PyPI) is affected by PYSEC-2026-2106, GHSA-m6qw-4cw2-hm4m web/requirements.txt
high osv/GHSA-4fvr-rgm6-gqmc: [email protected] (PyPI) is affected by PYSEC-2026-2107, GHSA-4fvr-rgm6-gqmc web/requirements.txt
high osv/GHSA-xcgm-r5h9-7989: [email protected] (PyPI) is affected by PYSEC-2026-2108, GHSA-xcgm-r5h9-7989 web/requirements.txt
high osv/GHSA-63hw-fmq6-xxg2: [email protected] (PyPI) is affected by PYSEC-2026-2110, GHSA-63hw-fmq6-xxg2 web/requirements.txt
high osv/GHSA-g3cq-j2xw-wf74: [email protected] (PyPI) is affected by PYSEC-2026-2111, GHSA-g3cq-j2xw-wf74 web/requirements.txt
high osv/GHSA-2fqr-mr3j-6wp8: [email protected] (PyPI) is affected by PYSEC-2026-2112, GHSA-2fqr-mr3j-6wp8 web/requirements.txt
high osv/GHSA-9x8q-7h8h-wcw9: [email protected] (PyPI) is affected by PYSEC-2026-2113, GHSA-9x8q-7h8h-wcw9 web/requirements.txt
high osv/GHSA-4m7w-qmgq-4wj5: [email protected] (PyPI) is affected by PYSEC-2026-237, GHSA-4m7w-qmgq-4wj5 web/requirements.txt

Static signals only: the scorer never runs the project's code. Secret findings are pattern matches that were not verified, and secret values are never stored.

Distribution signals

Signals consistent with a repository that exists to distribute a download. They are heuristics, not a verdict; release files were not downloaded or inspected.

Repository profile

  • Source lines: 6,136; test lines: 0
Language Lines
Python 5,031
JavaScript 1,105