{"version": "2.1.0", "$schema": "https://json.schemastore.org/sarif-2.1.0.json", "runs": [{"tool": {"driver": {"name": "Repobility", "informationUri": "https://repobility.com", "rules": [{"id": "scanner-3be510ecd9a4fe20", "name": "Possibly dead Python function: style_pencil_sketch", "shortDescription": {"text": "Possibly dead Python function: style_pencil_sketch"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9f4a0964e4122ef4", "name": "Possibly dead Python function: style_watercolor", "shortDescription": {"text": "Possibly dead Python function: style_watercolor"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-797011a58859ca51", "name": "Possibly dead Python function: style_oil_painting", "shortDescription": {"text": "Possibly dead Python function: style_oil_painting"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5bcacc7549280b9d", "name": "Possibly dead Python function: style_neon_glow", "shortDescription": {"text": "Possibly dead Python function: style_neon_glow"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-530b6c82e9aecaf7", "name": "Possibly dead Python function: style_mosaic", "shortDescription": {"text": "Possibly dead Python function: style_mosaic"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a3d5ebd55b8c7215", "name": "Possibly dead Python function: style_vintage", "shortDescription": {"text": "Possibly dead Python function: style_vintage"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-506be2b95088f5d3", "name": "git log failed \u2014 history analysis incomplete", "shortDescription": {"text": "git log failed \u2014 history analysis incomplete"}, "fullDescription": {"text": "fatal: not a git repository (or any parent up to mount point /data)\nStopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set)."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9710c8d059e53154", "name": "No frontend routes/components detected", "shortDescription": {"text": "No frontend routes/components detected"}, "fullDescription": {"text": "No React/Vue/Next routes were found. This is fine for backend-only repos."}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f3d5013abdb5eb4d", "name": "Insecure pattern 'debug_true' in app.py:296", "shortDescription": {"text": "Insecure pattern 'debug_true' in app.py:296"}, "fullDescription": {"text": "Found a known-risky pattern (debug_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4601e3ad3bb28677", "name": "No CI/CD pipelines detected", "shortDescription": {"text": "No CI/CD pipelines detected"}, "fullDescription": {"text": "No GitHub Actions, GitLab CI, or CircleCI configs found. Without CI you can't gate deploys on tests/lints."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "0 test file(s) for 1 source file(s) (ratio 0.00). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea763a757bb5e623", "name": "Flask mutation route `transform` without `@login_required` \u2014 app.py:167", "shortDescription": {"text": "Flask mutation route `transform` without `@login_required` \u2014 app.py:167"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d01a015dc1c3fb61", "name": "Flask mutation route `restyle` without `@login_required` \u2014 app.py:218", "shortDescription": {"text": "Flask mutation route `restyle` without `@login_required` \u2014 app.py:218"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1a6d91f2236825bf", "name": "Unused endpoint: ANY /", "shortDescription": {"text": "Unused endpoint: ANY /"}, "fullDescription": {"text": "`app.py` declares `ANY /` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8671d8c33a5a069b", "name": "Unused endpoint: ANY /api/transform", "shortDescription": {"text": "Unused endpoint: ANY /api/transform"}, "fullDescription": {"text": "`app.py` declares `ANY /api/transform` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-dfc99a31dd2955d0", "name": "Unused endpoint: ANY /api/restyle", "shortDescription": {"text": "Unused endpoint: ANY /api/restyle"}, "fullDescription": {"text": "`app.py` declares `ANY /api/restyle` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cce8679b622f1739", "name": "Unused endpoint: ANY /api/job/<jid>", "shortDescription": {"text": "Unused endpoint: ANY /api/job/<jid>"}, "fullDescription": {"text": "`app.py` declares `ANY /api/job/<jid>` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a32944e726960747", "name": "Unused endpoint: ANY /api/job/<jid>/result", "shortDescription": {"text": "Unused endpoint: ANY /api/job/<jid>/result"}, "fullDescription": {"text": "`app.py` declares `ANY /api/job/<jid>/result` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f0366dfd463d0c8c", "name": "Unused endpoint: ANY /api/gpu-status", "shortDescription": {"text": "Unused endpoint: ANY /api/gpu-status"}, "fullDescription": {"text": "`app.py` declares `ANY /api/gpu-status` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/20089"}, "properties": {"repository": "SPB-AI-Data-Science-Club/style-transfer", "repoUrl": "https://github.com/SPB-AI-Data-Science-Club/style-transfer", "branch": "main"}, "results": [{"ruleId": "scanner-3be510ecd9a4fe20", "level": "note", "message": {"text": "Possibly dead Python function: style_pencil_sketch"}, "properties": {"repobilityId": "30a9f36e20270133", "scanner": "scanner-primary", "fingerprint": "3be510ecd9a4fe20", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py:30"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9f4a0964e4122ef4", "level": "note", "message": {"text": "Possibly dead Python function: style_watercolor"}, "properties": {"repobilityId": "1710f6cb8f4ddb40", "scanner": "scanner-primary", "fingerprint": "9f4a0964e4122ef4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py:45"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-797011a58859ca51", "level": "note", "message": {"text": "Possibly dead Python function: style_oil_painting"}, "properties": {"repobilityId": "39fee5ba4cef8f10", "scanner": "scanner-primary", "fingerprint": "797011a58859ca51", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py:64"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5bcacc7549280b9d", "level": "note", "message": {"text": "Possibly dead Python function: style_neon_glow"}, "properties": {"repobilityId": "e9aa73838180656e", "scanner": "scanner-primary", "fingerprint": "5bcacc7549280b9d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py:76"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-530b6c82e9aecaf7", "level": "note", "message": {"text": "Possibly dead Python function: style_mosaic"}, "properties": {"repobilityId": "e095339d9c643e4e", "scanner": "scanner-primary", "fingerprint": "530b6c82e9aecaf7", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py:98"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a3d5ebd55b8c7215", "level": "note", "message": {"text": "Possibly dead Python function: style_vintage"}, "properties": {"repobilityId": "9574fc3a2e10876c", "scanner": "scanner-primary", "fingerprint": "a3d5ebd55b8c7215", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py:107"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-506be2b95088f5d3", "level": "none", "message": {"text": "git log failed \u2014 history analysis incomplete"}, "properties": {"repobilityId": "b424308a11bb9b22", "scanner": "scanner-primary", "fingerprint": "506be2b95088f5d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["git", "tooling"]}}, {"ruleId": "scanner-9710c8d059e53154", "level": "none", "message": {"text": "No frontend routes/components detected"}, "properties": {"repobilityId": "44ca61485762e494", "scanner": "scanner-primary", "fingerprint": "9710c8d059e53154", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-f3d5013abdb5eb4d", "level": "note", "message": {"text": "Insecure pattern 'debug_true' in app.py:296"}, "properties": {"repobilityId": "820a29d1c28c9121", "scanner": "scanner-primary", "fingerprint": "f3d5013abdb5eb4d", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "debug_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 296}}}]}, {"ruleId": "scanner-4601e3ad3bb28677", "level": "warning", "message": {"text": "No CI/CD pipelines detected"}, "properties": {"repobilityId": "c3ee439bce2bc51e", "scanner": "scanner-primary", "fingerprint": "4601e3ad3bb28677", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-ea763a757bb5e623", "level": "error", "message": {"text": "Flask mutation route `transform` without `@login_required` \u2014 app.py:167"}, "properties": {"repobilityId": "9ca3dc546a605dd0", "scanner": "scanner-primary", "fingerprint": "ea763a757bb5e623", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 167}}}]}, {"ruleId": "scanner-d01a015dc1c3fb61", "level": "error", "message": {"text": "Flask mutation route `restyle` without `@login_required` \u2014 app.py:218"}, "properties": {"repobilityId": "d6b1630cfaf88d2e", "scanner": "scanner-primary", "fingerprint": "d01a015dc1c3fb61", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 218}}}]}, {"ruleId": "scanner-1a6d91f2236825bf", "level": "note", "message": {"text": "Unused endpoint: ANY /"}, "properties": {"repobilityId": "302fe621a396c5fd", "scanner": "scanner-primary", "fingerprint": "1a6d91f2236825bf", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8671d8c33a5a069b", "level": "note", "message": {"text": "Unused endpoint: ANY /api/transform"}, "properties": {"repobilityId": "437c75f7a254e88f", "scanner": "scanner-primary", "fingerprint": "8671d8c33a5a069b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-dfc99a31dd2955d0", "level": "note", "message": {"text": "Unused endpoint: ANY /api/restyle"}, "properties": {"repobilityId": "92ce59cede422a9a", "scanner": "scanner-primary", "fingerprint": "dfc99a31dd2955d0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-cce8679b622f1739", "level": "note", "message": {"text": "Unused endpoint: ANY /api/job/<jid>"}, "properties": {"repobilityId": "c75a2781332810dd", "scanner": "scanner-primary", "fingerprint": "cce8679b622f1739", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a32944e726960747", "level": "note", "message": {"text": "Unused endpoint: ANY /api/job/<jid>/result"}, "properties": {"repobilityId": "f766577e97830e0a", "scanner": "scanner-primary", "fingerprint": "a32944e726960747", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f0366dfd463d0c8c", "level": "note", "message": {"text": "Unused endpoint: ANY /api/gpu-status"}, "properties": {"repobilityId": "210d677132562c19", "scanner": "scanner-primary", "fingerprint": "f0366dfd463d0c8c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}