{"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": "ERR001", "name": "[ERR001] Silent Exception Swallowing: Silently swallowing all exceptions hides bugs. Even in cleanup code, log at DEBUG ", "shortDescription": {"text": "[ERR001] Silent Exception Swallowing: Silently swallowing all exceptions hides bugs. Even in cleanup code, log at DEBUG level."}, "fullDescription": {"text": "Log the error: `except Exception: logger.debug('cleanup failed', exc_info=True)`. Or handle specific exception types."}, "properties": {"scanner": "repobility-threat-engine", "category": "error_handling", "severity": "medium", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "SEC136", "name": "[SEC136] AI-typical over-broad exception handler swallowing all errors: Catch-all exception block that silently returns ", "shortDescription": {"text": "[SEC136] AI-typical over-broad exception handler swallowing all errors: Catch-all exception block that silently returns success or no-ops. AI agents reach for this pattern when a flaky test or an unfamiliar API throws \u2014 wrap, swallow, retur"}, "fullDescription": {"text": "Catch the specific exception type, log at error level with full exception info, and return a failure-shaped result. If the operation is genuinely best-effort, log at warning and document why in a comment so the next reader (or scanner) knows."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "medium", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "COMP001", "name": "[COMP001] High cognitive complexity: Function `generate_options_table` has cognitive complexity 15 (SonarSource scale). ", "shortDescription": {"text": "[COMP001] High cognitive complexity: Function `generate_options_table` has cognitive complexity 15 (SonarSource scale). Cognitive complexity measures how hard the function is for a human to understand \u2014 nested branches, boolean chains, and "}, "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 15."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "medium", "confidence": 0.95, "cwe": "", "owasp": ""}}, {"id": "CORE_LARGE_FILES", "name": "Average file size is 606 lines (recommend <300)", "shortDescription": {"text": "Average file size is 606 lines (recommend <300)"}, "fullDescription": {"text": "Refactor large files by extracting related functions into separate modules. Target files with 300+ lines first. Use the Single Responsibility Principle \u2014 each module should have one clear purpose."}, "properties": {"scanner": "repobility-core", "category": "quality", "severity": "medium", "confidence": null, "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": "CORE_NO_LICENSE", "name": "No LICENSE file", "shortDescription": {"text": "No LICENSE file"}, "fullDescription": {"text": "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)."}, "properties": {"scanner": "repobility-core", "category": "documentation", "severity": "low", "confidence": null, "cwe": "", "owasp": ""}}, {"id": "MINED063", "name": "[MINED063] Toctou Os Path Exists: if os.path.exists(p): open(p) \u2014 file can be replaced/deleted between check and use.", "shortDescription": {"text": "[MINED063] Toctou Os Path Exists: if os.path.exists(p): open(p) \u2014 file can be replaced/deleted between check and use."}, "fullDescription": {"text": "Review and fix per the pattern semantics. See CWE-367 /  for context."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "info", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "MINED001", "name": "[MINED001] Bare Except Pass: except: pass or except Exception: pass \u2014 silently swallows everything including KeyboardInt", "shortDescription": {"text": "[MINED001] Bare Except Pass: except: pass or except Exception: pass \u2014 silently swallows everything including KeyboardInterrupt and bugs."}, "fullDescription": {"text": "Review and fix per the pattern semantics. See CWE-755 /  for context."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "high", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "MINED108", "name": "`self._replace_span` used but never assigned in __init__", "shortDescription": {"text": "`self._replace_span` used but never assigned in __init__"}, "fullDescription": {"text": "Method `disable_function_at_start` of class `CppPatcher` reads `self._replace_span`, 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: `string` used but not imported", "shortDescription": {"text": "Missing import: `string` used but not imported"}, "fullDescription": {"text": "The file uses `string.something(...)` but never imports `string`. 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/1131"}, "properties": {"repository": "DarkionAvey/windhawk-taskbar-centered-condensed", "repoUrl": "https://github.com/DarkionAvey/windhawk-taskbar-centered-condensed", "branch": "main"}, "results": [{"ruleId": "ERR001", "level": "warning", "message": {"text": "[ERR001] Silent Exception Swallowing: Silently swallowing all exceptions hides bugs. Even in cleanup code, log at DEBUG level."}, "properties": {"repobilityId": 111782, "scanner": "repobility-threat-engine", "fingerprint": "fa61349cf546fcf2864ce7f74897c555a8fee56209b6cacc2ea03e4fb400e179", "category": "error_handling", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "except Exception:\n        pass", "reason": "Pattern matched with no mitigating context found", "rule_id": "ERR001", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|fa61349cf546fcf2864ce7f74897c555a8fee56209b6cacc2ea03e4fb400e179"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "dependencies/debugging-tools/print_windows.py"}, "region": {"startLine": 12}}}]}, {"ruleId": "SEC136", "level": "warning", "message": {"text": "[SEC136] AI-typical over-broad exception handler swallowing all errors: Catch-all exception block that silently returns success or no-ops. AI agents reach for this pattern when a flaky test or an unfamiliar API throws \u2014 wrap, swallow, return success. Real bugs are masked, observability is destroyed, and callers think the operation worked. CWE-396 (improperly-generalized exception). Distinct from intentional fallback because there's no log line and the success value is fabricated."}, "properties": {"repobilityId": 111780, "scanner": "repobility-threat-engine", "fingerprint": "376e82d6ebcb18d318f9a7f7cf9ef988ff6f4f5a55d9df8516004ba91d7cd297", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "except Exception:\n        pass  # skip", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC136", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|376e82d6ebcb18d318f9a7f7cf9ef988ff6f4f5a55d9df8516004ba91d7cd297"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "dependencies/debugging-tools/print_windows.py"}, "region": {"startLine": 12}}}]}, {"ruleId": "COMP001", "level": "warning", "message": {"text": "[COMP001] High cognitive complexity: Function `generate_options_table` has cognitive complexity 15 (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: continue=1, elif=2, for=2, if=2, nested_bonus=8."}, "properties": {"repobilityId": 111778, "scanner": "repobility-threat-engine", "fingerprint": "210710b94b9c5dd810f73fded2f40e46da3070feaeb30878af48bfa06192e82e", "category": "quality", "severity": "medium", "confidence": 0.95, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "AST-derived cognitive complexity score = 15 (severity threshold for medium: 15+).", "evidence": {"scanner": "repobility-threat-engine", "function": "generate_options_table", "breakdown": {"if": 2, "for": 2, "elif": 2, "continue": 1, "nested_bonus": 8}, "complexity": 15, "correlation_key": "fp|210710b94b9c5dd810f73fded2f40e46da3070feaeb30878af48bfa06192e82e"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "assemble-mod.py"}, "region": {"startLine": 17}}}]}, {"ruleId": "CORE_LARGE_FILES", "level": "warning", "message": {"text": "Average file size is 606 lines (recommend <300)"}, "properties": {"repobilityId": 111750, "scanner": "repobility-core", "fingerprint": "757d0fc79bf3aa828c3a9de7d67058384ac0db876c7ddd154c4f3d717db268cf", "category": "quality", "severity": "medium", "confidence": null, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"rule_id": "CORE_LARGE_FILES", "scanner": "repobility-core", "correlation_key": "fp|757d0fc79bf3aa828c3a9de7d67058384ac0db876c7ddd154c4f3d717db268cf"}}}, {"ruleId": "CORE_NO_CI", "level": "warning", "message": {"text": "No CI/CD configuration found"}, "properties": {"repobilityId": 111749, "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": "CORE_NO_LICENSE", "level": "note", "message": {"text": "No LICENSE file"}, "properties": {"repobilityId": 111748, "scanner": "repobility-core", "fingerprint": "9314e9238cd99885865b92490d1aaa96ca62b1390c9377878d5f3d99227e1c3c", "category": "documentation", "severity": "low", "confidence": null, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"rule_id": "CORE_NO_LICENSE", "scanner": "repobility-core", "correlation_key": "repo|documentation|core_no_license"}}}, {"ruleId": "MINED063", "level": "none", "message": {"text": "[MINED063] Toctou Os Path Exists: if os.path.exists(p): open(p) \u2014 file can be replaced/deleted between check and use."}, "properties": {"repobilityId": 111777, "scanner": "repobility-threat-engine", "fingerprint": "b98d46a03e23dc17f685edd16c3edbad7f2bd479c22c7ad45756289242fab28e", "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": "toctou-os-path-exists", "owasp": null, "cwe_ids": ["CWE-367"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348048+00:00", "triaged_in_corpus": 12, "observations_count": 90754, "ai_coder_pattern_id": 41}, "scanner": "repobility-threat-engine", "correlation_key": "fp|b98d46a03e23dc17f685edd16c3edbad7f2bd479c22c7ad45756289242fab28e"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "assemble-mod.py"}, "region": {"startLine": 115}}}]}, {"ruleId": "MINED001", "level": "error", "message": {"text": "[MINED001] Bare Except Pass: except: pass or except Exception: pass \u2014 silently swallows everything including KeyboardInterrupt and bugs."}, "properties": {"repobilityId": 111781, "scanner": "repobility-threat-engine", "fingerprint": "d5d4aa86161ccf2da62e455f777efaac0217112453d34856f27588b004cae11f", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "bare-except-pass", "owasp": null, "cwe_ids": ["CWE-755"], "languages": ["python"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347744+00:00", "triaged_in_corpus": 15, "observations_count": 1550824, "ai_coder_pattern_id": 6}, "scanner": "repobility-threat-engine", "correlation_key": "fp|d5d4aa86161ccf2da62e455f777efaac0217112453d34856f27588b004cae11f"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "dependencies/debugging-tools/print_windows.py"}, "region": {"startLine": 12}}}]}, {"ruleId": "COMP001", "level": "error", "message": {"text": "[COMP001] High cognitive complexity: Function `generate_hook_code` has cognitive complexity 33 (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: continue=2, else=2, for=4, if=7, nested_bonus=13, or=1, ternary=4."}, "properties": {"repobilityId": 111779, "scanner": "repobility-threat-engine", "fingerprint": "8308cdab646babffe3a445517312801ab6055e2a18dd2b4cfe8b27025cd0ce2a", "category": "quality", "severity": "high", "confidence": 0.95, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "AST-derived cognitive complexity score = 33 (severity threshold for high: 25+).", "evidence": {"scanner": "repobility-threat-engine", "function": "generate_hook_code", "breakdown": {"if": 7, "or": 1, "for": 4, "else": 2, "ternary": 4, "continue": 2, "nested_bonus": 13}, "complexity": 33, "correlation_key": "fp|8308cdab646babffe3a445517312801ab6055e2a18dd2b4cfe8b27025cd0ce2a"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "dependencies/debugging-tools/undecorated-hooks-generator.py"}, "region": {"startLine": 72}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self._replace_span` used but never assigned in __init__"}, "properties": {"repobilityId": 111775, "scanner": "repobility-ast-engine", "fingerprint": "c2e124253fafb4ac4a538b3562ad643cb6a8f1b4ca964654f16af97921ec38ba", "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|c2e124253fafb4ac4a538b3562ad643cb6a8f1b4ca964654f16af97921ec38ba"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "dependencies/main.py"}, "region": {"startLine": 328}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self._find_single_cpp_block_after_signature` used but never assigned in __init__"}, "properties": {"repobilityId": 111774, "scanner": "repobility-ast-engine", "fingerprint": "53a836ac72ff2964a5382e2cafeb4eda745c451510cb5b8832f0b2e63cd61f9b", "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|53a836ac72ff2964a5382e2cafeb4eda745c451510cb5b8832f0b2e63cd61f9b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "dependencies/main.py"}, "region": {"startLine": 324}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self._trim_block_replacement` used but never assigned in __init__"}, "properties": {"repobilityId": 111773, "scanner": "repobility-ast-engine", "fingerprint": "8cad8aa9172de770a627e41280d55604d11e1a9e389a1f429c350222f687bd6e", "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|8cad8aa9172de770a627e41280d55604d11e1a9e389a1f429c350222f687bd6e"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "dependencies/main.py"}, "region": {"startLine": 312}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self._raise_no_change` used but never assigned in __init__"}, "properties": {"repobilityId": 111772, "scanner": "repobility-ast-engine", "fingerprint": "7cd4189e183837522ee0cbaecfb56266ed155ba0d9b19abbb9218a2b875dd0dd", "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|7cd4189e183837522ee0cbaecfb56266ed155ba0d9b19abbb9218a2b875dd0dd"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "dependencies/main.py"}, "region": {"startLine": 311}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self._replace_span` used but never assigned in __init__"}, "properties": {"repobilityId": 111771, "scanner": "repobility-ast-engine", "fingerprint": "c20d620df76013a164f3105efbba4e9f6fdc8b11f60f7aaa947f6dacd3de63c6", "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|c20d620df76013a164f3105efbba4e9f6fdc8b11f60f7aaa947f6dacd3de63c6"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "dependencies/main.py"}, "region": {"startLine": 313}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self._find_single_cpp_block_after_signature` used but never assigned in __init__"}, "properties": {"repobilityId": 111770, "scanner": "repobility-ast-engine", "fingerprint": "05455d1e6b947d0596bab920614b2c3ac3ec7200c934b32ea9d213c16aab23fe", "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|05455d1e6b947d0596bab920614b2c3ac3ec7200c934b32ea9d213c16aab23fe"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "dependencies/main.py"}, "region": {"startLine": 308}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self._trim_block_replacement` used but never assigned in __init__"}, "properties": {"repobilityId": 111769, "scanner": "repobility-ast-engine", "fingerprint": "7cf6e76ce182ae250ba6683c2350b2e825924e05fbc286e0885676b866888977", "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|7cf6e76ce182ae250ba6683c2350b2e825924e05fbc286e0885676b866888977"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "dependencies/main.py"}, "region": {"startLine": 295}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self._replace_span` used but never assigned in __init__"}, "properties": {"repobilityId": 111768, "scanner": "repobility-ast-engine", "fingerprint": "46f20462b2e5e97adcbb4109e4644eb6b9e7118bdd4abe0bb9f8283625fbd8fe", "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|46f20462b2e5e97adcbb4109e4644eb6b9e7118bdd4abe0bb9f8283625fbd8fe"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "dependencies/main.py"}, "region": {"startLine": 292}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self._find_single_cpp_block_after_signature` used but never assigned in __init__"}, "properties": {"repobilityId": 111767, "scanner": "repobility-ast-engine", "fingerprint": "a6aee85a73f6e08f677f7abc80bd713a1642d1a46caf89700b2f93f2dbf9596d", "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|a6aee85a73f6e08f677f7abc80bd713a1642d1a46caf89700b2f93f2dbf9596d"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "dependencies/main.py"}, "region": {"startLine": 291}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self._replace_span` used but never assigned in __init__"}, "properties": {"repobilityId": 111766, "scanner": "repobility-ast-engine", "fingerprint": "b99e6b1c165f3540f9282c7ddc6a804874b9961fb64ce84f219b16b09e80f951", "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|b99e6b1c165f3540f9282c7ddc6a804874b9961fb64ce84f219b16b09e80f951"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "dependencies/main.py"}, "region": {"startLine": 280}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self._find_single_cpp_block_after_signature` used but never assigned in __init__"}, "properties": {"repobilityId": 111765, "scanner": "repobility-ast-engine", "fingerprint": "ad3b88e48377919ff5e88182393800e50da57725878de39c5e5dab02d2e27fa9", "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|ad3b88e48377919ff5e88182393800e50da57725878de39c5e5dab02d2e27fa9"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "dependencies/main.py"}, "region": {"startLine": 279}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.replace_literal` used but never assigned in __init__"}, "properties": {"repobilityId": 111764, "scanner": "repobility-ast-engine", "fingerprint": "4b7a076c28a6eccb774e6380876c9750020a1888580f3c12905e3aa8473c2bd8", "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|4b7a076c28a6eccb774e6380876c9750020a1888580f3c12905e3aa8473c2bd8"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "dependencies/main.py"}, "region": {"startLine": 242}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.replace_literal` used but never assigned in __init__"}, "properties": {"repobilityId": 111763, "scanner": "repobility-ast-engine", "fingerprint": "6a482ec1c8a5c99e44affd06c75213aec57e6054efea782e8891a8746f1db251", "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|6a482ec1c8a5c99e44affd06c75213aec57e6054efea782e8891a8746f1db251"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "dependencies/main.py"}, "region": {"startLine": 224}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.replace_regex` used but never assigned in __init__"}, "properties": {"repobilityId": 111762, "scanner": "repobility-ast-engine", "fingerprint": "e02bae4aeaf38d07fdd3548b11689ba1af521d034638283b8fabec6962930151", "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|e02bae4aeaf38d07fdd3548b11689ba1af521d034638283b8fabec6962930151"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "dependencies/main.py"}, "region": {"startLine": 206}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.replace_regex` used but never assigned in __init__"}, "properties": {"repobilityId": 111761, "scanner": "repobility-ast-engine", "fingerprint": "d3c79af3cb0aee7e4dfac4949559ddda64996b185b43605073cae0533a1f44fb", "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|d3c79af3cb0aee7e4dfac4949559ddda64996b185b43605073cae0533a1f44fb"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "dependencies/main.py"}, "region": {"startLine": 188}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.replace_regex` used but never assigned in __init__"}, "properties": {"repobilityId": 111760, "scanner": "repobility-ast-engine", "fingerprint": "ca40c782d6556208a1b8bc488177fa7fe3fbeac6134b288a57edc4e3b3038ebd", "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|ca40c782d6556208a1b8bc488177fa7fe3fbeac6134b288a57edc4e3b3038ebd"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "dependencies/main.py"}, "region": {"startLine": 171}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.replace_literal` used but never assigned in __init__"}, "properties": {"repobilityId": 111759, "scanner": "repobility-ast-engine", "fingerprint": "392ff94b6b3056d56ac64717af4c3fc14be2b665c7585d7dbfceccd344c6d262", "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|392ff94b6b3056d56ac64717af4c3fc14be2b665c7585d7dbfceccd344c6d262"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "dependencies/main.py"}, "region": {"startLine": 151}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self._raise_no_change` used but never assigned in __init__"}, "properties": {"repobilityId": 111758, "scanner": "repobility-ast-engine", "fingerprint": "0352fda0c4d086c08ab1d2e3d6feee45ea679a98169290bc602c5cbee282d4ad", "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|0352fda0c4d086c08ab1d2e3d6feee45ea679a98169290bc602c5cbee282d4ad"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "dependencies/main.py"}, "region": {"startLine": 130}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self._commit_target` used but never assigned in __init__"}, "properties": {"repobilityId": 111757, "scanner": "repobility-ast-engine", "fingerprint": "1dc41c33df82f92922e7516b282b60ed042bebdf75c595af72fb163f0d047b8f", "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|1dc41c33df82f92922e7516b282b60ed042bebdf75c595af72fb163f0d047b8f"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "dependencies/main.py"}, "region": {"startLine": 133}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self._scope_label` used but never assigned in __init__"}, "properties": {"repobilityId": 111756, "scanner": "repobility-ast-engine", "fingerprint": "bdd1d47c0158a8c1c891bb7dbda2aaf7d46be66a4d25567a07aadc67748e2827", "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|bdd1d47c0158a8c1c891bb7dbda2aaf7d46be66a4d25567a07aadc67748e2827"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "dependencies/main.py"}, "region": {"startLine": 128}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self._get_patch_target` used but never assigned in __init__"}, "properties": {"repobilityId": 111755, "scanner": "repobility-ast-engine", "fingerprint": "93584ffeb891307d2945122598238d5c7080bda2e2bb184995667c84a4fe144e", "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|93584ffeb891307d2945122598238d5c7080bda2e2bb184995667c84a4fe144e"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "dependencies/main.py"}, "region": {"startLine": 122}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.replace_regex` used but never assigned in __init__"}, "properties": {"repobilityId": 111754, "scanner": "repobility-ast-engine", "fingerprint": "12bfd1486af6b71986a8fd65c02512831e59208fc9297b6355c1ffae7d3137f6", "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|12bfd1486af6b71986a8fd65c02512831e59208fc9297b6355c1ffae7d3137f6"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "dependencies/main.py"}, "region": {"startLine": 86}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self._scope_label` used but never assigned in __init__"}, "properties": {"repobilityId": 111753, "scanner": "repobility-ast-engine", "fingerprint": "5217e4431033a698248edb69923805e63f9d999d648ebb56aedef71dbf561b61", "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|5217e4431033a698248edb69923805e63f9d999d648ebb56aedef71dbf561b61"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "dependencies/main.py"}, "region": {"startLine": 70}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self._commit_target` used but never assigned in __init__"}, "properties": {"repobilityId": 111752, "scanner": "repobility-ast-engine", "fingerprint": "44368ab8e806d7781551eaecbb0c999be169bdc4818a50a56d53825f445f451b", "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|44368ab8e806d7781551eaecbb0c999be169bdc4818a50a56d53825f445f451b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "dependencies/main.py"}, "region": {"startLine": 67}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self._get_patch_target` used but never assigned in __init__"}, "properties": {"repobilityId": 111751, "scanner": "repobility-ast-engine", "fingerprint": "72c2e701392b1315492fd57cba8677c8c8d0b776f9a7b17f13d37c0bccce7699", "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|72c2e701392b1315492fd57cba8677c8c8d0b776f9a7b17f13d37c0bccce7699"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "dependencies/main.py"}, "region": {"startLine": 61}}}]}, {"ruleId": "CORE_NO_TESTS", "level": "error", "message": {"text": "No test files found"}, "properties": {"repobilityId": 111747, "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: `string` used but not imported"}, "properties": {"repobilityId": 111776, "scanner": "repobility-ast-engine", "fingerprint": "c4c7ee6269f470cc02003d051f14a0feb0351518514fbb7c44bd602ac932f258", "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|c4c7ee6269f470cc02003d051f14a0feb0351518514fbb7c44bd602ac932f258"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "dependencies/debugging-tools/undecorated-hooks-generator.py"}, "region": {"startLine": 69}}}]}]}]}