{"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": "AIC004", "name": "Suspicious implementation file appears unreferenced", "shortDescription": {"text": "Suspicious implementation file appears unreferenced"}, "fullDescription": {"text": "Confirm whether this file is reachable. If not, delete it; if yes, wire it through explicit imports, routes, or entry points and add a test that proves the path executes."}, "properties": {"scanner": "repobility-ai-code-hygiene", "category": "quality", "severity": "medium", "confidence": 0.78, "cwe": "", "owasp": ""}}, {"id": "CFG006", "name": "[CFG006] Missing .gitignore: No .gitignore file. Risk of committing secrets and build artifacts.", "shortDescription": {"text": "[CFG006] Missing .gitignore: No .gitignore file. Risk of committing secrets and build artifacts."}, "fullDescription": {"text": "Add a .gitignore appropriate for your language/framework."}, "properties": {"scanner": "repobility-threat-engine", "category": "practices", "severity": "medium", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"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": 0.45, "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": "AIC003", "name": "Duplicated implementation block across source files", "shortDescription": {"text": "Duplicated implementation block across source files"}, "fullDescription": {"text": "Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used."}, "properties": {"scanner": "repobility-ai-code-hygiene", "category": "quality", "severity": "low", "confidence": 0.86, "cwe": "", "owasp": ""}}, {"id": "AIC002", "name": "Source file name looks like an AI patch artifact", "shortDescription": {"text": "Source file name looks like an AI patch artifact"}, "fullDescription": {"text": "Rename it to the domain concept it implements or merge it into the existing module it was meant to change."}, "properties": {"scanner": "repobility-ai-code-hygiene", "category": "quality", "severity": "low", "confidence": 0.62, "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": "SEC103", "name": "[SEC103] LDAP injection \u2014 non-constant search filter: User input concatenated into an LDAP search filter. Attackers inje", "shortDescription": {"text": "[SEC103] LDAP injection \u2014 non-constant search filter: User input concatenated into an LDAP search filter. Attackers inject `*)(uid=*` style payloads to bypass auth or enumerate accounts."}, "fullDescription": {"text": "Escape with javax.naming.ldap.Rdn.escapeValue or equivalent. For python-ldap, use ldap.filter.escape_filter_chars. Better: use parameterized search APIs (Spring LdapTemplate filter encoders)."}, "properties": {"scanner": "repobility-threat-engine", "category": "injection", "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": ""}}]}}, "automationDetails": {"id": "repobility/513"}, "properties": {"repository": "torvalds/linux", "repoUrl": "https://github.com/torvalds/linux.git", "branch": "master"}, "results": [{"ruleId": "AIC004", "level": "warning", "message": {"text": "Suspicious implementation file appears unreferenced"}, "properties": {"repobilityId": 30331, "scanner": "repobility-ai-code-hygiene", "fingerprint": "aa6c464f053b4d6a5c03ce5c4d30604e6c0061a38b909d6cf181fdf4eee14c14", "category": "quality", "severity": "medium", "confidence": 0.78, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "Patch-style source file has no detected inbound reference from other repository files.", "evidence": {"suffix": "copy", "rule_id": "AIC004", "scanner": "repobility-ai-code-hygiene", "references": ["https://knip.dev/", "https://github.com/jendrikseipp/vulture"], "correlation_key": "fp|aa6c464f053b4d6a5c03ce5c4d30604e6c0061a38b909d6cf181fdf4eee14c14"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "arch/alpha/lib/csum_partial_copy.c"}, "region": {"startLine": 1}}}]}, {"ruleId": "CFG006", "level": "warning", "message": {"text": "[CFG006] Missing .gitignore: No .gitignore file. Risk of committing secrets and build artifacts."}, "properties": {"repobilityId": 30329, "scanner": "repobility-threat-engine", "fingerprint": "c65fc71ce58c37a0e07837c0fe294108b731c43ef16027a2f0971c757bbe9a16", "category": "practices", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "No .gitignore file found in repository root", "evidence": {"reason": "No .gitignore file found in repository root", "rule_id": "CFG006", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "repo|practices|cfg006"}}}, {"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": 30327, "scanner": "repobility-threat-engine", "fingerprint": "d7de42d5f4e8211c93dc3ab47cae31638e9617f0276b30cea09eb04f3971bc70", "category": "error_handling", "severity": "medium", "confidence": 0.45, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Pattern matched with no mitigating context found | [R34 auto-suppress: documentation/example path]", "evidence": {"match": "except Exception:\n    pass", "reason": "Pattern matched with no mitigating context found | [R34 auto-suppress: documentation/example path]", "rule_id": "ERR001", "scanner": "repobility-threat-engine", "confidence": 0.45, "correlation_key": "fp|d7de42d5f4e8211c93dc3ab47cae31638e9617f0276b30cea09eb04f3971bc70"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Documentation/conf.py"}, "region": {"startLine": 299}}}]}, {"ruleId": "CORE_NO_CI", "level": "warning", "message": {"text": "No CI/CD configuration found"}, "properties": {"repobilityId": 30326, "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": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 30345, "scanner": "repobility-ai-code-hygiene", "fingerprint": "9cde9bf211f8e7d98298dd6fd2a054764545f8c4c019db2460f88b4fe170f415", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "arch/arc/include/asm/irqflags-arcv2.h", "duplicate_line": 51, "correlation_key": "fp|9cde9bf211f8e7d98298dd6fd2a054764545f8c4c019db2460f88b4fe170f415"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "arch/arc/include/asm/irqflags-compact.h"}, "region": {"startLine": 64}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 30344, "scanner": "repobility-ai-code-hygiene", "fingerprint": "e8350010bb576ac185f68f293138a66a872e18bc2835063cdab49b5176333ae7", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "arch/arc/include/asm/entry-arcv2.h", "duplicate_line": 147, "correlation_key": "fp|e8350010bb576ac185f68f293138a66a872e18bc2835063cdab49b5176333ae7"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "arch/arc/include/asm/entry-compact.h"}, "region": {"startLine": 38}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 30343, "scanner": "repobility-ai-code-hygiene", "fingerprint": "fe672e897beb20f36ab60ab53727b8e275fdbdd356246eefbbc8d36f0e15c924", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "arch/alpha/lib/csum_partial_copy.c", "duplicate_line": 19, "correlation_key": "fp|fe672e897beb20f36ab60ab53727b8e275fdbdd356246eefbbc8d36f0e15c924"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "arch/alpha/lib/checksum.c"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 30342, "scanner": "repobility-ai-code-hygiene", "fingerprint": "0b2e29cdf5c7730c0dd8be6756ae8ad5786fcf2c64b2b31ff2f7a8e987ba6402", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "arch/alpha/kernel/sys_alcor.c", "duplicate_line": 86, "correlation_key": "fp|0b2e29cdf5c7730c0dd8be6756ae8ad5786fcf2c64b2b31ff2f7a8e987ba6402"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "arch/alpha/kernel/sys_miata.c"}, "region": {"startLine": 98}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 30341, "scanner": "repobility-ai-code-hygiene", "fingerprint": "f41ce6190c3d773b52f5607239bb9daba04e3e55753f41f98efe7792637735a1", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "arch/alpha/kernel/core_irongate.c", "duplicate_line": 18, "correlation_key": "fp|f41ce6190c3d773b52f5607239bb9daba04e3e55753f41f98efe7792637735a1"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "arch/alpha/kernel/core_wildfire.c"}, "region": {"startLine": 232}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 30340, "scanner": "repobility-ai-code-hygiene", "fingerprint": "34a2a933831e41295432a49774dab36724e2c0572606ed07dd72ea4daf4e5d46", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "arch/alpha/kernel/core_titan.c", "duplicate_line": 23, "correlation_key": "fp|34a2a933831e41295432a49774dab36724e2c0572606ed07dd72ea4daf4e5d46"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "arch/alpha/kernel/core_wildfire.c"}, "region": {"startLine": 212}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 30339, "scanner": "repobility-ai-code-hygiene", "fingerprint": "8b5aa3d8f253acca6a9cf1133e3fba2f8bb72e594839ea2c497cc3629f9a052a", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "arch/alpha/kernel/core_irongate.c", "duplicate_line": 18, "correlation_key": "fp|8b5aa3d8f253acca6a9cf1133e3fba2f8bb72e594839ea2c497cc3629f9a052a"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "arch/alpha/kernel/core_tsunami.c"}, "region": {"startLine": 26}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 30338, "scanner": "repobility-ai-code-hygiene", "fingerprint": "4a918acd70ef263d84399918575e7c80bb6d48a4e6ebfd8c97f8d48ddfeccb12", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "arch/alpha/kernel/core_titan.c", "duplicate_line": 24, "correlation_key": "fp|4a918acd70ef263d84399918575e7c80bb6d48a4e6ebfd8c97f8d48ddfeccb12"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "arch/alpha/kernel/core_tsunami.c"}, "region": {"startLine": 7}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 30337, "scanner": "repobility-ai-code-hygiene", "fingerprint": "2e7893c5c387a064edfa09a6a84e8bf5cd00585217dbe83ce4591e406f748fee", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "arch/alpha/kernel/core_marvel.c", "duplicate_line": 417, "correlation_key": "fp|2e7893c5c387a064edfa09a6a84e8bf5cd00585217dbe83ce4591e406f748fee"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "arch/alpha/kernel/core_titan.c"}, "region": {"startLine": 291}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 30336, "scanner": "repobility-ai-code-hygiene", "fingerprint": "137117bfa667a8fcfe4c79296149285ee0793be153866ade9ff5253d9f1aeca4", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "arch/alpha/kernel/core_irongate.c", "duplicate_line": 18, "correlation_key": "fp|137117bfa667a8fcfe4c79296149285ee0793be153866ade9ff5253d9f1aeca4"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "arch/alpha/kernel/core_titan.c"}, "region": {"startLine": 43}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 30335, "scanner": "repobility-ai-code-hygiene", "fingerprint": "e34a02855ea1793698d244d7874924665329a3c261243c903df7483db0de84a5", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "arch/alpha/kernel/core_irongate.c", "duplicate_line": 18, "correlation_key": "fp|e34a02855ea1793698d244d7874924665329a3c261243c903df7483db0de84a5"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "arch/alpha/kernel/core_polaris.c"}, "region": {"startLine": 14}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 30334, "scanner": "repobility-ai-code-hygiene", "fingerprint": "9e248071f1857dc2d4ad64ef6d6416e73934a3cc855dcfc34578f0e1c636a2b0", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "arch/alpha/kernel/core_irongate.c", "duplicate_line": 41, "correlation_key": "fp|9e248071f1857dc2d4ad64ef6d6416e73934a3cc855dcfc34578f0e1c636a2b0"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "arch/alpha/kernel/core_marvel.c"}, "region": {"startLine": 306}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 30333, "scanner": "repobility-ai-code-hygiene", "fingerprint": "7bfe85f57d807797431b7d82f17eb09d3ce7f52754ee6fe3cb7158c564690d10", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "arch/alpha/boot/bootp.c", "duplicate_line": 5, "correlation_key": "fp|7bfe85f57d807797431b7d82f17eb09d3ce7f52754ee6fe3cb7158c564690d10"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "arch/alpha/boot/main.c"}, "region": {"startLine": 4}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 30332, "scanner": "repobility-ai-code-hygiene", "fingerprint": "713ddd895e7a2b3140bd7bdafa54e4c97251c424cdbfc97c0ecdffedeed9dee9", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "arch/alpha/boot/bootp.c", "duplicate_line": 17, "correlation_key": "fp|713ddd895e7a2b3140bd7bdafa54e4c97251c424cdbfc97c0ecdffedeed9dee9"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "arch/alpha/boot/bootpz.c"}, "region": {"startLine": 41}}}]}, {"ruleId": "AIC002", "level": "note", "message": {"text": "Source file name looks like an AI patch artifact"}, "properties": {"repobilityId": 30330, "scanner": "repobility-ai-code-hygiene", "fingerprint": "be8598d824c2c9857d952ced362d76216df5ab41396e3a4eaf184436a03c9ca7", "category": "quality", "severity": "low", "confidence": 0.62, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Source filename contains a temporary or patch-style suffix.", "evidence": {"suffix": "copy", "rule_id": "AIC002", "scanner": "repobility-ai-code-hygiene", "references": ["https://arxiv.org/abs/2601.15195"], "correlation_key": "fp|be8598d824c2c9857d952ced362d76216df5ab41396e3a4eaf184436a03c9ca7"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "arch/alpha/lib/csum_partial_copy.c"}, "region": {"startLine": 1}}}]}, {"ruleId": "CORE_NO_LICENSE", "level": "note", "message": {"text": "No LICENSE file"}, "properties": {"repobilityId": 30325, "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": "SEC103", "level": "error", "message": {"text": "[SEC103] LDAP injection \u2014 non-constant search filter: User input concatenated into an LDAP search filter. Attackers inject `*)(uid=*` style payloads to bypass auth or enumerate accounts."}, "properties": {"repobilityId": 30328, "scanner": "repobility-threat-engine", "fingerprint": "eecd4ef1a4d9fdb3eeead28795c3ca993066840b945206b7918e22c0fceb0868", "category": "injection", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": ".search(r\"\\*([^\\*]+)", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC103", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "code|injection|token|99|sec103"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Documentation/sphinx/maintainers_include.py"}, "region": {"startLine": 99}}}]}, {"ruleId": "CORE_NO_TESTS", "level": "error", "message": {"text": "No test files found"}, "properties": {"repobilityId": 30324, "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"}}}]}]}