Public scan — anyone with this URL can view this analysis. Sign up to track your own repos privately, run scheduled re-scans, and get AI fix prompts via your dashboard.
6 of your 24 findings came from Repobility's proprietary detections. ✓ Repobility tags below mark them.

Scan timing: clone 3.59s · analysis 0.88s · 12.1 MB · GitHub API rate-limit (preflight)

AIMEHS/ehs-hub

https://github.com/AIMEHS/ehs-hub · scanned 2026-06-16 02:51 UTC (2 months, 1 week ago) · 10 languages

47 raw signals (23 security + 24 graph) 23rd percentile · Python · tiny (<2K LoC)

UNIFIED Repobility · multi-layer engine · AI coders

Complete repo analysis

Last scanned 2 months, 1 week ago · v5 · 26 actionable findings from 2 signal sources. 4 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.

JSON
Score breakdown â 2026-05-18-v5
Component Sub-score Weight Contribution
structure_score 55.0 0.15 8.25
security_score 83.5 0.25 20.88
testing_score 0.0 0.20 0.00
documentation_score 68.5 0.15 10.28
practices_score 55.0 0.15 8.25
code_quality 75.6 0.10 7.56
Overall 1.00 55.2
Severity distribution — click a segment to filter
Active filters: excluding tests × Reset all
Corpus Intelligence Cross-corpus context (cohort percentile, top patterns, fix plan) is shown only on repositories you own. Sign up and connect your repo to view it.
Scan summary Repository scanned at 67.6/100 with 55.6% coverage. It contains 7 nodes across 0 cross-layer flows, written primarily in mixed languages. Engine surfaced 7 findings — concentrated in security (4), quality (1), frontend (1). Risk profile is low: 0 critical, 0 high, 4 medium. Recommended next step: open the security layer findings first — that's where the highest-impact wins live.

Showing 17 of 26 actionable findings. 30 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.

critical Security checks security secrets conf 0.95 Detected a Generic API Key, potentially exposing access to various services and sensitive operations.
Gitleaks detected a committed secret or credential pattern.
index.html:544
low Security checks security path traversal conf 0.80 [SEC013] Path Traversal — User Input in File Path: User-controlled input used in file path without sanitization. Allows reading arbitrary files.
Use os.path.realpath() and verify the path starts with your expected base directory. Use secure_filename() for uploads.
sw.js:34
medium Security checks quality Practices conf 1.00 [CFG006] Missing .gitignore: No .gitignore file. Risk of committing secrets and build artifacts.
Add a .gitignore appropriate for your language/framework.
low Security checks quality Error handling conf 0.55 ✓ Repobility 3 occurrences Broad exception handler needs review
This handler catches Exception/BaseException. It is actionable when it swallows errors without logging, re-raising, or returning a structured error. Handlers that intentionally convert exceptions into typed error results should not be treated as high risk.
lines 34, 134, 166
scripts/scrape_adi.py:34, 134, 166 (3 hits)
Error handlingquality
high Security checks quality Quality conf 0.80 localStorage write failures are swallowed silently
localStorage quotas are small and writes can fail. Catching storage errors without a user-visible warning causes silent data loss when notes, images, or snapshots exceed quota.
index.html:565
medium Security checks quality Quality conf 0.70 Public web app has no Content Security Policy
A Content Security Policy reduces the blast radius of injected scripts if the app is ever served through preview, static hosting, or a web container outside its normal sandbox.
index.html
medium Security checks quality Quality conf 0.78 Public web service has no security.txt
security.txt gives researchers and customers a safe disclosure channel. Public web apps and APIs should publish it under /.well-known/security.txt.
.well-known/security.txt
medium Security checks quality Quality conf 0.72 Service worker is present without a web app manifest
A service worker without a manifest often means the PWA install surface is incomplete or inconsistent across devices.
manifest.json
medium System graph security security conf 1.00 Insecure pattern 'direct_innerhtml_assignment' in index.html:547
Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible.
index.html:547 Direct innerhtml assignment
medium System graph security security conf 1.00 Insecure pattern 'insert_adjacent_html' in index.html:1456
Found a known-risky pattern (insert_adjacent_html). Review and replace if possible.
index.html:1456 Insert adjacent html
medium System graph security Coverage conf 1.00 No auth library detected
The scanner did not find any standard auth library (JWT, OAuth, NextAuth, Auth0, etc.). The repo has auth/admin/session surface indicators, so auth may live in custom code, in a separate service, or be missing.
auth
medium System graph cicd CI/CD security conf 1.00 No CI/CD pipelines detected
No GitHub Actions, GitLab CI, or CircleCI configs found. Without CI you can't gate deploys on tests/lints.
CI/CD securityCoverage
low Security checks cicd CI/CD security conf 0.90 ✓ Repobility 3 occurrences GitHub Action is tag-pinned rather than SHA-pinned
Action `actions/checkout` pinned to mutable ref `@v4` uses a mutable tag or branch. Pin external actions to a reviewed full commit SHA when the workflow is security-sensitive.
3 files, 3 locations
.github/workflows/adi-refresh.yml:17
.github/workflows/echo-refresh.yml:15
.github/workflows/no-internal-notes.yml:15
CI/CD securitySupply chainGitHub Actions
low Security checks quality Documentation No LICENSE file
Add a LICENSE file to your repository. Use choosealicense.com to pick the right license (MIT for permissive, Apache 2.0 for patent protection, GPL for copyleft).
low Security checks quality Quality conf 0.64 Public docs site has no llms.txt
AI coding agents increasingly read llms.txt to find canonical docs and API workflows. Without it, agents are more likely to browse pages repeatedly or use stale instructions.
llms.txt
low Security checks quality Quality conf 0.50 Public web app has no humans.txt
humans.txt is optional, but it gives operators and reviewers a simple place to find ownership, contact, and important public documentation links.
humans.txt
low System graph security security conf 1.00 Insecure pattern 'document_write' in index.html:902
Found a known-risky pattern (document_write). Review and replace if possible.
index.html:902 Document write
For AI agents: Voting guide (TP/FP) MCP manifest Stdio wrapper SARIF Integrate Findings queue Vote TP/FP on findings to calibrate the engine.
For AI agents + API integrations
Email me when this repo regresses
Free. We re-scan periodically; new criticals → your inbox. No signup required for the scan itself.
API access

This page is publicly accessible at: https://repobility.com/scan/f0d86c64-bad2-4394-807e-0ca89494e7bd/

To check status programmatically (no auth required):

curl -s https://repobility.com/api/v1/public/scan/f0d86c64-bad2-4394-807e-0ca89494e7bd/

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.