{"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": "SEC127", "name": "[SEC127] AI agent stub \u2014 TODO: implement / pass placeholder body: Function body left as TODO/pass/raise NotImplementedEr", "shortDescription": {"text": "[SEC127] AI agent stub \u2014 TODO: implement / pass placeholder body: Function body left as TODO/pass/raise NotImplementedError after an AI scaffolding pass. The route appears to exist (and may even pass shallow CI), but invoking it crashes or "}, "fullDescription": {"text": "Either implement the body, or fail closed at module-load time so the deploy can't ship a half-built route. A CI gate that fails build on `raise NotImplementedError` in non-abstract code catches this cleanly."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "medium", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "CORE_NO_CI", "name": "No CI/CD configuration found", "shortDescription": {"text": "No CI/CD configuration found"}, "fullDescription": {"text": "Add a CI/CD pipeline: create .github/workflows/ci.yml for GitHub Actions with steps to lint, test, and build on every push and pull request."}, "properties": {"scanner": "repobility-core", "category": "practices", "severity": "medium", "confidence": null, "cwe": "", "owasp": ""}}, {"id": "COMP001", "name": "[COMP001] High cognitive complexity: Function `bfs` has cognitive complexity 9 (SonarSource scale). Cognitive complexity", "shortDescription": {"text": "[COMP001] High cognitive complexity: Function `bfs` has cognitive complexity 9 (SonarSource scale). Cognitive complexity measures how hard the function is for a human to understand \u2014 nested branches, boolean chains, and recursion all weigh "}, "fullDescription": {"text": "Extract nested branches into named helper functions; flatten early-return / guard clauses; replace long if/elif chains with dispatch dicts or polymorphism. SonarQube's threshold for 'should refactor' is 15 \u2014 yours is 9."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "low", "confidence": 0.95, "cwe": "", "owasp": ""}}, {"id": "MINED050", "name": "[MINED050] Stub Only Function (and 8 more): Same pattern found in 8 additional files. Review if needed.", "shortDescription": {"text": "[MINED050] Stub Only Function (and 8 more): Same pattern found in 8 additional files. Review if needed."}, "fullDescription": {"text": "Review and fix per the pattern semantics. See CWE-1188 /  for context."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "info", "confidence": 0.2, "cwe": "", "owasp": ""}}, {"id": "SEC029", "name": "[SEC029] Server-Side Request Forgery (SSRF) \u2014 outbound HTTP from user input: Outbound HTTP request to a user-controlled ", "shortDescription": {"text": "[SEC029] Server-Side Request Forgery (SSRF) \u2014 outbound HTTP from user input: Outbound HTTP request to a user-controlled URL without allowlist validation. Attackers can probe internal services (169.254.169.254 metadata, internal Kubernetes e"}, "fullDescription": {"text": "Validate the URL against an allowlist BEFORE fetching:\n  ALLOWED = {'images.example.com', 'cdn.example.com'}\n  host = urlparse(url).hostname\n  if host not in ALLOWED: abort(400)\nOr use a server-side proxy (Imgproxy / serve-files-only-from-S3) that isolates outbound network access from the request handler.\nBlock private CIDRs explicitly: 10/8, 172.16/12, 192.168/16, 169.254/16."}, "properties": {"scanner": "repobility-threat-engine", "category": "ssrf", "severity": "high", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "MINED108", "name": "`self.manual_overrides` used but never assigned in __init__", "shortDescription": {"text": "`self.manual_overrides` used but never assigned in __init__"}, "fullDescription": {"text": "Method `categorize` of class `Categorizer` reads `self.manual_overrides`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"scanner": "repobility-ast-engine", "category": "quality", "severity": "high", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "CORE_NO_TESTS", "name": "No test files found", "shortDescription": {"text": "No test files found"}, "fullDescription": {"text": "Add a test directory (tests/ or __tests__/) with unit tests for core functionality. Use pytest (Python), Jest (JS/TS), or go test (Go). Start with tests for critical business logic and security-sensitive functions."}, "properties": {"scanner": "repobility-core", "category": "testing", "severity": "high", "confidence": null, "cwe": "", "owasp": ""}}, {"id": "MINED107", "name": "Missing import: `queue` used but not imported", "shortDescription": {"text": "Missing import: `queue` used but not imported"}, "fullDescription": {"text": "The file uses `queue.something(...)` but never imports `queue`. This raises NameError at runtime the first time the line executes."}, "properties": {"scanner": "repobility-ast-engine", "category": "quality", "severity": "critical", "confidence": 1.0, "cwe": "", "owasp": ""}}]}}, "automationDetails": {"id": "repobility/128"}, "properties": {"repository": "donnemartin/system-design-primer", "repoUrl": "https://github.com/donnemartin/system-design-primer.git", "branch": "master"}, "results": [{"ruleId": "SEC127", "level": "warning", "message": {"text": "[SEC127] AI agent stub \u2014 TODO: implement / pass placeholder body: Function body left as TODO/pass/raise NotImplementedError after an AI scaffolding pass. The route appears to exist (and may even pass shallow CI), but invoking it crashes or silently no-ops. AI agents consistently emit these when their context window runs out mid-implementation. Production callers hitting these stubs is a classic AI-generated-incident."}, "properties": {"repobilityId": 41136, "scanner": "repobility-threat-engine", "fingerprint": "28735665e7326c0878ef08269760a80f2e464d188e068d052b045de9dc9842d7", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "def escalate_call(self):\n        raise NotImplementedError", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC127", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|28735665e7326c0878ef08269760a80f2e464d188e068d052b045de9dc9842d7"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "solutions/object_oriented_design/call_center/call_center.py"}, "region": {"startLine": 68}}}]}, {"ruleId": "CORE_NO_CI", "level": "warning", "message": {"text": "No CI/CD configuration found"}, "properties": {"repobilityId": 3156, "scanner": "repobility-core", "fingerprint": "ca5da3551af97272c4f099fc472740148135a15816b81b90bd862e8f91ec66ce", "category": "practices", "severity": "medium", "confidence": null, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"rule_id": "CORE_NO_CI", "scanner": "repobility-core", "correlation_key": "repo|practices|core_no_ci"}}}, {"ruleId": "COMP001", "level": "note", "message": {"text": "[COMP001] High cognitive complexity: Function `bfs` has cognitive complexity 9 (SonarSource scale). Cognitive complexity measures how hard the function is for a human to understand \u2014 nested branches, boolean chains, and recursion all weigh in. Breakdown: for=1, if=3, nested_bonus=4, while=1."}, "properties": {"repobilityId": 41142, "scanner": "repobility-threat-engine", "fingerprint": "bb97ae3767e4c02f67096d18035e5f73168b556645424cfdc2f28de544b97177", "category": "quality", "severity": "low", "confidence": 0.95, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "AST-derived cognitive complexity score = 9 (severity threshold for low: 8+).", "evidence": {"scanner": "repobility-threat-engine", "function": "bfs", "breakdown": {"if": 3, "for": 1, "while": 1, "nested_bonus": 4}, "complexity": 9, "correlation_key": "fp|bb97ae3767e4c02f67096d18035e5f73168b556645424cfdc2f28de544b97177"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "solutions/system_design/social_graph/social_graph_snippets.py"}, "region": {"startLine": 13}}}]}, {"ruleId": "MINED050", "level": "none", "message": {"text": "[MINED050] Stub Only Function (and 8 more): Same pattern found in 8 additional files. Review if needed."}, "properties": {"repobilityId": 41140, "scanner": "repobility-threat-engine", "fingerprint": "26a20ec3af6c1bf844f4aaed7ed4016813a12e74cf2ca0c954b4690d78374bea", "category": "quality", "severity": "info", "confidence": 0.2, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Deduplicated summary only: 8 additional occurrences found. The top occurrences remain visible as actionable findings.", "evidence": {"mined": true, "mining": {"slug": "stub-only-function", "owasp": null, "cwe_ids": ["CWE-1188"], "languages": ["python"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348017+00:00", "triaged_in_corpus": 12, "observations_count": 633513, "ai_coder_pattern_id": 2}, "scanner": "repobility-threat-engine", "aggregated": true, "correlation_key": "fp|26a20ec3af6c1bf844f4aaed7ed4016813a12e74cf2ca0c954b4690d78374bea", "aggregated_count": 8}}}, {"ruleId": "MINED050", "level": "none", "message": {"text": "[MINED050] Stub Only Function: Function declared but body is just pass, return None, raise NotImplementedError, or TODO comment."}, "properties": {"repobilityId": 41139, "scanner": "repobility-threat-engine", "fingerprint": "c79b658ae36cfdf04af06df75de4229b9bbb0fe6a981340c1a4ea731d14bab14", "category": "quality", "severity": "info", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "stub-only-function", "owasp": null, "cwe_ids": ["CWE-1188"], "languages": ["python"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348017+00:00", "triaged_in_corpus": 12, "observations_count": 633513, "ai_coder_pattern_id": 2}, "scanner": "repobility-threat-engine", "correlation_key": "fp|c79b658ae36cfdf04af06df75de4229b9bbb0fe6a981340c1a4ea731d14bab14"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "solutions/object_oriented_design/lru_cache/lru_cache.py"}, "region": {"startLine": 15}}}]}, {"ruleId": "MINED050", "level": "none", "message": {"text": "[MINED050] Stub Only Function: Function declared but body is just pass, return None, raise NotImplementedError, or TODO comment."}, "properties": {"repobilityId": 41138, "scanner": "repobility-threat-engine", "fingerprint": "17d72a5e45e0b03df3281492442e9a45d0d1ed1d11d34cef7476aafa9a9f275f", "category": "quality", "severity": "info", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "stub-only-function", "owasp": null, "cwe_ids": ["CWE-1188"], "languages": ["python"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348017+00:00", "triaged_in_corpus": 12, "observations_count": 633513, "ai_coder_pattern_id": 2}, "scanner": "repobility-threat-engine", "correlation_key": "fp|17d72a5e45e0b03df3281492442e9a45d0d1ed1d11d34cef7476aafa9a9f275f"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "solutions/object_oriented_design/deck_of_cards/deck_of_cards.py"}, "region": {"startLine": 24}}}]}, {"ruleId": "MINED050", "level": "none", "message": {"text": "[MINED050] Stub Only Function: Function declared but body is just pass, return None, raise NotImplementedError, or TODO comment."}, "properties": {"repobilityId": 41137, "scanner": "repobility-threat-engine", "fingerprint": "141f6f8ae5f74dcfd49248f0107f8f92735617417f9f10e4120cad8b7811d636", "category": "quality", "severity": "info", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "stub-only-function", "owasp": null, "cwe_ids": ["CWE-1188"], "languages": ["python"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348017+00:00", "triaged_in_corpus": 12, "observations_count": 633513, "ai_coder_pattern_id": 2}, "scanner": "repobility-threat-engine", "correlation_key": "fp|141f6f8ae5f74dcfd49248f0107f8f92735617417f9f10e4120cad8b7811d636"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "solutions/object_oriented_design/call_center/call_center.py"}, "region": {"startLine": 34}}}]}, {"ruleId": "SEC029", "level": "error", "message": {"text": "[SEC029] Server-Side Request Forgery (SSRF) \u2014 outbound HTTP from user input: Outbound HTTP request to a user-controlled URL without allowlist validation. Attackers can probe internal services (169.254.169.254 metadata, internal Kubernetes endpoints, file:// URIs), exfiltrate data, or pivot through your network. SSRF is OWASP A10:2021 and a frequent foothold in cloud breaches."}, "properties": {"repobilityId": 41141, "scanner": "repobility-threat-engine", "fingerprint": "54e5507f695928ab275dbd6b23616f88f8138bbe6d7bdeb1041a2b5a8dca5724", "category": "ssrf", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "url(s", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC029", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|54e5507f695928ab275dbd6b23616f88f8138bbe6d7bdeb1041a2b5a8dca5724"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "solutions/system_design/pastebin/pastebin.py"}, "region": {"startLine": 8}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.manual_overrides` used but never assigned in __init__"}, "properties": {"repobilityId": 41134, "scanner": "repobility-ast-engine", "fingerprint": "b7f0a239fd5e6167cb38206ea8ce147199d3b3978f6eb89403761526b5740fce", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|b7f0a239fd5e6167cb38206ea8ce147199d3b3978f6eb89403761526b5740fce"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "solutions/system_design/mint/mint_snippets.py"}, "region": {"startLine": 31}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.reducer` used but never assigned in __init__"}, "properties": {"repobilityId": 41133, "scanner": "repobility-ast-engine", "fingerprint": "1d5efd882c3dfa926e4d174a79994d186a43823f993fa8fd671bb8c7995508d8", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|1d5efd882c3dfa926e4d174a79994d186a43823f993fa8fd671bb8c7995508d8"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "solutions/system_design/mint/mint_mapreduce.py"}, "region": {"startLine": 52}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.mapper` used but never assigned in __init__"}, "properties": {"repobilityId": 41132, "scanner": "repobility-ast-engine", "fingerprint": "0612e1f85c662c04526443f8bd71f6c356caf7985fbc0dab4de041afbd408e46", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|0612e1f85c662c04526443f8bd71f6c356caf7985fbc0dab4de041afbd408e46"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "solutions/system_design/mint/mint_mapreduce.py"}, "region": {"startLine": 51}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.mr` used but never assigned in __init__"}, "properties": {"repobilityId": 41131, "scanner": "repobility-ast-engine", "fingerprint": "ff4a38470cbeb87e1e39b29621d453f35126fe5be0970293c52c9d1202f42216", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|ff4a38470cbeb87e1e39b29621d453f35126fe5be0970293c52c9d1202f42216"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "solutions/system_design/mint/mint_mapreduce.py"}, "region": {"startLine": 51}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.handle_budget_notifications` used but never assigned in __init__"}, "properties": {"repobilityId": 41130, "scanner": "repobility-ast-engine", "fingerprint": "f746ea4164d364e0ba29222546b7836aa2c99541db3a6fdc2e8e8c65f00b5159", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|f746ea4164d364e0ba29222546b7836aa2c99541db3a6fdc2e8e8c65f00b5159"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "solutions/system_design/mint/mint_mapreduce.py"}, "region": {"startLine": 45}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.current_year_month` used but never assigned in __init__"}, "properties": {"repobilityId": 41129, "scanner": "repobility-ast-engine", "fingerprint": "bd62e199e676880da2da0fd52c271109a4fcef24b859eacfb7367a1a97078f85", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|bd62e199e676880da2da0fd52c271109a4fcef24b859eacfb7367a1a97078f85"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "solutions/system_design/mint/mint_mapreduce.py"}, "region": {"startLine": 35}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.extract_year_month` used but never assigned in __init__"}, "properties": {"repobilityId": 41128, "scanner": "repobility-ast-engine", "fingerprint": "b7e9dddb2cc324991d5cc746f87fb0f00cc79ecbc0912f1b8026fa9e05cb4a68", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|b7e9dddb2cc324991d5cc746f87fb0f00cc79ecbc0912f1b8026fa9e05cb4a68"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "solutions/system_design/mint/mint_mapreduce.py"}, "region": {"startLine": 34}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self._find_available_spot` used but never assigned in __init__"}, "properties": {"repobilityId": 41127, "scanner": "repobility-ast-engine", "fingerprint": "1458b54d98175c66884a7288972c558579821d3834ab4a82f452a09c73545dcb", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|1458b54d98175c66884a7288972c558579821d3834ab4a82f452a09c73545dcb"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "solutions/object_oriented_design/parking_lot/parking_lot.py"}, "region": {"startLine": 87}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self._dispatch_call` used but never assigned in __init__"}, "properties": {"repobilityId": 41126, "scanner": "repobility-ast-engine", "fingerprint": "d86466baba9b7231ac6a3b659e370af3463c5bc8835ae7b69765a435121eeb20", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|d86466baba9b7231ac6a3b659e370af3463c5bc8835ae7b69765a435121eeb20"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "solutions/object_oriented_design/call_center/call_center.py"}, "region": {"startLine": 104}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self._dispatch_call` used but never assigned in __init__"}, "properties": {"repobilityId": 41125, "scanner": "repobility-ast-engine", "fingerprint": "4165c98785715f2ed8be230746b93e605f839b0ccb3450d505e9cc61c3a88025", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|4165c98785715f2ed8be230746b93e605f839b0ccb3450d505e9cc61c3a88025"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "solutions/object_oriented_design/call_center/call_center.py"}, "region": {"startLine": 102}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self._dispatch_call` used but never assigned in __init__"}, "properties": {"repobilityId": 41124, "scanner": "repobility-ast-engine", "fingerprint": "9b7fc5f74fffbcb52e9498b10bdb5919287fb17cc22ce14cc170ede281e3f286", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|9b7fc5f74fffbcb52e9498b10bdb5919287fb17cc22ce14cc170ede281e3f286"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "solutions/object_oriented_design/call_center/call_center.py"}, "region": {"startLine": 100}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self._escalate_call` used but never assigned in __init__"}, "properties": {"repobilityId": 41123, "scanner": "repobility-ast-engine", "fingerprint": "37ba9402eaf2d2baac89fcb69258fef76ba73ac898d6164dbd070e9c97dd83ac", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|37ba9402eaf2d2baac89fcb69258fef76ba73ac898d6164dbd070e9c97dd83ac"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "solutions/object_oriented_design/call_center/call_center.py"}, "region": {"startLine": 60}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.call` used but never assigned in __init__"}, "properties": {"repobilityId": 41122, "scanner": "repobility-ast-engine", "fingerprint": "73684db0a4f67c217c5c61a2b8c3e5c8b3f4170221b5763e3fe127a8fbeb19ea", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|73684db0a4f67c217c5c61a2b8c3e5c8b3f4170221b5763e3fe127a8fbeb19ea"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "solutions/object_oriented_design/call_center/call_center.py"}, "region": {"startLine": 59}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self._escalate_call` used but never assigned in __init__"}, "properties": {"repobilityId": 41121, "scanner": "repobility-ast-engine", "fingerprint": "cba4d7c772939eddcff260b1ed6d95331768d2ad6d625b9551bce2207163d5a8", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|cba4d7c772939eddcff260b1ed6d95331768d2ad6d625b9551bce2207163d5a8"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "solutions/object_oriented_design/call_center/call_center.py"}, "region": {"startLine": 50}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.call` used but never assigned in __init__"}, "properties": {"repobilityId": 41120, "scanner": "repobility-ast-engine", "fingerprint": "bac7bf14f495ef32b9fd66735b3994923b62a911d50c496681087e2aadbb4b32", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|bac7bf14f495ef32b9fd66735b3994923b62a911d50c496681087e2aadbb4b32"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "solutions/object_oriented_design/call_center/call_center.py"}, "region": {"startLine": 49}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.possible_scores` used but never assigned in __init__"}, "properties": {"repobilityId": 41119, "scanner": "repobility-ast-engine", "fingerprint": "dc451970b4eee08b372c49a5a5fe6dccf8eaf8e7a60cc0a4848275dd3a9ef622", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|dc451970b4eee08b372c49a5a5fe6dccf8eaf8e7a60cc0a4848275dd3a9ef622"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "solutions/object_oriented_design/deck_of_cards/deck_of_cards.py"}, "region": {"startLine": 86}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self._value` used but never assigned in __init__"}, "properties": {"repobilityId": 41118, "scanner": "repobility-ast-engine", "fingerprint": "103b8c15bf84baae4f540c18aa81ee97ac061016a1a0395849027b682cf60ad7", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|103b8c15bf84baae4f540c18aa81ee97ac061016a1a0395849027b682cf60ad7"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "solutions/object_oriented_design/deck_of_cards/deck_of_cards.py"}, "region": {"startLine": 56}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self._value` used but never assigned in __init__"}, "properties": {"repobilityId": 41117, "scanner": "repobility-ast-engine", "fingerprint": "0ecaf4594e31f7e23a08c65d82f0e192f0cf225d33405aa905cd95ebab98bf22", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|0ecaf4594e31f7e23a08c65d82f0e192f0cf225d33405aa905cd95ebab98bf22"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "solutions/object_oriented_design/deck_of_cards/deck_of_cards.py"}, "region": {"startLine": 51}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.is_face_card` used but never assigned in __init__"}, "properties": {"repobilityId": 41116, "scanner": "repobility-ast-engine", "fingerprint": "cd17d6b183031644c0e70d10b623878f53187f56ec1c799233e868d747c5092c", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|cd17d6b183031644c0e70d10b623878f53187f56ec1c799233e868d747c5092c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "solutions/object_oriented_design/deck_of_cards/deck_of_cards.py"}, "region": {"startLine": 48}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.is_ace` used but never assigned in __init__"}, "properties": {"repobilityId": 41115, "scanner": "repobility-ast-engine", "fingerprint": "ebf21ba30e4db8b6373c46d465ad265775e3152fdb34c53a9d0dde83160690d8", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|ebf21ba30e4db8b6373c46d465ad265775e3152fdb34c53a9d0dde83160690d8"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "solutions/object_oriented_design/deck_of_cards/deck_of_cards.py"}, "region": {"startLine": 46}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self._value` used but never assigned in __init__"}, "properties": {"repobilityId": 41114, "scanner": "repobility-ast-engine", "fingerprint": "b450f7ccb649762e656f7aac623dc4f20e21d9342afbc51f38ac6316aa818f45", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|b450f7ccb649762e656f7aac623dc4f20e21d9342afbc51f38ac6316aa818f45"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "solutions/object_oriented_design/deck_of_cards/deck_of_cards.py"}, "region": {"startLine": 42}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self._value` used but never assigned in __init__"}, "properties": {"repobilityId": 41113, "scanner": "repobility-ast-engine", "fingerprint": "8722635dfa8d26479cdbd1b8f155bfbf1f3fa91cc6af9aee6d8b99e8e2e9f3bf", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|8722635dfa8d26479cdbd1b8f155bfbf1f3fa91cc6af9aee6d8b99e8e2e9f3bf"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "solutions/object_oriented_design/deck_of_cards/deck_of_cards.py"}, "region": {"startLine": 38}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self._hash_function` used but never assigned in __init__"}, "properties": {"repobilityId": 41112, "scanner": "repobility-ast-engine", "fingerprint": "19968899a31806228dd4598164f8b63885eb23e28b2dfb1bcfba26cfea01d82f", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|19968899a31806228dd4598164f8b63885eb23e28b2dfb1bcfba26cfea01d82f"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "solutions/object_oriented_design/hash_table/hash_map.py"}, "region": {"startLine": 33}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self._hash_function` used but never assigned in __init__"}, "properties": {"repobilityId": 41111, "scanner": "repobility-ast-engine", "fingerprint": "0ebb0ccc2611c94fb34a6c151d93f128431526142f0b78298314aac509b62c8c", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|0ebb0ccc2611c94fb34a6c151d93f128431526142f0b78298314aac509b62c8c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "solutions/object_oriented_design/hash_table/hash_map.py"}, "region": {"startLine": 26}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self._hash_function` used but never assigned in __init__"}, "properties": {"repobilityId": 41110, "scanner": "repobility-ast-engine", "fingerprint": "d72eed30cc2fbac31444e81f5a9d1566652a6773cefa235d4c400304473475d5", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|d72eed30cc2fbac31444e81f5a9d1566652a6773cefa235d4c400304473475d5"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "solutions/object_oriented_design/hash_table/hash_map.py"}, "region": {"startLine": 18}}}]}, {"ruleId": "CORE_NO_TESTS", "level": "error", "message": {"text": "No test files found"}, "properties": {"repobilityId": 3155, "scanner": "repobility-core", "fingerprint": "0200e9918bc2a7bf9c116d0907e50ac3df640c758b93852cf1890ec6e14d870d", "category": "testing", "severity": "high", "confidence": null, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"rule_id": "CORE_NO_TESTS", "scanner": "repobility-core", "correlation_key": "repo|testing|core_no_tests"}}}, {"ruleId": "MINED107", "level": "error", "message": {"text": "Missing import: `queue` used but not imported"}, "properties": {"repobilityId": 41135, "scanner": "repobility-ast-engine", "fingerprint": "19a4eacb30f578ab7a47f5fd819a23c3ab3cf60ffe3300c84ef73b031aec50ae", "category": "quality", "severity": "critical", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "missing-import-python", "owasp": "A06:2021", "cwe_ids": ["CWE-1075"], "languages": ["python"], "observations_count": 2192}, "scanner": "repobility-ast-engine", "correlation_key": "fp|19a4eacb30f578ab7a47f5fd819a23c3ab3cf60ffe3300c84ef73b031aec50ae"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "solutions/system_design/social_graph/social_graph_snippets.py"}, "region": {"startLine": 17}}}]}]}]}