{"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": "SEC042", "name": "[SEC042] SQL identifier injection via f-string in cursor execute: f-string SQL normalizes an unsafe pattern. Currently s", "shortDescription": {"text": "[SEC042] SQL identifier injection via f-string in cursor execute: f-string SQL normalizes an unsafe pattern. Currently safe when only trusted internal values are interpolated (e.g. self._table in Odoo), but a future contributor can extend t"}, "fullDescription": {"text": "Use psycopg2.sql.SQL() + sql.Identifier() for identifiers:\n  from psycopg2 import sql\n  cr.execute(sql.SQL('UPDATE {} SET x=%s').format(sql.Identifier(table)), (value,))\nNever use f-string in cr.execute(). Values go through %s parameters."}, "properties": {"scanner": "repobility-threat-engine", "category": "injection", "severity": "medium", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "SEC107", "name": "[SEC107] Weak TLS version requested (TLSv1.0, TLSv1.1, SSLv3, SSLv2): TLS 1.0 and 1.1 were deprecated by IETF in 2021 (R", "shortDescription": {"text": "[SEC107] Weak TLS version requested (TLSv1.0, TLSv1.1, SSLv3, SSLv2): TLS 1.0 and 1.1 were deprecated by IETF in 2021 (RFC 8996). Most browsers no longer support them. Code requesting these protocols is talking to an attacker-controllable d"}, "fullDescription": {"text": "Use TLSv1.2 minimum, TLSv1.3 preferred. Java: `SSLContext.getInstance(\"TLSv1.2\")`. Python: `ssl.PROTOCOL_TLS_CLIENT` + `MinimumVersion = TLSVersion.TLSv1_2`. Go: `MinVersion: tls.VersionTLS12`."}, "properties": {"scanner": "repobility-threat-engine", "category": "crypto", "severity": "medium", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "SEC045", "name": "[SEC045] eval()/exec() on stored or user-supplied data: eval() and exec() on data \u2014 even admin-stored data \u2014 is a latera", "shortDescription": {"text": "[SEC045] eval()/exec() on stored or user-supplied data: eval() and exec() on data \u2014 even admin-stored data \u2014 is a lateral-movement vector after any one credential compromise. Sandboxes (__builtins__ cleared) are escapable: attackers use obj"}, "fullDescription": {"text": "For literal data structures: use ast.literal_eval(text) \u2014 only parses literals, raises on code.\nFor formula evaluation: use asteval or simpleeval (purpose-built sandboxes with allow-lists).\nFor Odoo: use odoo.tools.safe_eval(expr, locals_dict, mode='exec').\nIf you genuinely need to execute admin-stored code: require explicit super-admin permission AND log every execution with a stack trace."}, "properties": {"scanner": "repobility-threat-engine", "category": "injection", "severity": "medium", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "SEC134", "name": "[SEC134] AI scaffold leftover \u2014 Lorem ipsum / example.com / John Doe in code: Lorem ipsum / John Doe / example.com left ", "shortDescription": {"text": "[SEC134] AI scaffold leftover \u2014 Lorem ipsum / example.com / John Doe in code: Lorem ipsum / John Doe / example.com left in non-test code. AI agents emit these as 'reasonable defaults' when they don't know real values; the human then forgets"}, "fullDescription": {"text": "Move dummy values to fixtures / seed files. In application code, require these to come from config or fail closed. Add a CI grep that rejects 'lorem ipsum' and 'example.com' outside test files."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "medium", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "SEC015", "name": "[SEC015] Insecure Randomness for Security: Weak PRNG used in security-sensitive context. Output is predictable.", "shortDescription": {"text": "[SEC015] Insecure Randomness for Security: Weak PRNG used in security-sensitive context. Output is predictable."}, "fullDescription": {"text": "Use secrets module (Python) or crypto.getRandomValues() (JS) for security-sensitive randomness."}, "properties": {"scanner": "repobility-threat-engine", "category": "crypto", "severity": "medium", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"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": "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": "SEC002", "name": "[SEC002] Hardcoded API Key: Hardcoded API key found in source code.", "shortDescription": {"text": "[SEC002] Hardcoded API Key: Hardcoded API key found in source code."}, "fullDescription": {"text": "Use environment variables. Add the pattern to .gitignore."}, "properties": {"scanner": "repobility-threat-engine", "category": "credential_exposure", "severity": "medium", "confidence": 0.3, "cwe": "", "owasp": ""}}, {"id": "SEC001", "name": "[SEC001] Hardcoded Password: Hardcoded password found in source code.", "shortDescription": {"text": "[SEC001] Hardcoded Password: Hardcoded password found in source code."}, "fullDescription": {"text": "Use environment variables or a secrets manager."}, "properties": {"scanner": "repobility-threat-engine", "category": "credential_exposure", "severity": "medium", "confidence": 0.3, "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 `v2_runner_on_ok` has cognitive complexity 16 (SonarSource scale). Cogniti", "shortDescription": {"text": "[COMP001] High cognitive complexity: Function `v2_runner_on_ok` has cognitive complexity 16 (SonarSource scale). Cognitive complexity measures how hard the function is for a human to understand \u2014 nested branches, boolean chains, and recursi"}, "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 16."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "medium", "confidence": 0.95, "cwe": "", "owasp": ""}}, {"id": "SEC007", "name": "[SEC007] Unsafe Deserialization: Unsafe deserialization can execute arbitrary code.", "shortDescription": {"text": "[SEC007] Unsafe Deserialization: Unsafe deserialization can execute arbitrary code."}, "fullDescription": {"text": "Use yaml.safe_load() instead of yaml.load(). Avoid pickle for untrusted data."}, "properties": {"scanner": "repobility-threat-engine", "category": "deserialization", "severity": "medium", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "AGT012", "name": "Agent control bridge may listen on a network interface without visible auth", "shortDescription": {"text": "Agent control bridge may listen on a network interface without visible auth"}, "fullDescription": {"text": "Agent, MCP, sidecar, and command bridge servers often start as local helpers. Binding them to 0.0.0.0 or a default all-interface listener without an authorization guard can expose tool execution or session data to the LAN."}, "properties": {"scanner": "repobility-agent-runtime", "category": "quality", "severity": "medium", "confidence": 0.72, "cwe": "", "owasp": ""}}, {"id": "MINED124", "name": "requirements.txt: `jsonpatch` has no version pin", "shortDescription": {"text": "requirements.txt: `jsonpatch` has no version pin"}, "fullDescription": {"text": "Unpinned pip requirement means every fresh install may resolve a different version. Newer releases can introduce malicious code (typosquats, account compromises). Reproducible installs need exact pins."}, "properties": {"scanner": "repobility-supply-chain", "category": "dependency", "severity": "medium", "confidence": 0.9, "cwe": "", "owasp": ""}}, {"id": "MINED111", "name": "Bare except continues silently", "shortDescription": {"text": "Bare except continues silently"}, "fullDescription": {"text": "Bare `except:` (or `except Exception:`) that runs code without re-raising or logging the exception. Hides real failures and makes bugs hard to diagnose."}, "properties": {"scanner": "repobility-ast-engine", "category": "quality", "severity": "medium", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "WEB003", "name": "Public web service has no security.txt", "shortDescription": {"text": "Public web service has no security.txt"}, "fullDescription": {"text": "security.txt gives researchers and customers a safe disclosure channel. Public web apps and APIs should publish it under /.well-known/security.txt."}, "properties": {"scanner": "repobility-web-presence", "category": "quality", "severity": "medium", "confidence": 0.78, "cwe": "", "owasp": ""}}, {"id": "DKC007", "name": "Compose service contains a literal secret environment value", "shortDescription": {"text": "Compose service contains a literal secret environment value"}, "fullDescription": {"text": "Literal secrets in Compose files are committed to source and exposed through container inspection."}, "properties": {"scanner": "repobility-docker", "category": "docker", "severity": "medium", "confidence": 0.56, "cwe": "", "owasp": ""}}, {"id": "DKC015", "name": "Database service has no healthcheck", "shortDescription": {"text": "Database service has no healthcheck"}, "fullDescription": {"text": "Compose starts dependent containers in dependency order, but it does not wait for a database to be ready unless a healthcheck is defined and dependents use service_healthy."}, "properties": {"scanner": "repobility-docker", "category": "docker", "severity": "medium", "confidence": 0.88, "cwe": "", "owasp": ""}}, {"id": "DKR002", "name": "Compose service `jenkins` image has no explicit tag", "shortDescription": {"text": "Compose service `jenkins` image has no explicit tag"}, "fullDescription": {"text": "Images without explicit tags resolve to a mutable default tag, which weakens reproducibility and review."}, "properties": {"scanner": "repobility-docker", "category": "docker", "severity": "medium", "confidence": 0.9, "cwe": "", "owasp": ""}}, {"id": "SEC014", "name": "[SEC014] SSL Verification Disabled: SSL certificate verification is disabled, allowing man-in-the-middle attacks.", "shortDescription": {"text": "[SEC014] SSL Verification Disabled: SSL certificate verification is disabled, allowing man-in-the-middle attacks."}, "fullDescription": {"text": "Enable SSL verification. Use verify=True (default) for requests. Pin certificates if needed."}, "properties": {"scanner": "repobility-threat-engine", "category": "crypto", "severity": "medium", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "AIC003", "name": "Duplicated implementation block across source files", "shortDescription": {"text": "Duplicated implementation block across source files"}, "fullDescription": {"text": "Duplicated blocks are a common artifact when generated code is pasted or recreated instead of reused. They increase maintenance cost because every future bug fix must be found in multiple locations."}, "properties": {"scanner": "repobility-ai-code-hygiene", "category": "quality", "severity": "medium", "confidence": 0.86, "cwe": "", "owasp": ""}}, {"id": "AIC004", "name": "Suspicious implementation file appears unreferenced", "shortDescription": {"text": "Suspicious implementation file appears unreferenced"}, "fullDescription": {"text": "A file created as a fixed/new/final/copy variant is not referenced by imports or path-like strings in the rest of the repository. This is a strong sign that an agent produced code beside the active application path."}, "properties": {"scanner": "repobility-ai-code-hygiene", "category": "quality", "severity": "medium", "confidence": 0.78, "cwe": "", "owasp": ""}}, {"id": "AIC001", "name": "Parallel implementation file sits beside a canonical file", "shortDescription": {"text": "Parallel implementation file sits beside a canonical file"}, "fullDescription": {"text": "AI-assisted edits often create a new sibling file instead of integrating the change into the existing module. That leaves two paths for future maintainers to understand and can hide the code that is actually wired into the app."}, "properties": {"scanner": "repobility-ai-code-hygiene", "category": "quality", "severity": "medium", "confidence": 0.82, "cwe": "", "owasp": ""}}, {"id": "SEC124", "name": "[SEC124] TOCTOU file access (os.access then open): Check-then-use file pattern (access/exists then open) lets an attacke", "shortDescription": {"text": "[SEC124] TOCTOU file access (os.access then open): Check-then-use file pattern (access/exists then open) lets an attacker swap the file between check and use (symlink attack). `mktemp` is deprecated for the same reason."}, "fullDescription": {"text": "Use `os.open(path, os.O_CREAT | os.O_EXCL | os.O_WRONLY)` for atomic create-only. Use `tempfile.NamedTemporaryFile()` (not `mktemp`). For locking, use `fcntl.flock`."}, "properties": {"scanner": "repobility-threat-engine", "category": "race_condition", "severity": "low", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "DKC010", "name": "Compose service lacks no-new-privileges hardening", "shortDescription": {"text": "Compose service lacks no-new-privileges hardening"}, "fullDescription": {"text": "no-new-privileges prevents processes from gaining additional privileges through setuid binaries or file capabilities."}, "properties": {"scanner": "repobility-docker", "category": "docker", "severity": "low", "confidence": 0.62, "cwe": "", "owasp": ""}}, {"id": "DKC006", "name": "Compose service does not declare a runtime user", "shortDescription": {"text": "Compose service does not declare a runtime user"}, "fullDescription": {"text": "If the image does not define USER internally, this service may run as root."}, "properties": {"scanner": "repobility-docker", "category": "docker", "severity": "low", "confidence": 0.56, "cwe": "", "owasp": ""}}, {"id": "AIC005", "name": "Duplicate top-level symbol appears in a patch-style file", "shortDescription": {"text": "Duplicate top-level symbol appears in a patch-style file"}, "fullDescription": {"text": "A generated replacement file defining the same public function or class name as another module can mean the new logic is not actually wired into the running code."}, "properties": {"scanner": "repobility-ai-code-hygiene", "category": "quality", "severity": "low", "confidence": 0.64, "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": "Files named as final, fixed, copy, new, or backup are often temporary patch artifacts. They may be legitimate, but they deserve review before becoming production surface area."}, "properties": {"scanner": "repobility-ai-code-hygiene", "category": "quality", "severity": "low", "confidence": 0.62, "cwe": "", "owasp": ""}}, {"id": "MINED073", "name": "[MINED073] Redos Greedy Quantifier: Pattern with nested quantifiers like (a+)+ applied to network/user data \u2014 denial of ", "shortDescription": {"text": "[MINED073] Redos Greedy Quantifier: Pattern with nested quantifiers like (a+)+ applied to network/user data \u2014 denial of service."}, "fullDescription": {"text": "Review and fix per the pattern semantics. See CWE-1333,CWE-400 / A06:2021 for context."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "info", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "MINED007", "name": "[MINED007] Sql String Concat (and 1 more): Same pattern found in 1 additional files. Review if needed.", "shortDescription": {"text": "[MINED007] Sql String Concat (and 1 more): Same pattern found in 1 additional files. Review if needed."}, "fullDescription": {"text": "Review and fix per the pattern semantics. See CWE-89 / A03:2021 for context."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "info", "confidence": 0.2, "cwe": "", "owasp": ""}}, {"id": "MINED074", "name": "[MINED074] Ai Tell Fake Citation: Plausible-looking but non-existent URLs (e.g., docs.example.com/v2). Common AI halluci", "shortDescription": {"text": "[MINED074] Ai Tell Fake Citation: Plausible-looking but non-existent URLs (e.g., docs.example.com/v2). Common AI hallucination."}, "fullDescription": {"text": "Review and fix per the pattern semantics."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "info", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "SEC004", "name": "[SEC004] SQL Injection Risk (and 4 more): Same pattern found in 4 additional files. Review if needed.", "shortDescription": {"text": "[SEC004] SQL Injection Risk (and 4 more): Same pattern found in 4 additional files. Review if needed."}, "fullDescription": {"text": "Use parameterized queries: cursor.execute('SELECT * FROM t WHERE id = %s', [id])"}, "properties": {"scanner": "repobility-threat-engine", "category": "injection", "severity": "info", "confidence": 0.2, "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": "MINED067", "name": "[MINED067] Python Requests No Timeout: requests.get/post/etc. without timeout= can hang forever.", "shortDescription": {"text": "[MINED067] Python Requests No Timeout: requests.get/post/etc. without timeout= can hang forever."}, "fullDescription": {"text": "Review and fix per the pattern semantics. See CWE-400 /  for context."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "info", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "MINED077", "name": "[MINED077] Python Open No Context: fp = open(path) outside with-block leaks file handles.", "shortDescription": {"text": "[MINED077] Python Open No Context: fp = open(path) outside with-block leaks file handles."}, "fullDescription": {"text": "Review and fix per the pattern semantics. See CWE-772 /  for context."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "info", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "MINED043", "name": "[MINED043] Http Not Https (and 31 more): Same pattern found in 31 additional files. Review if needed.", "shortDescription": {"text": "[MINED043] Http Not Https (and 31 more): Same pattern found in 31 additional files. Review if needed."}, "fullDescription": {"text": "Review and fix per the pattern semantics. See CWE-319 / A02:2021 for context."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "info", "confidence": 0.2, "cwe": "", "owasp": ""}}, {"id": "MINED076", "name": "[MINED076] Catch And Reraise Noop: except X: raise X \u2014 adds no value, hides traceback if AI accidentally changes message", "shortDescription": {"text": "[MINED076] Catch And Reraise Noop: except X: raise X \u2014 adds no value, hides traceback if AI accidentally changes message."}, "fullDescription": {"text": "Review and fix per the pattern semantics."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "info", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "MINED006", "name": "[MINED006] Overcatch Baseexception (and 2 more): Same pattern found in 2 additional files. Review if needed.", "shortDescription": {"text": "[MINED006] Overcatch Baseexception (and 2 more): Same pattern found in 2 additional files. Review if needed."}, "fullDescription": {"text": "Review and fix per the pattern semantics. See CWE-705 /  for context."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "info", "confidence": 0.2, "cwe": "", "owasp": ""}}, {"id": "MINED053", "name": "[MINED053] Placeholder Default Username (and 5 more): Same pattern found in 5 additional files. Review if needed.", "shortDescription": {"text": "[MINED053] Placeholder Default Username (and 5 more): Same pattern found in 5 additional files. Review if needed."}, "fullDescription": {"text": "Review and fix per the pattern semantics. See CWE-1392,CWE-798 /  for context."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "info", "confidence": 0.2, "cwe": "", "owasp": ""}}, {"id": "MINED072", "name": "[MINED072] Python Pass Only Class (and 14 more): Same pattern found in 14 additional files. Review if needed.", "shortDescription": {"text": "[MINED072] Python Pass Only Class (and 14 more): Same pattern found in 14 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": "SEC128", "name": "[SEC128] Async function without await \u2014 fire-and-forget Promise (AI mistake) (and 84 more): Same pattern found in 84 add", "shortDescription": {"text": "[SEC128] Async function without await \u2014 fire-and-forget Promise (AI mistake) (and 84 more): Same pattern found in 84 additional files. Review if needed."}, "fullDescription": {"text": "Add `await` before each async call, or chain with `.then`. If you intentionally want fire-and-forget, prefix with `void` (TS) or assign to `_` (Python with `asyncio.create_task`) to make the intent explicit and survive lint."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "info", "confidence": 0.2, "cwe": "", "owasp": ""}}, {"id": "MINED050", "name": "[MINED050] Stub Only Function (and 60 more): Same pattern found in 60 additional files. Review if needed.", "shortDescription": {"text": "[MINED050] Stub Only Function (and 60 more): Same pattern found in 60 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": "MINED001", "name": "[MINED001] Bare Except Pass (and 44 more): Same pattern found in 44 additional files. Review if needed.", "shortDescription": {"text": "[MINED001] Bare Except Pass (and 44 more): Same pattern found in 44 additional files. Review if needed."}, "fullDescription": {"text": "Review and fix per the pattern semantics. See CWE-755 /  for context."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "info", "confidence": 0.2, "cwe": "", "owasp": ""}}, {"id": "MINED055", "name": "[MINED055] Npm Install No Lockfile: Production image runs npm install (resolves new versions on every build) instead of ", "shortDescription": {"text": "[MINED055] Npm Install No Lockfile: Production image runs npm install (resolves new versions on every build) instead of npm ci."}, "fullDescription": {"text": "Review and fix per the pattern semantics. See CWE-1357 / A06:2021 for context."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "info", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "SEC029", "name": "[SEC029] Server-Side Request Forgery (SSRF) \u2014 outbound HTTP from user input (and 61 more): Same pattern found in 61 addi", "shortDescription": {"text": "[SEC029] Server-Side Request Forgery (SSRF) \u2014 outbound HTTP from user input (and 61 more): Same pattern found in 61 additional files. Review if needed."}, "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": "info", "confidence": 0.2, "cwe": "", "owasp": ""}}, {"id": "SEC103", "name": "[SEC103] LDAP injection \u2014 non-constant search filter (and 7 more): Same pattern found in 7 additional files. Review if n", "shortDescription": {"text": "[SEC103] LDAP injection \u2014 non-constant search filter (and 7 more): Same pattern found in 7 additional files. Review if needed."}, "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": "info", "confidence": 0.2, "cwe": "", "owasp": ""}}, {"id": "SEC032", "name": "[SEC032] Unrestricted File Upload \u2014 no extension/MIME validation: File upload accepts the user's filename without valida", "shortDescription": {"text": "[SEC032] Unrestricted File Upload \u2014 no extension/MIME validation: File upload accepts the user's filename without validating extension, content-type, or magic bytes. Attackers upload `.php`, `.jsp`, or executable files to a web-served direc"}, "fullDescription": {"text": "Validate THREE things server-side:\n  1. Extension allowlist:\n       ALLOWED = {'.png', '.jpg', '.pdf'}\n       ext = Path(file.filename).suffix.lower()\n       if ext not in ALLOWED: abort(400)\n  2. Magic-byte check (don't trust the extension):\n       import magic\n       mime = magic.from_buffer(file.read(2048), mime=True)\n  3. Save with a random/UUID filename to a non-executable directory.\nSanitize with `werkzeug.secure_filename`. Never reuse the user's name."}, "properties": {"scanner": "repobility-threat-engine", "category": "file_upload", "severity": "high", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "MINED004", "name": "[MINED004] Weak Crypto: MD5/SHA1/DES/RC4 used for security context (not just checksums).", "shortDescription": {"text": "[MINED004] Weak Crypto: MD5/SHA1/DES/RC4 used for security context (not just checksums)."}, "fullDescription": {"text": "Review and fix per the pattern semantics. See CWE-327 / A02:2021 for context."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "high", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "SEC078", "name": "[SEC078] Python: requests without timeout: requests.get/post without a timeout will hang indefinitely on a non-responsiv", "shortDescription": {"text": "[SEC078] Python: requests without timeout: requests.get/post without a timeout will hang indefinitely on a non-responsive server, causing thread exhaustion and ReDoS. Ported from bandit B113 (Apache-2.0). NOTE: this regex is heuristic; a re"}, "fullDescription": {"text": "Add `timeout=10` (or appropriate value) to every requests call."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "high", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "SEC013", "name": "[SEC013] Path Traversal \u2014 User Input in File Path: User-controlled input used in file path without sanitization. Allows ", "shortDescription": {"text": "[SEC013] Path Traversal \u2014 User Input in File Path: User-controlled input used in file path without sanitization. Allows reading arbitrary files."}, "fullDescription": {"text": "Use os.path.realpath() and verify the path starts with your expected base directory. Use secure_filename() for uploads."}, "properties": {"scanner": "repobility-threat-engine", "category": "path_traversal", "severity": "high", "confidence": 0.8, "cwe": "", "owasp": ""}}, {"id": "MINED021", "name": "[MINED021] Path Traversal Os Join: os.path.join(user_dir, filename) where filename can contain \"../\" \u2014 directory escape.", "shortDescription": {"text": "[MINED021] Path Traversal Os Join: os.path.join(user_dir, filename) where filename can contain \"../\" \u2014 directory escape."}, "fullDescription": {"text": "Review and fix per the pattern semantics. See CWE-22 / A01:2021 for context."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "high", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "MINED040", "name": "[MINED040] Python Yaml Load Unsafe: yaml.load(stream) without SafeLoader can deserialize arbitrary classes.", "shortDescription": {"text": "[MINED040] Python Yaml Load Unsafe: yaml.load(stream) without SafeLoader can deserialize arbitrary classes."}, "fullDescription": {"text": "Review and fix per the pattern semantics. See CWE-502 /  for context."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "high", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "MINED134", "name": "Binary file `tests/integration/targets/connection_wsl/files/wsl.exe` committed in source repo", "shortDescription": {"text": "Binary file `tests/integration/targets/connection_wsl/files/wsl.exe` committed in source repo"}, "fullDescription": {"text": "`tests/integration/targets/connection_wsl/files/wsl.exe` is a .exe binary (1,627 bytes) committed to a repo that otherwise has 1158 source files. Trojan binaries inside otherwise-normal source repos are a known supply-chain attack: a compromised dependency or PR slips in a binary that gets executed by build scripts."}, "properties": {"scanner": "repobility-supply-chain", "category": "dependency", "severity": "high", "confidence": 0.9, "cwe": "", "owasp": ""}}, {"id": "MINED115", "name": "Action `felixfontein/ansible-test-gh-action` pinned to mutable ref `@main`", "shortDescription": {"text": "Action `felixfontein/ansible-test-gh-action` pinned to mutable ref `@main`"}, "fullDescription": {"text": "`uses: felixfontein/ansible-test-gh-action@main` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-actions/changed-files compromise (2025) instantly affect ~23K repos. Pin to a 40-char commit SHA + lock with Dependabot or renovate."}, "properties": {"scanner": "repobility-supply-chain", "category": "dependency", "severity": "high", "confidence": 0.9, "cwe": "", "owasp": ""}}, {"id": "MINED112", "name": "FastAPI PATCH ansible_collections.community.general.plugins.module_utils._lxca_common.setup_conn has no auth", "shortDescription": {"text": "FastAPI PATCH ansible_collections.community.general.plugins.module_utils._lxca_common.setup_conn has no auth"}, "fullDescription": {"text": "Handler `test__nodes_empty_list` is registered with router/app.patch(...) but no Depends/Security parameter is declared and no auth marker appears in the function body."}, "properties": {"scanner": "repobility-route-auth", "category": "quality", "severity": "high", "confidence": 0.8, "cwe": "", "owasp": ""}}, {"id": "MINED106", "name": "Phantom test coverage: test_should_get_all_enets", "shortDescription": {"text": "Phantom test coverage: test_should_get_all_enets"}, "fullDescription": {"text": "Test function `test_should_get_all_enets` runs code but contains no assert / expect / should call \u2014 it passes regardless of behaviour. Adds line coverage without verifying anything."}, "properties": {"scanner": "repobility-ast-engine", "category": "quality", "severity": "high", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "MINED108", "name": "`self.vars` used but never assigned in __init__", "shortDescription": {"text": "`self.vars` used but never assigned in __init__"}, "fullDescription": {"text": "Method `__run__` of class `MSimple` reads `self.vars`, 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": "DKC013", "name": "Database service has no persistent data volume", "shortDescription": {"text": "Database service has no persistent data volume"}, "fullDescription": {"text": "Database containers store data in the writable container layer unless a volume or bind mount is attached to the image's data directory. Recreating the container can lose state."}, "properties": {"scanner": "repobility-docker", "category": "docker", "severity": "high", "confidence": 0.9, "cwe": "", "owasp": ""}}, {"id": "MINED030", "name": "[MINED030] Python Pickle Loads: pickle.loads() can execute arbitrary code via __reduce__.", "shortDescription": {"text": "[MINED030] Python Pickle Loads: pickle.loads() can execute arbitrary code via __reduce__."}, "fullDescription": {"text": "Review and fix per the pattern semantics. See CWE-502 /  for context."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "critical", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "SEC081", "name": "[SEC081] Python: pickle.loads / marshal.loads on untrusted data: pickle.load(s) and marshal.load(s) execute arbitrary co", "shortDescription": {"text": "[SEC081] Python: pickle.loads / marshal.loads on untrusted data: pickle.load(s) and marshal.load(s) execute arbitrary code on untrusted input. Ported from dlint DUO103 / DUO120 (BSD-3)."}, "fullDescription": {"text": "Use json, msgpack, or protobuf for untrusted data. If pickle is required, sign the payload with HMAC."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "critical", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "MINED018", "name": "[MINED018] Unsafe Deserialization Pickle: pickle.loads / yaml.load (without Loader=SafeLoader) / unmarshal of network/fi", "shortDescription": {"text": "[MINED018] Unsafe Deserialization Pickle: pickle.loads / yaml.load (without Loader=SafeLoader) / unmarshal of network/file data \u2014 RCE."}, "fullDescription": {"text": "Review and fix per the pattern semantics. See CWE-502 / A08:2021 for context."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "critical", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "SEC116", "name": "[SEC116] Ruby YAML.load / Marshal.load on untrusted input: `YAML.load` (pre-3.1) and `Marshal.load` instantiate arbitrar", "shortDescription": {"text": "[SEC116] Ruby YAML.load / Marshal.load on untrusted input: `YAML.load` (pre-3.1) and `Marshal.load` instantiate arbitrary Ruby classes \u2014 direct RCE on untrusted input. `unsafe_load` is even more dangerous."}, "fullDescription": {"text": "Use `YAML.safe_load(input, permitted_classes: [Date])` \u2014 explicit class allowlist. Never use `Marshal.load` on untrusted data; serialize as JSON instead."}, "properties": {"scanner": "repobility-threat-engine", "category": "deserialization", "severity": "critical", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "SEC079", "name": "[SEC079] Python: yaml.load without SafeLoader: yaml.load() without explicit SafeLoader can execute arbitrary Python obje", "shortDescription": {"text": "[SEC079] Python: yaml.load without SafeLoader: yaml.load() without explicit SafeLoader can execute arbitrary Python objects (CVE-2017-18342). Ported from bandit B506 / dlint DUO109 (Apache-2.0 / BSD-3)."}, "fullDescription": {"text": "Use `yaml.safe_load(data)` or `yaml.load(data, Loader=yaml.SafeLoader)`."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "critical", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "MINED133", "name": "Hardcoded Microsoft Teams webhook URL in source", "shortDescription": {"text": "Hardcoded Microsoft Teams webhook URL in source"}, "fullDescription": {"text": "File contains a hardcoded `Microsoft Teams` webhook URL: `https://outlook.office.com/webhook/GUID/IncomingWebhook/GUID...`. Webhook URLs are unauthenticated POST endpoints \u2014 anyone with the URL can send messages. They are also a common data-exfiltration channel for compromised packages (malicious post-install collects env vars + POSTs them)."}, "properties": {"scanner": "repobility-supply-chain", "category": "dependency", "severity": "critical", "confidence": 0.9, "cwe": "", "owasp": ""}}, {"id": "MINED116", "name": "Workflow uses `secrets.CODECOV_TOKEN` on a `pull_request` trigger", "shortDescription": {"text": "Workflow uses `secrets.CODECOV_TOKEN` on a `pull_request` trigger"}, "fullDescription": {"text": "This workflow triggers on `pull_request`, which checks out the FORK's code. Referencing `${ secrets.CODECOV_TOKEN }` lets a PR from any fork exfiltrate the secret (modify a script, log the value, etc.). Use `pull_request_target` ONLY with strict checkout discipline (no fork code in the trusted context)."}, "properties": {"scanner": "repobility-supply-chain", "category": "dependency", "severity": "critical", "confidence": 0.9, "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/213"}, "properties": {"repository": "ansible-collections/community.general", "repoUrl": "https://github.com/ansible-collections/community.general", "branch": "main"}, "results": [{"ruleId": "SEC042", "level": "warning", "message": {"text": "[SEC042] SQL identifier injection via f-string in cursor execute: f-string SQL normalizes an unsafe pattern. Currently safe when only trusted internal values are interpolated (e.g. self._table in Odoo), but a future contributor can extend the f-string to user input without noticing. CWE-89. Identifiers (table/column names) need a separate escaping path from values."}, "properties": {"repobilityId": 49065, "scanner": "repobility-threat-engine", "fingerprint": "ceb98bd471acdc7c28248b379dd7674019fbd5d3bfbd5f45ba9f1b7458d993f5", "category": "injection", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "cursor.execute(f\"", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC042", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "code|injection|token|130|sec042"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/vertica_role.py"}, "region": {"startLine": 130}}}]}, {"ruleId": "SEC042", "level": "warning", "message": {"text": "[SEC042] SQL identifier injection via f-string in cursor execute: f-string SQL normalizes an unsafe pattern. Currently safe when only trusted internal values are interpolated (e.g. self._table in Odoo), but a future contributor can extend the f-string to user input without noticing. CWE-89. Identifiers (table/column names) need a separate escaping path from values."}, "properties": {"repobilityId": 49064, "scanner": "repobility-threat-engine", "fingerprint": "390cf5d4c14e3fadbaa5dc495b3c19baa494ce89d1384744a0ad576557389585", "category": "injection", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "cursor.execute(f\"", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC042", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "code|injection|token|128|sec042"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/vertica_configuration.py"}, "region": {"startLine": 128}}}]}, {"ruleId": "SEC042", "level": "warning", "message": {"text": "[SEC042] SQL identifier injection via f-string in cursor execute: f-string SQL normalizes an unsafe pattern. Currently safe when only trusted internal values are interpolated (e.g. self._table in Odoo), but a future contributor can extend the f-string to user input without noticing. CWE-89. Identifiers (table/column names) need a separate escaping path from values."}, "properties": {"repobilityId": 49063, "scanner": "repobility-threat-engine", "fingerprint": "848b4a56fac0cc8bfc7c0fb0808f7640580e0b762e5c090626cbb835defd2edc", "category": "injection", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "cursor.execute(f\"", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC042", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "code|injection|plugins/modules/mssql_db.py|120|sec042"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/mssql_db.py"}, "region": {"startLine": 120}}}]}, {"ruleId": "SEC107", "level": "warning", "message": {"text": "[SEC107] Weak TLS version requested (TLSv1.0, TLSv1.1, SSLv3, SSLv2): TLS 1.0 and 1.1 were deprecated by IETF in 2021 (RFC 8996). Most browsers no longer support them. Code requesting these protocols is talking to an attacker-controllable downgrade target."}, "properties": {"repobilityId": 49062, "scanner": "repobility-threat-engine", "fingerprint": "195bec2ed987efeb8ac38234e8b35165fccbe32f3fd3a1af68c66182a1ae1be6", "category": "crypto", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "ssl.PROTOCOL_TLSv1_1", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC107", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "code|crypto|plugins/modules/mqtt.py|149|sec107"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/mqtt.py"}, "region": {"startLine": 149}}}]}, {"ruleId": "SEC045", "level": "warning", "message": {"text": "[SEC045] eval()/exec() on stored or user-supplied data: eval() and exec() on data \u2014 even admin-stored data \u2014 is a lateral-movement vector after any one credential compromise. Sandboxes (__builtins__ cleared) are escapable: attackers use object introspection (().__class__.__mro__[-1].__subclasses__()) to reach os.system. CWE-95 (eval injection)."}, "properties": {"repobilityId": 49061, "scanner": "repobility-threat-engine", "fingerprint": "16ab4a3bc204995bced72e26ff7bc8d6c7acd60467adf9b86155d85d3a23f8fd", "category": "injection", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "eval(", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC045", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "code|injection|token|229|sec045"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/memset_zone_domain.py"}, "region": {"startLine": 229}}}]}, {"ruleId": "SEC045", "level": "warning", "message": {"text": "[SEC045] eval()/exec() on stored or user-supplied data: eval() and exec() on data \u2014 even admin-stored data \u2014 is a lateral-movement vector after any one credential compromise. Sandboxes (__builtins__ cleared) are escapable: attackers use object introspection (().__class__.__mro__[-1].__subclasses__()) to reach os.system. CWE-95 (eval injection)."}, "properties": {"repobilityId": 49060, "scanner": "repobility-threat-engine", "fingerprint": "eda7e0f9ba4c14bbd6eff8aa44768c33a63371993c1a87af50e87c56f4e3ced4", "category": "injection", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "eval(", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC045", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "code|injection|token|159|sec045"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/memset_dns_reload.py"}, "region": {"startLine": 159}}}]}, {"ruleId": "SEC134", "level": "warning", "message": {"text": "[SEC134] AI scaffold leftover \u2014 Lorem ipsum / example.com / John Doe in code: Lorem ipsum / John Doe / example.com left in non-test code. AI agents emit these as 'reasonable defaults' when they don't know real values; the human then forgets to swap them. In production, these break demo flows, send mail to a real example.com host (it's owned by IANA), and leak that the codebase had an AI scaffolding pass."}, "properties": {"repobilityId": 49053, "scanner": "repobility-threat-engine", "fingerprint": "0f2f6f072f9eaf90fff4cfd46ea66baba3661eb5d0cddb070e41eb6005b0d4f2", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "url: 'http://example.com", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC134", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|0f2f6f072f9eaf90fff4cfd46ea66baba3661eb5d0cddb070e41eb6005b0d4f2"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/gitlab_project_badge.py"}, "region": {"startLine": 86}}}]}, {"ruleId": "SEC015", "level": "warning", "message": {"text": "[SEC015] Insecure Randomness for Security: Weak PRNG used in security-sensitive context. Output is predictable."}, "properties": {"repobilityId": 49046, "scanner": "repobility-threat-engine", "fingerprint": "ffadc7c65a6bab6ee4c233280a1285b6e9b1e59d37f39c612f66d8e6a0678344", "category": "crypto", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Security-sensitive keyword found nearby \u2014 weak PRNG is risky here", "evidence": {"match": "def create_key", "reason": "Security-sensitive keyword found nearby \u2014 weak PRNG is risky here", "rule_id": "SEC015", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "code|crypto|token|188|sec015"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/github_key.py"}, "region": {"startLine": 188}}}]}, {"ruleId": "SEC015", "level": "warning", "message": {"text": "[SEC015] Insecure Randomness for Security: Weak PRNG used in security-sensitive context. Output is predictable."}, "properties": {"repobilityId": 49045, "scanner": "repobility-threat-engine", "fingerprint": "3eeaadd291a38ebc1d0ecae86446bd398a6b8d8cce18b0dd530bc4d6cf7c7c89", "category": "crypto", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Security-sensitive keyword found nearby \u2014 weak PRNG is risky here", "evidence": {"match": "def create_session", "reason": "Security-sensitive keyword found nearby \u2014 weak PRNG is risky here", "rule_id": "SEC015", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "code|crypto|token|170|sec015"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/consul_session.py"}, "region": {"startLine": 170}}}]}, {"ruleId": "SEC015", "level": "warning", "message": {"text": "[SEC015] Insecure Randomness for Security: Weak PRNG used in security-sensitive context. Output is predictable."}, "properties": {"repobilityId": 49044, "scanner": "repobility-threat-engine", "fingerprint": "7e7898a68f5a17c387f0dfe3e5ed8c0382403a2f38e075e04e9f2b648590a640", "category": "crypto", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Security-sensitive keyword found nearby \u2014 weak PRNG is risky here", "evidence": {"match": "def create_deploy_key", "reason": "Security-sensitive keyword found nearby \u2014 weak PRNG is risky here", "rule_id": "SEC015", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "code|crypto|token|167|sec015"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/bitbucket_access_key.py"}, "region": {"startLine": 167}}}]}, {"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": 49040, "scanner": "repobility-threat-engine", "fingerprint": "e275901fcc49fed96595bb0e30fd5f0a909580dba8448df9fa01c085d233f5d3", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "def __run__(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|e275901fcc49fed96595bb0e30fd5f0a909580dba8448df9fa01c085d233f5d3"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/module_utils/_mh/base.py"}, "region": {"startLine": 58}}}]}, {"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": 49039, "scanner": "repobility-threat-engine", "fingerprint": "26fd5eb0c1333075800cd6d0102236224c8a75c1885035e62553daba8312970a", "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|26fd5eb0c1333075800cd6d0102236224c8a75c1885035e62553daba8312970a"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/hwc_smn_topic.py"}, "region": {"startLine": 259}}}]}, {"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": 49038, "scanner": "repobility-threat-engine", "fingerprint": "376970e902f5cf914b39414b2ae250e6fba26733048a2effecb4bb5fb9b17def", "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|376970e902f5cf914b39414b2ae250e6fba26733048a2effecb4bb5fb9b17def"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/bzr.py"}, "region": {"startLine": 91}}}]}, {"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": 49037, "scanner": "repobility-threat-engine", "fingerprint": "f8d5bdea9890477b36402f8ce5661af129468d1ac0fd804a55d71e49883ad570", "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|f8d5bdea9890477b36402f8ce5661af129468d1ac0fd804a55d71e49883ad570"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/module_utils/_ldap.py"}, "region": {"startLine": 101}}}]}, {"ruleId": "SEC002", "level": "warning", "message": {"text": "[SEC002] Hardcoded API Key: Hardcoded API key found in source code."}, "properties": {"repobilityId": 49032, "scanner": "repobility-threat-engine", "fingerprint": "9e6241c277ed52c733ad30ed662aa7b2215a48949407fdfa1128830d74833166", "category": "credential_exposure", "severity": "medium", "confidence": 0.3, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Low entropy value (3.3 bits) \u2014 may be placeholder or common string", "evidence": {"match": "api_key='<redacted>'", "reason": "Low entropy value (3.3 bits) \u2014 may be placeholder or common string", "rule_id": "SEC002", "scanner": "repobility-threat-engine", "confidence": 0.3, "correlation_key": "secret|token|5|api_key redacted"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/lookup/revbitspss.py"}, "region": {"startLine": 54}}}]}, {"ruleId": "SEC001", "level": "warning", "message": {"text": "[SEC001] Hardcoded Password: Hardcoded password found in source code."}, "properties": {"repobilityId": 49030, "scanner": "repobility-threat-engine", "fingerprint": "7b8c2384f024420be9a7481267ab2806cac8dace72ef5ddf8bc7caf0cdacae58", "category": "credential_exposure", "severity": "medium", "confidence": 0.3, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Low entropy value (3.4 bits) \u2014 may be placeholder or common string", "evidence": {"match": "password='<redacted>'", "reason": "Low entropy value (3.4 bits) \u2014 may be placeholder or common string", "rule_id": "SEC001", "scanner": "repobility-threat-engine", "confidence": 0.3, "correlation_key": "secret|token|4|password redacted"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/lookup/onepassword_raw.py"}, "region": {"startLine": 43}}}]}, {"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": 49029, "scanner": "repobility-threat-engine", "fingerprint": "9bb33221a9b0efe63a217fe3df487f46e650e1af66216a8ab4ec4fe2e43f7d37", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "try:\n        project = gitlab_instance.projects.get(identifier)\n    except Exception:\n        curren", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC136", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|9bb33221a9b0efe63a217fe3df487f46e650e1af66216a8ab4ec4fe2e43f7d37"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/module_utils/_gitlab.py"}, "region": {"startLine": 62}}}]}, {"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": 49028, "scanner": "repobility-threat-engine", "fingerprint": "05b19148e98bb8e991fb99367036a5bf2fe96a64336d9b1eb5565990fe28979d", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "try:\n            r = open_url(url, validate_certs=self.validate_certs)\n            data = r.read()", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC136", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|05b19148e98bb8e991fb99367036a5bf2fe96a64336d9b1eb5565990fe28979d"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/lookup/etcd.py"}, "region": {"startLine": 131}}}]}, {"ruleId": "COMP001", "level": "warning", "message": {"text": "[COMP001] High cognitive complexity: Function `v2_runner_on_ok` has cognitive complexity 16 (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: elif=1, else=4, if=7, nested_bonus=4."}, "properties": {"repobilityId": 48996, "scanner": "repobility-threat-engine", "fingerprint": "214fff9fd3587310ab27cf6e070427fd73ae89ff0c5dd2f36ec053f039287e03", "category": "quality", "severity": "medium", "confidence": 0.95, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "AST-derived cognitive complexity score = 16 (severity threshold for medium: 15+).", "evidence": {"scanner": "repobility-threat-engine", "function": "v2_runner_on_ok", "breakdown": {"if": 7, "elif": 1, "else": 4, "nested_bonus": 4}, "complexity": 16, "correlation_key": "fp|214fff9fd3587310ab27cf6e070427fd73ae89ff0c5dd2f36ec053f039287e03"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/callback/counter_enabled.py"}, "region": {"startLine": 143}}}]}, {"ruleId": "SEC007", "level": "warning", "message": {"text": "[SEC007] Unsafe Deserialization: Unsafe deserialization can execute arbitrary code."}, "properties": {"repobilityId": 48981, "scanner": "repobility-threat-engine", "fingerprint": "d2089614c74328dd70ec4524c40e2716455686778abddc0f60f19219b300efc5", "category": "deserialization", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "pickle.load(", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC007", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "code|deserialization|plugins/cache/pickle.py|60|sec007"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/cache/pickle.py"}, "region": {"startLine": 60}}}]}, {"ruleId": "AGT012", "level": "warning", "message": {"text": "Agent control bridge may listen on a network interface without visible auth"}, "properties": {"repobilityId": 48970, "scanner": "repobility-agent-runtime", "fingerprint": "fa533f517c90e91d60a6048953e65caa3c40d491d1c01625a9dcf161980bc2e6", "category": "quality", "severity": "medium", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "File combines agent-control wording with an HTTP/SSE/WebSocket listener on an all-interface host and no visible auth guard.", "evidence": {"rule_id": "AGT012", "scanner": "repobility-agent-runtime", "references": [], "correlation_key": "fp|fa533f517c90e91d60a6048953e65caa3c40d491d1c01625a9dcf161980bc2e6"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/nmcli.py"}, "region": {"startLine": 152}}}]}, {"ruleId": "MINED124", "level": "warning", "message": {"text": "requirements.txt: `jsonpatch` has no version pin"}, "properties": {"repobilityId": 48953, "scanner": "repobility-supply-chain", "fingerprint": "fc4731819cb85bd0c42dd8740044f6dd8f70b8869c7b7300f55559937a99b9af", "category": "dependency", "severity": "medium", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "unpinned-pip-requirement", "owasp": null, "cwe_ids": ["CWE-1357"], "languages": ["python"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|fc4731819cb85bd0c42dd8740044f6dd8f70b8869c7b7300f55559937a99b9af"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/requirements.txt"}, "region": {"startLine": 57}}}]}, {"ruleId": "MINED124", "level": "warning", "message": {"text": "requirements.txt: `python-jenkins < 1.8.0 ; python_version < '3.8'` has no version pin"}, "properties": {"repobilityId": 48952, "scanner": "repobility-supply-chain", "fingerprint": "ed7a4ae12793bb19b599ee9e671ec583c76fca0fe7d155f922cd5115ff9b93d2", "category": "dependency", "severity": "medium", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "unpinned-pip-requirement", "owasp": null, "cwe_ids": ["CWE-1357"], "languages": ["python"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|ed7a4ae12793bb19b599ee9e671ec583c76fca0fe7d155f922cd5115ff9b93d2"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/requirements.txt"}, "region": {"startLine": 53}}}]}, {"ruleId": "MINED124", "level": "warning", "message": {"text": "requirements.txt: `passlib[argon2]` has no version pin"}, "properties": {"repobilityId": 48951, "scanner": "repobility-supply-chain", "fingerprint": "c8b5ef18b10b577fdf1cf7d9117155d751f33cf26c764d3ddda0d98a900dd3ed", "category": "dependency", "severity": "medium", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "unpinned-pip-requirement", "owasp": null, "cwe_ids": ["CWE-1357"], "languages": ["python"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|c8b5ef18b10b577fdf1cf7d9117155d751f33cf26c764d3ddda0d98a900dd3ed"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/requirements.txt"}, "region": {"startLine": 47}}}]}, {"ruleId": "MINED124", "level": "warning", "message": {"text": "requirements.txt: `dnspython` has no version pin"}, "properties": {"repobilityId": 48950, "scanner": "repobility-supply-chain", "fingerprint": "5cc474b7febee16ab3cdca2f5d30d20dcb1044fe7028bf7f3d82e480bb914f18", "category": "dependency", "severity": "medium", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "unpinned-pip-requirement", "owasp": null, "cwe_ids": ["CWE-1357"], "languages": ["python"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|5cc474b7febee16ab3cdca2f5d30d20dcb1044fe7028bf7f3d82e480bb914f18"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/requirements.txt"}, "region": {"startLine": 34}}}]}, {"ruleId": "MINED124", "level": "warning", "message": {"text": "requirements.txt: `semantic_version` has no version pin"}, "properties": {"repobilityId": 48949, "scanner": "repobility-supply-chain", "fingerprint": "c58144f25c9250e01b3da285995b88293dcfbaacd10399fd5ac0135283904936", "category": "dependency", "severity": "medium", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "unpinned-pip-requirement", "owasp": null, "cwe_ids": ["CWE-1357"], "languages": ["python"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|c58144f25c9250e01b3da285995b88293dcfbaacd10399fd5ac0135283904936"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/requirements.txt"}, "region": {"startLine": 25}}}]}, {"ruleId": "MINED124", "level": "warning", "message": {"text": "requirements.txt: `lxml` has no version pin"}, "properties": {"repobilityId": 48948, "scanner": "repobility-supply-chain", "fingerprint": "3301c49f383779bac33aae47436cdc2403707f36d01340f2aa3078f818f98173", "category": "dependency", "severity": "medium", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "unpinned-pip-requirement", "owasp": null, "cwe_ids": ["CWE-1357"], "languages": ["python"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|3301c49f383779bac33aae47436cdc2403707f36d01340f2aa3078f818f98173"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/requirements.txt"}, "region": {"startLine": 24}}}]}, {"ruleId": "MINED124", "level": "warning", "message": {"text": "requirements.txt: `pynacl` has no version pin"}, "properties": {"repobilityId": 48947, "scanner": "repobility-supply-chain", "fingerprint": "e83888e30cd8fefd331101388110bc4894eab4e23f60fbad96d6d87e1350c157", "category": "dependency", "severity": "medium", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "unpinned-pip-requirement", "owasp": null, "cwe_ids": ["CWE-1357"], "languages": ["python"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|e83888e30cd8fefd331101388110bc4894eab4e23f60fbad96d6d87e1350c157"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/requirements.txt"}, "region": {"startLine": 21}}}]}, {"ruleId": "MINED124", "level": "warning", "message": {"text": "requirements.txt: `httmock` has no version pin"}, "properties": {"repobilityId": 48946, "scanner": "repobility-supply-chain", "fingerprint": "f061dc1e591996b3b57b8866fd1a228e549ff76d93028dd21f81703f0b1dc155", "category": "dependency", "severity": "medium", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "unpinned-pip-requirement", "owasp": null, "cwe_ids": ["CWE-1357"], "languages": ["python"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|f061dc1e591996b3b57b8866fd1a228e549ff76d93028dd21f81703f0b1dc155"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/requirements.txt"}, "region": {"startLine": 20}}}]}, {"ruleId": "MINED124", "level": "warning", "message": {"text": "requirements.txt: `PyGithub` has no version pin"}, "properties": {"repobilityId": 48945, "scanner": "repobility-supply-chain", "fingerprint": "897ad5b8db14456f3c553869f33691b473b337cc5dec254f4a907aac64887446", "category": "dependency", "severity": "medium", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "unpinned-pip-requirement", "owasp": null, "cwe_ids": ["CWE-1357"], "languages": ["python"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|897ad5b8db14456f3c553869f33691b473b337cc5dec254f4a907aac64887446"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/requirements.txt"}, "region": {"startLine": 19}}}]}, {"ruleId": "MINED124", "level": "warning", "message": {"text": "requirements.txt: `python-gitlab` has no version pin"}, "properties": {"repobilityId": 48944, "scanner": "repobility-supply-chain", "fingerprint": "6b0cb5dc5c99bb5115c6627f4cce35df6b8480b759bd03c6aceeb38404a11685", "category": "dependency", "severity": "medium", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "unpinned-pip-requirement", "owasp": null, "cwe_ids": ["CWE-1357"], "languages": ["python"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|6b0cb5dc5c99bb5115c6627f4cce35df6b8480b759bd03c6aceeb38404a11685"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/requirements.txt"}, "region": {"startLine": 18}}}]}, {"ruleId": "MINED124", "level": "warning", "message": {"text": "requirements.txt: `linode_api4  # APIv4` has no version pin"}, "properties": {"repobilityId": 48943, "scanner": "repobility-supply-chain", "fingerprint": "1f44ed55e8bf524e3c9f1b9113a65a6650e7845e356c66aa0d2923d78d32e051", "category": "dependency", "severity": "medium", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "unpinned-pip-requirement", "owasp": null, "cwe_ids": ["CWE-1357"], "languages": ["python"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|1f44ed55e8bf524e3c9f1b9113a65a6650e7845e356c66aa0d2923d78d32e051"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/requirements.txt"}, "region": {"startLine": 15}}}]}, {"ruleId": "MINED124", "level": "warning", "message": {"text": "requirements.txt: `linode-python # APIv3` has no version pin"}, "properties": {"repobilityId": 48942, "scanner": "repobility-supply-chain", "fingerprint": "68eb8750d6c43c88213e2310f252fe5305b2102a8731d8b15b4823b155e1284e", "category": "dependency", "severity": "medium", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "unpinned-pip-requirement", "owasp": null, "cwe_ids": ["CWE-1357"], "languages": ["python"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|68eb8750d6c43c88213e2310f252fe5305b2102a8731d8b15b4823b155e1284e"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/requirements.txt"}, "region": {"startLine": 14}}}]}, {"ruleId": "MINED124", "level": "warning", "message": {"text": "requirements.txt: `redis` has no version pin"}, "properties": {"repobilityId": 48941, "scanner": "repobility-supply-chain", "fingerprint": "c39443146f60ede76b2da73d48f5d256830445d6686784cef4fcf7f34036db7d", "category": "dependency", "severity": "medium", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "unpinned-pip-requirement", "owasp": null, "cwe_ids": ["CWE-1357"], "languages": ["python"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|c39443146f60ede76b2da73d48f5d256830445d6686784cef4fcf7f34036db7d"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/requirements.txt"}, "region": {"startLine": 10}}}]}, {"ruleId": "MINED124", "level": "warning", "message": {"text": "requirements.txt: `andebox` has no version pin"}, "properties": {"repobilityId": 48940, "scanner": "repobility-supply-chain", "fingerprint": "812b30ce9ca035d613282797e1d2d35c49ef7b59bdd0a7e927f7d36261578a19", "category": "dependency", "severity": "medium", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "unpinned-pip-requirement", "owasp": null, "cwe_ids": ["CWE-1357"], "languages": ["python"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|812b30ce9ca035d613282797e1d2d35c49ef7b59bdd0a7e927f7d36261578a19"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".devcontainer/requirements-dev.txt"}, "region": {"startLine": 10}}}]}, {"ruleId": "MINED124", "level": "warning", "message": {"text": "requirements.txt: `ansible-core` has no version pin"}, "properties": {"repobilityId": 48939, "scanner": "repobility-supply-chain", "fingerprint": "962b1418a4c446fd6df503ac63c227ce806b0c9901174deee976304031cf52dd", "category": "dependency", "severity": "medium", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "unpinned-pip-requirement", "owasp": null, "cwe_ids": ["CWE-1357"], "languages": ["python"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|962b1418a4c446fd6df503ac63c227ce806b0c9901174deee976304031cf52dd"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".devcontainer/requirements-dev.txt"}, "region": {"startLine": 9}}}]}, {"ruleId": "MINED124", "level": "warning", "message": {"text": "requirements.txt: `pre-commit` has no version pin"}, "properties": {"repobilityId": 48938, "scanner": "repobility-supply-chain", "fingerprint": "cc769085ce9b355b5663fecd37475fd8d10125de0be115583593aebab0fd234e", "category": "dependency", "severity": "medium", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "unpinned-pip-requirement", "owasp": null, "cwe_ids": ["CWE-1357"], "languages": ["python"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|cc769085ce9b355b5663fecd37475fd8d10125de0be115583593aebab0fd234e"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".devcontainer/requirements-dev.txt"}, "region": {"startLine": 8}}}]}, {"ruleId": "MINED124", "level": "warning", "message": {"text": "requirements.txt: `antsibull-nox` has no version pin"}, "properties": {"repobilityId": 48937, "scanner": "repobility-supply-chain", "fingerprint": "fa7a26ce070ff1014579f88d0f3fc6377e61588b760d74b4fa9a938eb6d97b63", "category": "dependency", "severity": "medium", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "unpinned-pip-requirement", "owasp": null, "cwe_ids": ["CWE-1357"], "languages": ["python"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|fa7a26ce070ff1014579f88d0f3fc6377e61588b760d74b4fa9a938eb6d97b63"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".devcontainer/requirements-dev.txt"}, "region": {"startLine": 7}}}]}, {"ruleId": "MINED124", "level": "warning", "message": {"text": "requirements.txt: `ruff` has no version pin"}, "properties": {"repobilityId": 48936, "scanner": "repobility-supply-chain", "fingerprint": "c6511ffcf57954f769a65a3358a50f1d644016432d163b6ad63af9e20d35240a", "category": "dependency", "severity": "medium", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "unpinned-pip-requirement", "owasp": null, "cwe_ids": ["CWE-1357"], "languages": ["python"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|c6511ffcf57954f769a65a3358a50f1d644016432d163b6ad63af9e20d35240a"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".devcontainer/requirements-dev.txt"}, "region": {"startLine": 6}}}]}, {"ruleId": "MINED124", "level": "warning", "message": {"text": "requirements.txt: `nox` has no version pin"}, "properties": {"repobilityId": 48935, "scanner": "repobility-supply-chain", "fingerprint": "bf4946193325b33dc128e55468f1195f046e7c2fccff8ce371ce8d4341a5e5a1", "category": "dependency", "severity": "medium", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "unpinned-pip-requirement", "owasp": null, "cwe_ids": ["CWE-1357"], "languages": ["python"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|bf4946193325b33dc128e55468f1195f046e7c2fccff8ce371ce8d4341a5e5a1"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".devcontainer/requirements-dev.txt"}, "region": {"startLine": 5}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 48898, "scanner": "repobility-ast-engine", "fingerprint": "01a0f24c5809bf2eeda201acb36806d51e0913e0444294f77a55302bcbbeb9c9", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|01a0f24c5809bf2eeda201acb36806d51e0913e0444294f77a55302bcbbeb9c9"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/mail.py"}, "region": {"startLine": 409}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 48897, "scanner": "repobility-ast-engine", "fingerprint": "818f5c188ae0c8992f937da64a08a7002643a340b2462ded9d06f2f6165a05a2", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|818f5c188ae0c8992f937da64a08a7002643a340b2462ded9d06f2f6165a05a2"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/capabilities.py"}, "region": {"startLine": 162}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 48896, "scanner": "repobility-ast-engine", "fingerprint": "ab7f7b87665b52bc09b824e2014d4b1828e8088d6c5e32a156ebb4b550eff300", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|ab7f7b87665b52bc09b824e2014d4b1828e8088d6c5e32a156ebb4b550eff300"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/utm_proxy_frontend_info.py"}, "region": {"startLine": 138}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 48895, "scanner": "repobility-ast-engine", "fingerprint": "cdf6f5428d3d348366d62a2d6766dc2544b4c80dc0bf91cec1e31594f25d2baa", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|cdf6f5428d3d348366d62a2d6766dc2544b4c80dc0bf91cec1e31594f25d2baa"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/datadog_monitor.py"}, "region": {"startLine": 498}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 48894, "scanner": "repobility-ast-engine", "fingerprint": "c9a60b06ef10413473c7423b99319af2023e104af21d6a090e40b3a7e413bfd9", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|c9a60b06ef10413473c7423b99319af2023e104af21d6a090e40b3a7e413bfd9"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/datadog_monitor.py"}, "region": {"startLine": 485}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 48893, "scanner": "repobility-ast-engine", "fingerprint": "d66befaddb9d794b2245969d70d4fa1d23f5a19aff88e29be4b2b8a41cdcfa01", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|d66befaddb9d794b2245969d70d4fa1d23f5a19aff88e29be4b2b8a41cdcfa01"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/datadog_monitor.py"}, "region": {"startLine": 462}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 48892, "scanner": "repobility-ast-engine", "fingerprint": "510fe3f32bef5c5eef57cfc5d6ec86cec47fd459ed444e36ebf578af5eb82d91", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|510fe3f32bef5c5eef57cfc5d6ec86cec47fd459ed444e36ebf578af5eb82d91"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/datadog_monitor.py"}, "region": {"startLine": 417}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 48891, "scanner": "repobility-ast-engine", "fingerprint": "517df9edbeb8813a318cf41e2cdf9a761dc0f6bfd7faecc250402a105222b882", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|517df9edbeb8813a318cf41e2cdf9a761dc0f6bfd7faecc250402a105222b882"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/datadog_monitor.py"}, "region": {"startLine": 384}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 48890, "scanner": "repobility-ast-engine", "fingerprint": "cb0671bf6f578900dd04d8c3eff71dd0aca2196f33e9f753bc86d31a8f42391d", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|cb0671bf6f578900dd04d8c3eff71dd0aca2196f33e9f753bc86d31a8f42391d"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/datadog_monitor.py"}, "region": {"startLine": 249}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 48889, "scanner": "repobility-ast-engine", "fingerprint": "cd082bc8dc917d34ee69e831e021eea4e5c82e08774e852085fee65558ff94e7", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|cd082bc8dc917d34ee69e831e021eea4e5c82e08774e852085fee65558ff94e7"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/utm_network_interface_address.py"}, "region": {"startLine": 129}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 48888, "scanner": "repobility-ast-engine", "fingerprint": "25feefa813bdabe4a3bc09ad7157eb89b7fb2d64f128a753025b01c05238296a", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|25feefa813bdabe4a3bc09ad7157eb89b7fb2d64f128a753025b01c05238296a"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/ipa_hbacrule.py"}, "region": {"startLine": 432}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 48887, "scanner": "repobility-ast-engine", "fingerprint": "9d825f35dfcd0d0e70b5dfd7010f3bb7d65367a3b8626bd8dde02a7f0b18e418", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|9d825f35dfcd0d0e70b5dfd7010f3bb7d65367a3b8626bd8dde02a7f0b18e418"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/runit.py"}, "region": {"startLine": 204}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 48886, "scanner": "repobility-ast-engine", "fingerprint": "385dfbf297115cdde82ec205727c801bbb1461b4c5c3ad1c8c29e6d0c6bee6c0", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|385dfbf297115cdde82ec205727c801bbb1461b4c5c3ad1c8c29e6d0c6bee6c0"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/btrfs_subvolume.py"}, "region": {"startLine": 273}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 48885, "scanner": "repobility-ast-engine", "fingerprint": "070770388e60212b1bdd2f982adc663e51d5e5f4aaf372b6da1441391a4e1416", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|070770388e60212b1bdd2f982adc663e51d5e5f4aaf372b6da1441391a4e1416"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/consul.py"}, "region": {"startLine": 625}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 48884, "scanner": "repobility-ast-engine", "fingerprint": "1bdb227711696cdf030d7ba1f52a30c9c879952ff1b11e7afc135a9488e53a25", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|1bdb227711696cdf030d7ba1f52a30c9c879952ff1b11e7afc135a9488e53a25"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/manageiq_group.py"}, "region": {"startLine": 484}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 48883, "scanner": "repobility-ast-engine", "fingerprint": "a5003368506e60ad439c381be7993005f6f77882a6b444f470989a93e76684dc", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|a5003368506e60ad439c381be7993005f6f77882a6b444f470989a93e76684dc"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/manageiq_group.py"}, "region": {"startLine": 394}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 48882, "scanner": "repobility-ast-engine", "fingerprint": "72907a31210f2b02521bf33778680ade33adfb63b9878e233d958de29cb3f13e", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|72907a31210f2b02521bf33778680ade33adfb63b9878e233d958de29cb3f13e"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/manageiq_group.py"}, "region": {"startLine": 315}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 48881, "scanner": "repobility-ast-engine", "fingerprint": "c6eafc2652b530ef34890371b4a8fee3b5694dc0d01e0a5dc2d226d0358c2ae1", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|c6eafc2652b530ef34890371b4a8fee3b5694dc0d01e0a5dc2d226d0358c2ae1"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/gitlab_project_approvals.py"}, "region": {"startLine": 146}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 48880, "scanner": "repobility-ast-engine", "fingerprint": "97ca989b62054c5f88cecd7ba63aab97612ce8e4644da96087dcb9b8d64f4b09", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|97ca989b62054c5f88cecd7ba63aab97612ce8e4644da96087dcb9b8d64f4b09"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/gitlab_project_approvals.py"}, "region": {"startLine": 131}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 48879, "scanner": "repobility-ast-engine", "fingerprint": "6323d16133e1a040d5533a4c6bb5c8606bbfc249fb0e4b1047626857fbfb82a5", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|6323d16133e1a040d5533a4c6bb5c8606bbfc249fb0e4b1047626857fbfb82a5"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/sanity/extra/botmeta.py"}, "region": {"startLine": 149}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 48878, "scanner": "repobility-ast-engine", "fingerprint": "d82fcd0ccc2cd4cd0ff1bfcc2730ac85ef8490ba7fdb4d10a66eb4c530d4a10a", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|d82fcd0ccc2cd4cd0ff1bfcc2730ac85ef8490ba7fdb4d10a66eb4c530d4a10a"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/sanity/extra/botmeta.py"}, "region": {"startLine": 88}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 48876, "scanner": "repobility-ast-engine", "fingerprint": "1c64ce15fb137255057bb43b9b113affb4f1d71702447446bec39edb585c9cf5", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|1c64ce15fb137255057bb43b9b113affb4f1d71702447446bec39edb585c9cf5"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/module_utils/test__cmd_runner.py"}, "region": {"startLine": 145}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 48874, "scanner": "repobility-ast-engine", "fingerprint": "a261c9b1980ca7b542fc906efb4d8ee9aa7c654de3da1323a54544adb0bac13a", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|a261c9b1980ca7b542fc906efb4d8ee9aa7c654de3da1323a54544adb0bac13a"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_jenkins_build_info.py"}, "region": {"startLine": 41}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 48848, "scanner": "repobility-ast-engine", "fingerprint": "c93c1edbc8a7b4e17efd13402bbca7e67ee617aa4a46d8d1061335419cad071f", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|c93c1edbc8a7b4e17efd13402bbca7e67ee617aa4a46d8d1061335419cad071f"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_jenkins_build.py"}, "region": {"startLine": 40}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 48834, "scanner": "repobility-ast-engine", "fingerprint": "da49e4b6e7eeda3a17db0c069a38bc1ad15973e3b3945d8b3d8f8acdaaaef3f1", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|da49e4b6e7eeda3a17db0c069a38bc1ad15973e3b3945d8b3d8f8acdaaaef3f1"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/cmd_runner/library/cmd_echo.py"}, "region": {"startLine": 58}}}]}, {"ruleId": "WEB003", "level": "warning", "message": {"text": "Public web service has no security.txt"}, "properties": {"repobilityId": 6767, "scanner": "repobility-web-presence", "fingerprint": "5cd26606c5a53c9f403ff7a92a6917c19cf440a23ce03e2b90e8c493312ef8cd", "category": "quality", "severity": "medium", "confidence": 0.78, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "Repository looks like a public web app/API but no security.txt file or route was discovered.", "evidence": {"rule_id": "WEB003", "scanner": "repobility-web-presence", "references": ["https://www.rfc-editor.org/rfc/rfc9116", "https://github.com/Lissy93/web-check"], "correlation_key": "fp|5cd26606c5a53c9f403ff7a92a6917c19cf440a23ce03e2b90e8c493312ef8cd"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".well-known/security.txt"}, "region": {"startLine": 1}}}]}, {"ruleId": "DKC007", "level": "warning", "message": {"text": "Compose service contains a literal secret environment value"}, "properties": {"repobilityId": 6765, "scanner": "repobility-docker", "fingerprint": "e896d9895347b81ee145a79f7c7b478fd66d281625adbb8dc5436e004f0a4acb", "category": "docker", "severity": "medium", "confidence": 0.56, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Environment variable name is secret-like and value is a committed literal, but this Compose file is under a test/example/local path and needs human confirmation before treating it as production exposure.", "evidence": {"rule_id": "DKC007", "scanner": "repobility-docker", "service": "keycloak", "variable": "DB_PASSWORD", "references": ["https://docs.docker.com/compose/how-tos/environment-variables/best-practices/", "https://docs.docker.com/reference/compose-file/secrets/"], "path_context": "reference_or_local", "correlation_key": "fp|e896d9895347b81ee145a79f7c7b478fd66d281625adbb8dc5436e004f0a4acb", "compose_secrets_declared": false}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/keycloak_clientsecret_regenerate/docker-compose.yml"}, "region": {"startLine": 16}}}]}, {"ruleId": "DKC015", "level": "warning", "message": {"text": "Database service has no healthcheck"}, "properties": {"repobilityId": 6763, "scanner": "repobility-docker", "fingerprint": "ff02e47dc9a0844242fb09db78bfb6855811d4e85b77e3d3d0bcac76ada2d6fd", "category": "docker", "severity": "medium", "confidence": 0.88, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Database-like service has no Compose healthcheck.", "evidence": {"rule_id": "DKC015", "scanner": "repobility-docker", "service": "postgres", "references": ["https://docs.docker.com/compose/how-tos/startup-order/"], "correlation_key": "fp|ff02e47dc9a0844242fb09db78bfb6855811d4e85b77e3d3d0bcac76ada2d6fd"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/keycloak_clientsecret_regenerate/docker-compose.yml"}, "region": {"startLine": 8}}}]}, {"ruleId": "DKC007", "level": "warning", "message": {"text": "Compose service contains a literal secret environment value"}, "properties": {"repobilityId": 6761, "scanner": "repobility-docker", "fingerprint": "04f8eef5eb6e5af99158c5ef9886c63a6c98c32a99a17da0fdbf6075dfe92a2d", "category": "docker", "severity": "medium", "confidence": 0.56, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Environment variable name is secret-like and value is a committed literal, but this Compose file is under a test/example/local path and needs human confirmation before treating it as production exposure.", "evidence": {"rule_id": "DKC007", "scanner": "repobility-docker", "service": "postgres", "variable": "POSTGRES_PASSWORD", "references": ["https://docs.docker.com/compose/how-tos/environment-variables/best-practices/", "https://docs.docker.com/reference/compose-file/secrets/"], "path_context": "reference_or_local", "correlation_key": "fp|04f8eef5eb6e5af99158c5ef9886c63a6c98c32a99a17da0fdbf6075dfe92a2d", "compose_secrets_declared": false}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/keycloak_clientsecret_regenerate/docker-compose.yml"}, "region": {"startLine": 8}}}]}, {"ruleId": "DKC007", "level": "warning", "message": {"text": "Compose service contains a literal secret environment value"}, "properties": {"repobilityId": 6759, "scanner": "repobility-docker", "fingerprint": "7def3c4a342323e5d68cdde1cdffecc7b7606a2580bbec52e71d0a7c1a022666", "category": "docker", "severity": "medium", "confidence": 0.56, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Environment variable name is secret-like and value is a committed literal, but this Compose file is under a test/example/local path and needs human confirmation before treating it as production exposure.", "evidence": {"rule_id": "DKC007", "scanner": "repobility-docker", "service": "keycloak", "variable": "DB_PASSWORD", "references": ["https://docs.docker.com/compose/how-tos/environment-variables/best-practices/", "https://docs.docker.com/reference/compose-file/secrets/"], "path_context": "reference_or_local", "correlation_key": "fp|7def3c4a342323e5d68cdde1cdffecc7b7606a2580bbec52e71d0a7c1a022666", "compose_secrets_declared": false}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/keycloak_clientsecret_info/docker-compose.yml"}, "region": {"startLine": 16}}}]}, {"ruleId": "DKC015", "level": "warning", "message": {"text": "Database service has no healthcheck"}, "properties": {"repobilityId": 6757, "scanner": "repobility-docker", "fingerprint": "ce01a9edfd102915eda3c6c48ae254017ed9ac0bab1e53d0d012dd241397ca23", "category": "docker", "severity": "medium", "confidence": 0.88, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Database-like service has no Compose healthcheck.", "evidence": {"rule_id": "DKC015", "scanner": "repobility-docker", "service": "postgres", "references": ["https://docs.docker.com/compose/how-tos/startup-order/"], "correlation_key": "fp|ce01a9edfd102915eda3c6c48ae254017ed9ac0bab1e53d0d012dd241397ca23"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/keycloak_clientsecret_info/docker-compose.yml"}, "region": {"startLine": 8}}}]}, {"ruleId": "DKC007", "level": "warning", "message": {"text": "Compose service contains a literal secret environment value"}, "properties": {"repobilityId": 6755, "scanner": "repobility-docker", "fingerprint": "4da04c65093a174acc0bd3fd0f8ed0c7138cf4cf987b0dc787026076f34978b8", "category": "docker", "severity": "medium", "confidence": 0.56, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Environment variable name is secret-like and value is a committed literal, but this Compose file is under a test/example/local path and needs human confirmation before treating it as production exposure.", "evidence": {"rule_id": "DKC007", "scanner": "repobility-docker", "service": "postgres", "variable": "POSTGRES_PASSWORD", "references": ["https://docs.docker.com/compose/how-tos/environment-variables/best-practices/", "https://docs.docker.com/reference/compose-file/secrets/"], "path_context": "reference_or_local", "correlation_key": "fp|4da04c65093a174acc0bd3fd0f8ed0c7138cf4cf987b0dc787026076f34978b8", "compose_secrets_declared": false}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/keycloak_clientsecret_info/docker-compose.yml"}, "region": {"startLine": 8}}}]}, {"ruleId": "DKC007", "level": "warning", "message": {"text": "Compose service contains a literal secret environment value"}, "properties": {"repobilityId": 6753, "scanner": "repobility-docker", "fingerprint": "37b882979af02c06709ac6660281f32c966119a38b7e7d6121e74c1655886ab2", "category": "docker", "severity": "medium", "confidence": 0.56, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Environment variable name is secret-like and value is a committed literal, but this Compose file is under a test/example/local path and needs human confirmation before treating it as production exposure.", "evidence": {"rule_id": "DKC007", "scanner": "repobility-docker", "service": "keycloak", "variable": "KEYCLOAK_ADMIN_PASSWORD", "references": ["https://docs.docker.com/compose/how-tos/environment-variables/best-practices/", "https://docs.docker.com/reference/compose-file/secrets/"], "path_context": "reference_or_local", "correlation_key": "fp|37b882979af02c06709ac6660281f32c966119a38b7e7d6121e74c1655886ab2", "compose_secrets_declared": false}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/keycloak_clientscope_type/docker-compose.yml"}, "region": {"startLine": 8}}}]}, {"ruleId": "DKC007", "level": "warning", "message": {"text": "Compose service contains a literal secret environment value"}, "properties": {"repobilityId": 6750, "scanner": "repobility-docker", "fingerprint": "bf1fc2e4b4aafdf7e3e969c0823dcbae128dc2dd39c6169480ea8a429047f309", "category": "docker", "severity": "medium", "confidence": 0.56, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Environment variable name is secret-like and value is a committed literal, but this Compose file is under a test/example/local path and needs human confirmation before treating it as production exposure.", "evidence": {"rule_id": "DKC007", "scanner": "repobility-docker", "service": "jenkins", "variable": "JENKINS_PASSWORD", "references": ["https://docs.docker.com/compose/how-tos/environment-variables/best-practices/", "https://docs.docker.com/reference/compose-file/secrets/"], "path_context": "reference_or_local", "correlation_key": "fp|bf1fc2e4b4aafdf7e3e969c0823dcbae128dc2dd39c6169480ea8a429047f309", "compose_secrets_declared": false}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/jenkins_credential/docker-compose.yml"}, "region": {"startLine": 7}}}]}, {"ruleId": "DKR002", "level": "warning", "message": {"text": "Compose service `jenkins` image has no explicit tag"}, "properties": {"repobilityId": 6748, "scanner": "repobility-docker", "fingerprint": "56b2d8936958484e282df6f4297189579fd1d1e650d463aa25806a601d051342", "category": "docker", "severity": "medium", "confidence": 0.9, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Image reference has no tag or digest.", "evidence": {"image": "bitnami/jenkins", "rule_id": "DKR002", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://docs.docker.com/scout/policy/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|56b2d8936958484e282df6f4297189579fd1d1e650d463aa25806a601d051342"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/jenkins_credential/docker-compose.yml"}, "region": {"startLine": 7}}}]}, {"ruleId": "SEC014", "level": "warning", "message": {"text": "[SEC014] SSL Verification Disabled: SSL certificate verification is disabled, allowing man-in-the-middle attacks."}, "properties": {"repobilityId": 6747, "scanner": "repobility-threat-engine", "fingerprint": "ece5a68e4815ad8a37dea3158e75817adaa3311e5416934c28a2effb52643298", "category": "crypto", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "CERT_NONE", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC014", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "code|crypto|plugins/modules/irc.py|252|sec014"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/irc.py"}, "region": {"startLine": 252}}}]}, {"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": 6742, "scanner": "repobility-threat-engine", "fingerprint": "18ce1c565e144ca9a2f1fe433d93f8e55d3410e3f6de05c04a1215b665c407a3", "category": "error_handling", "severity": "medium", "confidence": 1.0, "triageState": "fixed", "verdict": "confirmed", "isResolved": true, "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|18ce1c565e144ca9a2f1fe433d93f8e55d3410e3f6de05c04a1215b665c407a3"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/hwc_network_vpc.py"}, "region": {"startLine": 293}}}]}, {"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": 6741, "scanner": "repobility-threat-engine", "fingerprint": "dbbbcf836ec92f907afb2a12a45a04e907e3531d9494486d82cff2a8540c817d", "category": "error_handling", "severity": "medium", "confidence": 1.0, "triageState": "fixed", "verdict": "confirmed", "isResolved": true, "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|dbbbcf836ec92f907afb2a12a45a04e907e3531d9494486d82cff2a8540c817d"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/mail.py"}, "region": {"startLine": 296}}}]}, {"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": 6740, "scanner": "repobility-threat-engine", "fingerprint": "e7c61f5dcea42368178194a84df35149b2a8f57a90b0d518f9ce8ec30c255438", "category": "error_handling", "severity": "medium", "confidence": 1.0, "triageState": "fixed", "verdict": "confirmed", "isResolved": true, "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|e7c61f5dcea42368178194a84df35149b2a8f57a90b0d518f9ce8ec30c255438"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/consul.py"}, "region": {"startLine": 560}}}]}, {"ruleId": "SEC007", "level": "warning", "message": {"text": "[SEC007] Unsafe Deserialization: Unsafe deserialization can execute arbitrary code."}, "properties": {"repobilityId": 6735, "scanner": "repobility-threat-engine", "fingerprint": "2f092da11e7a4d87fe9c1a48cd0479d12c77240300b1823adec13a6d91aa2c39", "category": "deserialization", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "yaml.load(", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC007", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "code|deserialization|token|17|sec007"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/docsite/reformat-yaml.py"}, "region": {"startLine": 17}}}]}, {"ruleId": "AIC003", "level": "warning", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 6732, "scanner": "repobility-ai-code-hygiene", "fingerprint": "11a2ad1ebcc47dac8cc7484c903a529ff8ad518def181164bfcfbf2177bb9cf4", "category": "quality", "severity": "medium", "confidence": 0.86, "triageState": "fixed", "verdict": "confirmed", "isResolved": true, "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": "plugins/lookup/onepassword_doc.py", "duplicate_line": 43, "correlation_key": "fp|11a2ad1ebcc47dac8cc7484c903a529ff8ad518def181164bfcfbf2177bb9cf4"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/lookup/onepassword_raw.py"}, "region": {"startLine": 47}}}]}, {"ruleId": "AIC003", "level": "warning", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 6731, "scanner": "repobility-ai-code-hygiene", "fingerprint": "74cbcbdebe0dcc9adc05eba5637a765c70759b1aaa9970c0dd6792c4e10166fc", "category": "quality", "severity": "medium", "confidence": 0.86, "triageState": "fixed", "verdict": "confirmed", "isResolved": true, "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": "plugins/lookup/onepassword.py", "duplicate_line": 588, "correlation_key": "fp|74cbcbdebe0dcc9adc05eba5637a765c70759b1aaa9970c0dd6792c4e10166fc"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/lookup/onepassword_doc.py"}, "region": {"startLine": 49}}}]}, {"ruleId": "AIC003", "level": "warning", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 6725, "scanner": "repobility-ai-code-hygiene", "fingerprint": "7143868d62af0643ffc3ec1c6fbeccdbabba5c61ab25142e1b14caf4074d1515", "category": "quality", "severity": "medium", "confidence": 0.86, "triageState": "fixed", "verdict": "confirmed", "isResolved": true, "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": "plugins/callback/elastic.py", "duplicate_line": 101, "correlation_key": "fp|7143868d62af0643ffc3ec1c6fbeccdbabba5c61ab25142e1b14caf4074d1515"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/callback/opentelemetry.py"}, "region": {"startLine": 167}}}]}, {"ruleId": "AIC004", "level": "warning", "message": {"text": "Suspicious implementation file appears unreferenced"}, "properties": {"repobilityId": 6721, "scanner": "repobility-ai-code-hygiene", "fingerprint": "19edd92494b5356a4ed3fa86594112b9ab9681367896b17506d472e87f632112", "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": "backup", "rule_id": "AIC004", "scanner": "repobility-ai-code-hygiene", "references": ["https://knip.dev/", "https://github.com/jendrikseipp/vulture"], "correlation_key": "fp|19edd92494b5356a4ed3fa86594112b9ab9681367896b17506d472e87f632112"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/scaleway_database_backup.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC001", "level": "warning", "message": {"text": "Parallel implementation file sits beside a canonical file"}, "properties": {"repobilityId": 6719, "scanner": "repobility-ai-code-hygiene", "fingerprint": "3e2f77e90f0a12865f779272279dd68ee04cd23beb72614c30ab31a7e888b547", "category": "quality", "severity": "medium", "confidence": 0.82, "triageState": "fixed", "verdict": "likely", "isResolved": true, "reason": "Source filename has a patch-style suffix and a same-directory canonical sibling exists.", "evidence": {"suffix": "v4", "rule_id": "AIC001", "scanner": "repobility-ai-code-hygiene", "references": ["https://arxiv.org/abs/2601.15195", "https://knip.dev/"], "canonical_file": "plugins/modules/linode.py", "correlation_key": "fp|3e2f77e90f0a12865f779272279dd68ee04cd23beb72614c30ab31a7e888b547"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/linode_v4.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC001", "level": "warning", "message": {"text": "Parallel implementation file sits beside a canonical file"}, "properties": {"repobilityId": 6718, "scanner": "repobility-ai-code-hygiene", "fingerprint": "f8b634f94d6c104017253d07bc2ceaa1dec3d732ea57f226ec90176c3d3bbdb8", "category": "quality", "severity": "medium", "confidence": 0.82, "triageState": "fixed", "verdict": "likely", "isResolved": true, "reason": "Source filename has a patch-style suffix and a same-directory canonical sibling exists.", "evidence": {"suffix": "v2", "rule_id": "AIC001", "scanner": "repobility-ai-code-hygiene", "references": ["https://arxiv.org/abs/2601.15195", "https://knip.dev/"], "canonical_file": "plugins/modules/keycloak_authentication.py", "correlation_key": "fp|f8b634f94d6c104017253d07bc2ceaa1dec3d732ea57f226ec90176c3d3bbdb8"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/keycloak_authentication_v2.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "SEC124", "level": "note", "message": {"text": "[SEC124] TOCTOU file access (os.access then open): Check-then-use file pattern (access/exists then open) lets an attacker swap the file between check and use (symlink attack). `mktemp` is deprecated for the same reason."}, "properties": {"repobilityId": 49043, "scanner": "repobility-threat-engine", "fingerprint": "80a4c43d955feed201784d8b17e6906fd50f54500c52b9a38d51b7301b4e6268", "category": "race_condition", "severity": "low", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "os.path.exists(rescan_path):\n        try:\n            with open(rescan_path, \"w", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC124", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|80a4c43d955feed201784d8b17e6906fd50f54500c52b9a38d51b7301b4e6268"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/lvm_pv.py"}, "region": {"startLine": 101}}}]}, {"ruleId": "SEC124", "level": "note", "message": {"text": "[SEC124] TOCTOU file access (os.access then open): Check-then-use file pattern (access/exists then open) lets an attacker swap the file between check and use (symlink attack). `mktemp` is deprecated for the same reason."}, "properties": {"repobilityId": 49042, "scanner": "repobility-threat-engine", "fingerprint": "cb013b386a2063a9af56289dc91d7731349547a12712fc1f5d8b9d0e9dd44a16", "category": "race_condition", "severity": "low", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "os.path.isfile(file_path):\n        os.remove(", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC124", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|cb013b386a2063a9af56289dc91d7731349547a12712fc1f5d8b9d0e9dd44a16"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/gunicorn.py"}, "region": {"startLine": 120}}}]}, {"ruleId": "SEC124", "level": "note", "message": {"text": "[SEC124] TOCTOU file access (os.access then open): Check-then-use file pattern (access/exists then open) lets an attacker swap the file between check and use (symlink attack). `mktemp` is deprecated for the same reason."}, "properties": {"repobilityId": 49041, "scanner": "repobility-threat-engine", "fingerprint": "45c71042da2fdcdbd618cca2f1c14509c6a7b100b86d5e2f76cab32836100563", "category": "race_condition", "severity": "low", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "os.path.exists(self.ssh_config_file):\n            if not os.path.exists(os.path.dirname(self.ssh_con", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC124", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|45c71042da2fdcdbd618cca2f1c14509c6a7b100b86d5e2f76cab32836100563"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/module_utils/_stormssh.py"}, "region": {"startLine": 113}}}]}, {"ruleId": "COMP001", "level": "note", "message": {"text": "[COMP001] High cognitive complexity: Function `build_become_command` has cognitive complexity 10 (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: else=1, if=5, nested_bonus=1, or=2, recursion=1."}, "properties": {"repobilityId": 48995, "scanner": "repobility-threat-engine", "fingerprint": "d887e3e081f624da4cdd1b3e1d4867e41cdd91cdbf506edfc3a9edbe2be593b6", "category": "quality", "severity": "low", "confidence": 0.95, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "AST-derived cognitive complexity score = 10 (severity threshold for low: 8+).", "evidence": {"scanner": "repobility-threat-engine", "function": "build_become_command", "breakdown": {"if": 5, "or": 2, "else": 1, "recursion": 1, "nested_bonus": 1}, "complexity": 10, "correlation_key": "fp|d887e3e081f624da4cdd1b3e1d4867e41cdd91cdbf506edfc3a9edbe2be593b6"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/become/sudosu.py"}, "region": {"startLine": 88}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 48821, "scanner": "repobility-ai-code-hygiene", "fingerprint": "f96e77d2532ca79b9cf9fa682454a8b475edc76464704ee55d76802c73fd366c", "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": "plugins/modules/django_dumpdata.py", "duplicate_line": 72, "correlation_key": "fp|f96e77d2532ca79b9cf9fa682454a8b475edc76464704ee55d76802c73fd366c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/django_loaddata.py"}, "region": {"startLine": 43}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 48820, "scanner": "repobility-ai-code-hygiene", "fingerprint": "e3d4a892c076a21b32f7638961600246df25e8de51351d9e78d47c159234a0bb", "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": "plugins/modules/django_command.py", "duplicate_line": 38, "correlation_key": "fp|e3d4a892c076a21b32f7638961600246df25e8de51351d9e78d47c159234a0bb"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/django_loaddata.py"}, "region": {"startLine": 40}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 48819, "scanner": "repobility-ai-code-hygiene", "fingerprint": "5f8a49b9b4c621e995564e24b7cba5ec4b00bc21f197970697e17345089bd704", "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": "plugins/modules/django_createcachetable.py", "duplicate_line": 23, "correlation_key": "fp|5f8a49b9b4c621e995564e24b7cba5ec4b00bc21f197970697e17345089bd704"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/django_loaddata.py"}, "region": {"startLine": 36}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 48818, "scanner": "repobility-ai-code-hygiene", "fingerprint": "93f35320efacf2d4b2cc06c36573068edf3d44e3bb7b6a88ed9031886b5607aa", "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": "plugins/modules/django_command.py", "duplicate_line": 38, "correlation_key": "fp|93f35320efacf2d4b2cc06c36573068edf3d44e3bb7b6a88ed9031886b5607aa"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/django_createcachetable.py"}, "region": {"startLine": 27}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 48817, "scanner": "repobility-ai-code-hygiene", "fingerprint": "0d7a870fa95377e3383972b9f06b232cbef9f228d18da219096878bc0512ec60", "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": "plugins/modules/datadog_event.py", "duplicate_line": 110, "correlation_key": "fp|0d7a870fa95377e3383972b9f06b232cbef9f228d18da219096878bc0512ec60"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/datadog_monitor.py"}, "region": {"startLine": 228}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 48816, "scanner": "repobility-ai-code-hygiene", "fingerprint": "b992181583663f0a1c241592cf42be55b3ce78917cf2e1bc8c94ad48532112ac", "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": "plugins/modules/datadog_downtime.py", "duplicate_line": 14, "correlation_key": "fp|b992181583663f0a1c241592cf42be55b3ce78917cf2e1bc8c94ad48532112ac"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/datadog_monitor.py"}, "region": {"startLine": 10}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 48815, "scanner": "repobility-ai-code-hygiene", "fingerprint": "49213ac656363d0455fc9ef62c73cc86e319d2eddd0767a22dde468781ad371a", "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": "plugins/modules/consul_role.py", "duplicate_line": 11, "correlation_key": "fp|49213ac656363d0455fc9ef62c73cc86e319d2eddd0767a22dde468781ad371a"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/consul_token.py"}, "region": {"startLine": 11}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 48814, "scanner": "repobility-ai-code-hygiene", "fingerprint": "cd905e41ac1f55583aa9c6d73600c8085cd43439e8ba3ff0b229e5f8d15e1220", "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": "plugins/modules/consul_agent_service.py", "duplicate_line": 13, "correlation_key": "fp|cd905e41ac1f55583aa9c6d73600c8085cd43439e8ba3ff0b229e5f8d15e1220"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/consul_binding_rule.py"}, "region": {"startLine": 11}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 48813, "scanner": "repobility-ai-code-hygiene", "fingerprint": "4a1be34035810708ce12f1101ef04bce801d66ea0c8624b9d69a8bbde4cc86e9", "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": "plugins/modules/consul_auth_method.py", "duplicate_line": 9, "correlation_key": "fp|4a1be34035810708ce12f1101ef04bce801d66ea0c8624b9d69a8bbde4cc86e9"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/consul_binding_rule.py"}, "region": {"startLine": 9}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 48812, "scanner": "repobility-ai-code-hygiene", "fingerprint": "2318cc15e26758f39de48a10cd524ba0b6792c98e8771d339fa170b7f07000d1", "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": "plugins/modules/consul_agent_service.py", "duplicate_line": 13, "correlation_key": "fp|2318cc15e26758f39de48a10cd524ba0b6792c98e8771d339fa170b7f07000d1"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/consul_auth_method.py"}, "region": {"startLine": 11}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 48811, "scanner": "repobility-ai-code-hygiene", "fingerprint": "a3f39485c50b1b2bc67ffb9703eb601558ed73e057c6d21c0ab3a072a3e7eef3", "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": "plugins/modules/cobbler_sync.py", "duplicate_line": 14, "correlation_key": "fp|a3f39485c50b1b2bc67ffb9703eb601558ed73e057c6d21c0ab3a072a3e7eef3"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/cobbler_system.py"}, "region": {"startLine": 14}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 48810, "scanner": "repobility-ai-code-hygiene", "fingerprint": "239eb08bd78a8321184ef1095a545f86451f9c61b4767dfd0619c84d14feab8b", "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": "plugins/modules/btrfs_info.py", "duplicate_line": 45, "correlation_key": "fp|239eb08bd78a8321184ef1095a545f86451f9c61b4767dfd0619c84d14feab8b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/btrfs_subvolume.py"}, "region": {"startLine": 153}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 48809, "scanner": "repobility-ai-code-hygiene", "fingerprint": "0ccd5f63178ded9a7a0d15e6126dd04ebccb56c145e7f7a14c081516f8c73445", "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": "plugins/modules/bitbucket_pipeline_known_host.py", "duplicate_line": 21, "correlation_key": "fp|0ccd5f63178ded9a7a0d15e6126dd04ebccb56c145e7f7a14c081516f8c73445"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/bitbucket_pipeline_variable.py"}, "region": {"startLine": 18}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 48808, "scanner": "repobility-ai-code-hygiene", "fingerprint": "94af6c598eb2d06e02e8cfa6aabe260653e25949c7c5970ce5a759f3af523bf5", "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": "plugins/modules/bitbucket_access_key.py", "duplicate_line": 7, "correlation_key": "fp|94af6c598eb2d06e02e8cfa6aabe260653e25949c7c5970ce5a759f3af523bf5"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/bitbucket_pipeline_variable.py"}, "region": {"startLine": 7}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 48807, "scanner": "repobility-ai-code-hygiene", "fingerprint": "b7dc88137649583436393941788112a7259e4ae12e2991bada70dda67125f9b0", "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": "plugins/modules/bitbucket_access_key.py", "duplicate_line": 12, "correlation_key": "fp|b7dc88137649583436393941788112a7259e4ae12e2991bada70dda67125f9b0"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/bitbucket_pipeline_known_host.py"}, "region": {"startLine": 15}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 48806, "scanner": "repobility-ai-code-hygiene", "fingerprint": "e5b5fad40b37583c73f06ab6b7f4f319eed46da75eb840633872cafa9a42dceb", "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": "plugins/modules/bitbucket_access_key.py", "duplicate_line": 7, "correlation_key": "fp|e5b5fad40b37583c73f06ab6b7f4f319eed46da75eb840633872cafa9a42dceb"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/bitbucket_pipeline_key_pair.py"}, "region": {"startLine": 7}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 48805, "scanner": "repobility-ai-code-hygiene", "fingerprint": "12d68373c2a2f83f8c5a6bb4b171b20cbc8d55827d2311eb55ac66bcd90a8508", "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": "plugins/module_utils/_online.py", "duplicate_line": 27, "correlation_key": "fp|12d68373c2a2f83f8c5a6bb4b171b20cbc8d55827d2311eb55ac66bcd90a8508"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/module_utils/_scaleway.py"}, "region": {"startLine": 135}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 48804, "scanner": "repobility-ai-code-hygiene", "fingerprint": "b1b4943360459149b97158412928ca23f8dbe936cab7c1e3dd0d1d642d2721c3", "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": "plugins/lookup/onepassword.py", "duplicate_line": 476, "correlation_key": "fp|b1b4943360459149b97158412928ca23f8dbe936cab7c1e3dd0d1d642d2721c3"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/lookup/onepassword_ssh_key.py"}, "region": {"startLine": 72}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 48803, "scanner": "repobility-ai-code-hygiene", "fingerprint": "18f2ba7215614f6d3daf8954a0e203d14c13fc6f47b176f0bd38e88dad2d530e", "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": "plugins/lookup/onepassword_doc.py", "duplicate_line": 45, "correlation_key": "fp|18f2ba7215614f6d3daf8954a0e203d14c13fc6f47b176f0bd38e88dad2d530e"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/lookup/onepassword_ssh_key.py"}, "region": {"startLine": 69}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 48802, "scanner": "repobility-ai-code-hygiene", "fingerprint": "ae9889476593482f2e36be6459006f583acce379d293b9b2d6bb6234399e6240", "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": "plugins/lookup/onepassword_doc.py", "duplicate_line": 41, "correlation_key": "fp|ae9889476593482f2e36be6459006f583acce379d293b9b2d6bb6234399e6240"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/lookup/onepassword_raw.py"}, "region": {"startLine": 46}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 48801, "scanner": "repobility-ai-code-hygiene", "fingerprint": "84d8b3060bf99dc44cd6ed002f5c285cbc836e82b1f377cb1fe56673dab06269", "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": "plugins/lookup/onepassword.py", "duplicate_line": 476, "correlation_key": "fp|84d8b3060bf99dc44cd6ed002f5c285cbc836e82b1f377cb1fe56673dab06269"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/lookup/onepassword_doc.py"}, "region": {"startLine": 48}}}]}, {"ruleId": "DKC010", "level": "note", "message": {"text": "Compose service lacks no-new-privileges hardening"}, "properties": {"repobilityId": 6766, "scanner": "repobility-docker", "fingerprint": "28352fe3e9649056c7c01079a61f3404a144960e823f3a21bffd6f0f83159f06", "category": "docker", "severity": "low", "confidence": 0.62, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "App-like service has no security_opt no-new-privileges setting.", "evidence": {"rule_id": "DKC010", "scanner": "repobility-docker", "service": "keycloak", "references": ["https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html"], "correlation_key": "fp|28352fe3e9649056c7c01079a61f3404a144960e823f3a21bffd6f0f83159f06"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/keycloak_clientsecret_regenerate/docker-compose.yml"}, "region": {"startLine": 16}}}]}, {"ruleId": "DKC006", "level": "note", "message": {"text": "Compose service does not declare a runtime user"}, "properties": {"repobilityId": 6764, "scanner": "repobility-docker", "fingerprint": "cd499b05b43f2cc0876946c8c97f778e7ccb10943477f33157a27ec7d106a9ef", "category": "docker", "severity": "low", "confidence": 0.56, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Service has no user setting and Repobility could not prove the image runs non-root.", "evidence": {"rule_id": "DKC006", "scanner": "repobility-docker", "service": "keycloak", "references": ["https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html"], "correlation_key": "fp|cd499b05b43f2cc0876946c8c97f778e7ccb10943477f33157a27ec7d106a9ef"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/keycloak_clientsecret_regenerate/docker-compose.yml"}, "region": {"startLine": 16}}}]}, {"ruleId": "DKC010", "level": "note", "message": {"text": "Compose service lacks no-new-privileges hardening"}, "properties": {"repobilityId": 6760, "scanner": "repobility-docker", "fingerprint": "ccfe8d81aaf2244043348eb0fcb3e7334cb7c80d4c1a1dbd3e916135095458d0", "category": "docker", "severity": "low", "confidence": 0.62, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "App-like service has no security_opt no-new-privileges setting.", "evidence": {"rule_id": "DKC010", "scanner": "repobility-docker", "service": "keycloak", "references": ["https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html"], "correlation_key": "fp|ccfe8d81aaf2244043348eb0fcb3e7334cb7c80d4c1a1dbd3e916135095458d0"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/keycloak_clientsecret_info/docker-compose.yml"}, "region": {"startLine": 16}}}]}, {"ruleId": "DKC006", "level": "note", "message": {"text": "Compose service does not declare a runtime user"}, "properties": {"repobilityId": 6758, "scanner": "repobility-docker", "fingerprint": "1ad46121706c79daceec7dc95dfd3dcc346655c2af21a1a88fe7e2cc0bcef856", "category": "docker", "severity": "low", "confidence": 0.56, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Service has no user setting and Repobility could not prove the image runs non-root.", "evidence": {"rule_id": "DKC006", "scanner": "repobility-docker", "service": "keycloak", "references": ["https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html"], "correlation_key": "fp|1ad46121706c79daceec7dc95dfd3dcc346655c2af21a1a88fe7e2cc0bcef856"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/keycloak_clientsecret_info/docker-compose.yml"}, "region": {"startLine": 16}}}]}, {"ruleId": "DKC010", "level": "note", "message": {"text": "Compose service lacks no-new-privileges hardening"}, "properties": {"repobilityId": 6754, "scanner": "repobility-docker", "fingerprint": "5e4ccc4f3e779e81c2ac3b5bceaa4902c0a51b17d98c9235c4a6a3785c8e7809", "category": "docker", "severity": "low", "confidence": 0.62, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "App-like service has no security_opt no-new-privileges setting.", "evidence": {"rule_id": "DKC010", "scanner": "repobility-docker", "service": "keycloak", "references": ["https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html"], "correlation_key": "fp|5e4ccc4f3e779e81c2ac3b5bceaa4902c0a51b17d98c9235c4a6a3785c8e7809"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/keycloak_clientscope_type/docker-compose.yml"}, "region": {"startLine": 8}}}]}, {"ruleId": "DKC006", "level": "note", "message": {"text": "Compose service does not declare a runtime user"}, "properties": {"repobilityId": 6752, "scanner": "repobility-docker", "fingerprint": "75fd74d3f15e205d7a50db94fd24147d5bc18ed9e7a1062bbfcac8f8136f59f0", "category": "docker", "severity": "low", "confidence": 0.56, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Service has no user setting and Repobility could not prove the image runs non-root.", "evidence": {"rule_id": "DKC006", "scanner": "repobility-docker", "service": "keycloak", "references": ["https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html"], "correlation_key": "fp|75fd74d3f15e205d7a50db94fd24147d5bc18ed9e7a1062bbfcac8f8136f59f0"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/keycloak_clientscope_type/docker-compose.yml"}, "region": {"startLine": 8}}}]}, {"ruleId": "DKC010", "level": "note", "message": {"text": "Compose service lacks no-new-privileges hardening"}, "properties": {"repobilityId": 6751, "scanner": "repobility-docker", "fingerprint": "52b8e3a8ecefc53fc02c9d7dc341c83458d6a8f56b62a3c1cc4533cdeac03ce2", "category": "docker", "severity": "low", "confidence": 0.62, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "App-like service has no security_opt no-new-privileges setting.", "evidence": {"rule_id": "DKC010", "scanner": "repobility-docker", "service": "jenkins", "references": ["https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html"], "correlation_key": "fp|52b8e3a8ecefc53fc02c9d7dc341c83458d6a8f56b62a3c1cc4533cdeac03ce2"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/jenkins_credential/docker-compose.yml"}, "region": {"startLine": 7}}}]}, {"ruleId": "DKC006", "level": "note", "message": {"text": "Compose service does not declare a runtime user"}, "properties": {"repobilityId": 6749, "scanner": "repobility-docker", "fingerprint": "9b80e0fc01195f857d7704c7fcf409f939021ccc8d7df8b3de28fe0eaab5a6fa", "category": "docker", "severity": "low", "confidence": 0.56, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Service has no user setting and Repobility could not prove the image runs non-root.", "evidence": {"rule_id": "DKC006", "scanner": "repobility-docker", "service": "jenkins", "references": ["https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html"], "correlation_key": "fp|9b80e0fc01195f857d7704c7fcf409f939021ccc8d7df8b3de28fe0eaab5a6fa"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/jenkins_credential/docker-compose.yml"}, "region": {"startLine": 7}}}]}, {"ruleId": "AIC005", "level": "note", "message": {"text": "Duplicate top-level symbol appears in a patch-style file"}, "properties": {"repobilityId": 6734, "scanner": "repobility-ai-code-hygiene", "fingerprint": "a33c73aaf13aec7e189cf95673200b63e8be8c902bcc6be6e1d0cdb2404eaeeb", "category": "quality", "severity": "low", "confidence": 0.64, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Patch-style file defines a top-level symbol also defined in another source file.", "evidence": {"symbol": "absent_strategy", "rule_id": "AIC005", "scanner": "repobility-ai-code-hygiene", "references": ["https://github.com/jendrikseipp/vulture", "https://knip.dev/"], "duplicate_file": "plugins/modules/gitlab_project_badge.py", "correlation_key": "fp|a33c73aaf13aec7e189cf95673200b63e8be8c902bcc6be6e1d0cdb2404eaeeb"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/scaleway_database_backup.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 6733, "scanner": "repobility-ai-code-hygiene", "fingerprint": "ecd78d2d083a7ef7ce1b908ab00712e39b543742dec4439d98e5b1dc984aafd1", "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": "plugins/lookup/onepassword.py", "duplicate_line": 476, "correlation_key": "fp|ecd78d2d083a7ef7ce1b908ab00712e39b543742dec4439d98e5b1dc984aafd1"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/lookup/onepassword_raw.py"}, "region": {"startLine": 53}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 6730, "scanner": "repobility-ai-code-hygiene", "fingerprint": "541d458d8232bf875c9f365c3df4e4f9d1857f0b62e4b0f536ee253d3c57e228", "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": "plugins/filter/keep_keys.py", "duplicate_line": 21, "correlation_key": "fp|541d458d8232bf875c9f365c3df4e4f9d1857f0b62e4b0f536ee253d3c57e228"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/filter/remove_keys.py"}, "region": {"startLine": 21}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 6729, "scanner": "repobility-ai-code-hygiene", "fingerprint": "a99c79bbbc4f850ea0377d29db34c068c7929d4b85b187c6aa87b0f8310390bc", "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": "plugins/connection/chroot.py", "duplicate_line": 171, "correlation_key": "fp|a99c79bbbc4f850ea0377d29db34c068c7929d4b85b187c6aa87b0f8310390bc"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/connection/zone.py"}, "region": {"startLine": 137}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 6728, "scanner": "repobility-ai-code-hygiene", "fingerprint": "0c1f140d9cf2cf243e7a16291be9299c56d25049740e5841ab3fcc14cc76ee62", "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": "plugins/connection/jail.py", "duplicate_line": 114, "correlation_key": "fp|0c1f140d9cf2cf243e7a16291be9299c56d25049740e5841ab3fcc14cc76ee62"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/connection/zone.py"}, "region": {"startLine": 110}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 6727, "scanner": "repobility-ai-code-hygiene", "fingerprint": "8e0a07fc4bde92b8107bc5abf2438e21fd92ffe9989739213256398bce7cc3bc", "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": "plugins/connection/incus.py", "duplicate_line": 47, "correlation_key": "fp|8e0a07fc4bde92b8107bc5abf2438e21fd92ffe9989739213256398bce7cc3bc"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/connection/lxd.py"}, "region": {"startLine": 45}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 6726, "scanner": "repobility-ai-code-hygiene", "fingerprint": "1357473d4c00924961c0eca5eb27be22ed2d794b1162617593372f71db45e39e", "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": "plugins/connection/chroot.py", "duplicate_line": 121, "correlation_key": "fp|1357473d4c00924961c0eca5eb27be22ed2d794b1162617593372f71db45e39e"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/connection/jail.py"}, "region": {"startLine": 91}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 6724, "scanner": "repobility-ai-code-hygiene", "fingerprint": "6a7141b81124dd4c02bd486e8ff35b8bfe99d376e211d605d126333b21cc7915", "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": "plugins/cache/pickle.py", "duplicate_line": 19, "correlation_key": "fp|6a7141b81124dd4c02bd486e8ff35b8bfe99d376e211d605d126333b21cc7915"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/cache/yaml.py"}, "region": {"startLine": 19}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 6723, "scanner": "repobility-ai-code-hygiene", "fingerprint": "24814708455443e731e1ed9b8ded6c45d6e3895fd72a4249819236dc6dc458b0", "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": "plugins/cache/memcached.py", "duplicate_line": 17, "correlation_key": "fp|24814708455443e731e1ed9b8ded6c45d6e3895fd72a4249819236dc6dc458b0"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/cache/redis.py"}, "region": {"startLine": 19}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 6722, "scanner": "repobility-ai-code-hygiene", "fingerprint": "8c0bfc00f5782daba5c9a8dde68d6de31e798abe09b8a019fc7ab2e37dd80a37", "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": "plugins/become/machinectl.py", "duplicate_line": 91, "correlation_key": "fp|8c0bfc00f5782daba5c9a8dde68d6de31e798abe09b8a019fc7ab2e37dd80a37"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/become/run0.py"}, "region": {"startLine": 77}}}]}, {"ruleId": "AIC002", "level": "note", "message": {"text": "Source file name looks like an AI patch artifact"}, "properties": {"repobilityId": 6720, "scanner": "repobility-ai-code-hygiene", "fingerprint": "d93a747233237d6308d838e1e9df5178ff1541dcc0f9754dcf2b35296c476dfc", "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": "backup", "rule_id": "AIC002", "scanner": "repobility-ai-code-hygiene", "references": ["https://arxiv.org/abs/2601.15195"], "correlation_key": "fp|d93a747233237d6308d838e1e9df5178ff1541dcc0f9754dcf2b35296c476dfc"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/scaleway_database_backup.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "MINED073", "level": "none", "message": {"text": "[MINED073] Redos Greedy Quantifier: Pattern with nested quantifiers like (a+)+ applied to network/user data \u2014 denial of service."}, "properties": {"repobilityId": 49073, "scanner": "repobility-threat-engine", "fingerprint": "1d407c0a472029768488a2544eb7a0c19e2e6486c96a5e80011579cb77407f18", "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": "redos-greedy-quantifier", "owasp": "A06:2021", "cwe_ids": ["CWE-1333", "CWE-400"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348072+00:00", "triaged_in_corpus": 12, "observations_count": 12702, "ai_coder_pattern_id": 35}, "scanner": "repobility-threat-engine", "correlation_key": "fp|1d407c0a472029768488a2544eb7a0c19e2e6486c96a5e80011579cb77407f18"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/swdepot.py"}, "region": {"startLine": 77}}}]}, {"ruleId": "MINED073", "level": "none", "message": {"text": "[MINED073] Redos Greedy Quantifier: Pattern with nested quantifiers like (a+)+ applied to network/user data \u2014 denial of service."}, "properties": {"repobilityId": 49072, "scanner": "repobility-threat-engine", "fingerprint": "bb68e81cc503cef988a60022c94e3fe0afee337a31c6515a4984747993f98535", "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": "redos-greedy-quantifier", "owasp": "A06:2021", "cwe_ids": ["CWE-1333", "CWE-400"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348072+00:00", "triaged_in_corpus": 12, "observations_count": 12702, "ai_coder_pattern_id": 35}, "scanner": "repobility-threat-engine", "correlation_key": "fp|bb68e81cc503cef988a60022c94e3fe0afee337a31c6515a4984747993f98535"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/pkgin.py"}, "region": {"startLine": 179}}}]}, {"ruleId": "MINED073", "level": "none", "message": {"text": "[MINED073] Redos Greedy Quantifier: Pattern with nested quantifiers like (a+)+ applied to network/user data \u2014 denial of service."}, "properties": {"repobilityId": 49071, "scanner": "repobility-threat-engine", "fingerprint": "5c38e2d63534ec2848a7b370726b27e4b3877167a7183cfaca411002d8c41eb1", "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": "redos-greedy-quantifier", "owasp": "A06:2021", "cwe_ids": ["CWE-1333", "CWE-400"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348072+00:00", "triaged_in_corpus": 12, "observations_count": 12702, "ai_coder_pattern_id": 35}, "scanner": "repobility-threat-engine", "correlation_key": "fp|5c38e2d63534ec2848a7b370726b27e4b3877167a7183cfaca411002d8c41eb1"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/pkg5.py"}, "region": {"startLine": 113}}}]}, {"ruleId": "MINED007", "level": "none", "message": {"text": "[MINED007] Sql String Concat (and 1 more): Same pattern found in 1 additional files. Review if needed."}, "properties": {"repobilityId": 49070, "scanner": "repobility-threat-engine", "fingerprint": "e26ae1cb6d5e6b3636745868137a3ed501e41dbf21d6ef701e227d6c5e30ee94", "category": "quality", "severity": "info", "confidence": 0.2, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Deduplicated summary only: 1 additional occurrences found. The top occurrences remain visible as actionable findings.", "evidence": {"mined": true, "mining": {"slug": "sql-string-concat", "owasp": "A03:2021", "cwe_ids": ["CWE-89"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347914+00:00", "triaged_in_corpus": 20, "observations_count": 210457, "ai_coder_pattern_id": 12}, "scanner": "repobility-threat-engine", "aggregated": true, "correlation_key": "fp|e26ae1cb6d5e6b3636745868137a3ed501e41dbf21d6ef701e227d6c5e30ee94", "aggregated_count": 1}}}, {"ruleId": "SEC042", "level": "none", "message": {"text": "[SEC042] SQL identifier injection via f-string in cursor execute (and 1 more): Same pattern found in 1 additional files. Review if needed."}, "properties": {"repobilityId": 49066, "scanner": "repobility-threat-engine", "fingerprint": "9c6144ea4dcde9d0b4668e2973c3a3ade6a7ab0b3ded26ced010bb3cc88cc066", "category": "injection", "severity": "info", "confidence": 0.2, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Deduplicated summary only: 1 additional occurrences found. The top occurrences remain visible as actionable findings.", "evidence": {"reason": "Deduplicated summary only: 1 additional occurrences found. The top occurrences remain visible as actionable findings.", "rule_id": "SEC042", "scanner": "repobility-threat-engine", "confidence": 0.2, "correlation_key": "fp|9c6144ea4dcde9d0b4668e2973c3a3ade6a7ab0b3ded26ced010bb3cc88cc066"}}}, {"ruleId": "MINED074", "level": "none", "message": {"text": "[MINED074] Ai Tell Fake Citation: Plausible-looking but non-existent URLs (e.g., docs.example.com/v2). Common AI hallucination."}, "properties": {"repobilityId": 49058, "scanner": "repobility-threat-engine", "fingerprint": "a61a28964179037ef1dd72c64fe264e1a38a9a372e17f61102d3fc847024a28c", "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": "ai-tell-fake-citation", "owasp": null, "cwe_ids": [], "languages": ["python", "javascript", "typescript", "markdown"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348074+00:00", "triaged_in_corpus": 10, "observations_count": 12281, "ai_coder_pattern_id": 176}, "scanner": "repobility-threat-engine", "correlation_key": "fp|a61a28964179037ef1dd72c64fe264e1a38a9a372e17f61102d3fc847024a28c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/ipify_facts.py"}, "region": {"startLine": 49}}}]}, {"ruleId": "SEC004", "level": "none", "message": {"text": "[SEC004] SQL Injection Risk (and 4 more): Same pattern found in 4 additional files. Review if needed."}, "properties": {"repobilityId": 49057, "scanner": "repobility-threat-engine", "fingerprint": "08f29ea2c1a278d1aa543b43ad870333dd988ab91c368e1662e5421508e62d63", "category": "injection", "severity": "info", "confidence": 0.2, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Deduplicated summary only: 4 additional occurrences found. The top occurrences remain visible as actionable findings.", "evidence": {"reason": "Deduplicated summary only: 4 additional occurrences found. The top occurrences remain visible as actionable findings.", "rule_id": "SEC004", "scanner": "repobility-threat-engine", "confidence": 0.2, "correlation_key": "fp|08f29ea2c1a278d1aa543b43ad870333dd988ab91c368e1662e5421508e62d63"}}}, {"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": 49052, "scanner": "repobility-threat-engine", "fingerprint": "cbf884b9df50f1464999fa336563654614ac424f46ca344ec78e76872d892564", "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|cbf884b9df50f1464999fa336563654614ac424f46ca344ec78e76872d892564"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/locale_gen.py"}, "region": {"startLine": 145}}}]}, {"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": 49051, "scanner": "repobility-threat-engine", "fingerprint": "b5df1b136c0332acb6a486d1b6057571d5f2ad29e67ac75b8fa12d394b30a6db", "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|b5df1b136c0332acb6a486d1b6057571d5f2ad29e67ac75b8fa12d394b30a6db"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/cloud_init_data_facts.py"}, "region": {"startLine": 109}}}]}, {"ruleId": "SEC015", "level": "none", "message": {"text": "[SEC015] Insecure Randomness for Security (and 1 more): Same pattern found in 1 additional files. Review if needed."}, "properties": {"repobilityId": 49047, "scanner": "repobility-threat-engine", "fingerprint": "7b9ccdd419b3878e3d2ec8efb74d8ee23f94729fa3ed8ff97305e33614909ea3", "category": "crypto", "severity": "info", "confidence": 0.2, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Deduplicated summary only: 1 additional occurrences found. The top occurrences remain visible as actionable findings.", "evidence": {"reason": "Deduplicated summary only: 1 additional occurrences found. The top occurrences remain visible as actionable findings.", "rule_id": "SEC015", "scanner": "repobility-threat-engine", "confidence": 0.2, "correlation_key": "fp|7b9ccdd419b3878e3d2ec8efb74d8ee23f94729fa3ed8ff97305e33614909ea3"}}}, {"ruleId": "MINED067", "level": "none", "message": {"text": "[MINED067] Python Requests No Timeout: requests.get/post/etc. without timeout= can hang forever."}, "properties": {"repobilityId": 49036, "scanner": "repobility-threat-engine", "fingerprint": "e97b3ba65ce83021d6666ab4c1dec35208a08741bd2b0b8ffea1894c638a99db", "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": "python-requests-no-timeout", "owasp": null, "cwe_ids": ["CWE-400"], "languages": ["python"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348058+00:00", "triaged_in_corpus": 12, "observations_count": 45429, "ai_coder_pattern_id": 122}, "scanner": "repobility-threat-engine", "correlation_key": "fp|e97b3ba65ce83021d6666ab4c1dec35208a08741bd2b0b8ffea1894c638a99db"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/circonus_annotation.py"}, "region": {"startLine": 180}}}]}, {"ruleId": "MINED067", "level": "none", "message": {"text": "[MINED067] Python Requests No Timeout: requests.get/post/etc. without timeout= can hang forever."}, "properties": {"repobilityId": 49035, "scanner": "repobility-threat-engine", "fingerprint": "1d3efae8784689735499e1a628184bb5c5f617b5e152b1590c3ff274f59472fe", "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": "python-requests-no-timeout", "owasp": null, "cwe_ids": ["CWE-400"], "languages": ["python"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348058+00:00", "triaged_in_corpus": 12, "observations_count": 45429, "ai_coder_pattern_id": 122}, "scanner": "repobility-threat-engine", "correlation_key": "fp|1d3efae8784689735499e1a628184bb5c5f617b5e152b1590c3ff274f59472fe"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/module_utils/_gitlab.py"}, "region": {"startLine": 118}}}]}, {"ruleId": "SEC001", "level": "none", "message": {"text": "[SEC001] Hardcoded Password: Hardcoded password found in source code."}, "properties": {"repobilityId": 49031, "scanner": "repobility-threat-engine", "fingerprint": "e32f2e28062cde54910c70d7aab528970f6e213abca623d5a7fdb296e94c5b1f", "category": "credential_exposure", "severity": "info", "confidence": 0.15, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Value looks like a development placeholder, not a live credential", "evidence": {"match": "PASSWORD=\"<redacted>\"", "reason": "Value looks like a development placeholder, not a live credential", "rule_id": "SEC001", "scanner": "repobility-threat-engine", "confidence": 0.15, "correlation_key": "secret|plugins/modules/hponcfg.py|5|password redacted"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/hponcfg.py"}, "region": {"startLine": 54}}}]}, {"ruleId": "MINED077", "level": "none", "message": {"text": "[MINED077] Python Open No Context: fp = open(path) outside with-block leaks file handles."}, "properties": {"repobilityId": 49023, "scanner": "repobility-threat-engine", "fingerprint": "491377fbfef9edbf83ba3b63a74d53402df5a80d9175e577b2ffeb8fcecba304", "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": "python-open-no-context", "owasp": null, "cwe_ids": ["CWE-772"], "languages": ["python"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348081+00:00", "triaged_in_corpus": 12, "observations_count": 7864, "ai_coder_pattern_id": 123}, "scanner": "repobility-threat-engine", "correlation_key": "fp|491377fbfef9edbf83ba3b63a74d53402df5a80d9175e577b2ffeb8fcecba304"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/module_utils/_univention_umc.py"}, "region": {"startLine": 91}}}]}, {"ruleId": "MINED077", "level": "none", "message": {"text": "[MINED077] Python Open No Context: fp = open(path) outside with-block leaks file handles."}, "properties": {"repobilityId": 49022, "scanner": "repobility-threat-engine", "fingerprint": "85c3e45214ddd0f1d0626ed384e534eadc1a823102e665723b79b847764ec722", "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": "python-open-no-context", "owasp": null, "cwe_ids": ["CWE-772"], "languages": ["python"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348081+00:00", "triaged_in_corpus": 12, "observations_count": 7864, "ai_coder_pattern_id": 123}, "scanner": "repobility-threat-engine", "correlation_key": "fp|85c3e45214ddd0f1d0626ed384e534eadc1a823102e665723b79b847764ec722"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/connection/lxc.py"}, "region": {"startLine": 175}}}]}, {"ruleId": "MINED043", "level": "none", "message": {"text": "[MINED043] Http Not Https (and 31 more): Same pattern found in 31 additional files. Review if needed."}, "properties": {"repobilityId": 49021, "scanner": "repobility-threat-engine", "fingerprint": "f380a8fc99527c7bf07fbd23ed625891228cad05963ba1b8a33b9f4005269d5c", "category": "quality", "severity": "info", "confidence": 0.2, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Deduplicated summary only: 31 additional occurrences found. The top occurrences remain visible as actionable findings.", "evidence": {"mined": true, "mining": {"slug": "http-not-https", "owasp": "A02:2021", "cwe_ids": ["CWE-319"], "precision": 0.917, "promoted_at": "2026-05-18T14:01:32.347999+00:00", "triaged_in_corpus": 12, "observations_count": 4113831, "ai_coder_pattern_id": 15}, "scanner": "repobility-threat-engine", "aggregated": true, "correlation_key": "fp|f380a8fc99527c7bf07fbd23ed625891228cad05963ba1b8a33b9f4005269d5c", "aggregated_count": 31}}}, {"ruleId": "MINED043", "level": "none", "message": {"text": "[MINED043] Http Not Https: Hardcoded http:// (not localhost) for endpoints that handle credentials or data."}, "properties": {"repobilityId": 49020, "scanner": "repobility-threat-engine", "fingerprint": "6ebd51d0e9e32afeec877e132796b314abf16f0d17feb56d1064add61c01c410", "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": "http-not-https", "owasp": "A02:2021", "cwe_ids": ["CWE-319"], "precision": 0.917, "promoted_at": "2026-05-18T14:01:32.347999+00:00", "triaged_in_corpus": 12, "observations_count": 4113831, "ai_coder_pattern_id": 15}, "scanner": "repobility-threat-engine", "correlation_key": "fp|6ebd51d0e9e32afeec877e132796b314abf16f0d17feb56d1064add61c01c410"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/lookup/etcd3.py"}, "region": {"startLine": 47}}}]}, {"ruleId": "MINED043", "level": "none", "message": {"text": "[MINED043] Http Not Https: Hardcoded http:// (not localhost) for endpoints that handle credentials or data."}, "properties": {"repobilityId": 49019, "scanner": "repobility-threat-engine", "fingerprint": "af5383f20607c025085da8f1d41a30debd1b508455dd1599fbeccbe8acaf8533", "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": "http-not-https", "owasp": "A02:2021", "cwe_ids": ["CWE-319"], "precision": 0.917, "promoted_at": "2026-05-18T14:01:32.347999+00:00", "triaged_in_corpus": 12, "observations_count": 4113831, "ai_coder_pattern_id": 15}, "scanner": "repobility-threat-engine", "correlation_key": "fp|af5383f20607c025085da8f1d41a30debd1b508455dd1599fbeccbe8acaf8533"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/filter/json_query.py"}, "region": {"startLine": 22}}}]}, {"ruleId": "MINED043", "level": "none", "message": {"text": "[MINED043] Http Not Https: Hardcoded http:// (not localhost) for endpoints that handle credentials or data."}, "properties": {"repobilityId": 49018, "scanner": "repobility-threat-engine", "fingerprint": "22673b1d37eda23280410fffe91d5202a9a854df3cd53160fafcdc13c65b3974", "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": "http-not-https", "owasp": "A02:2021", "cwe_ids": ["CWE-319"], "precision": 0.917, "promoted_at": "2026-05-18T14:01:32.347999+00:00", "triaged_in_corpus": 12, "observations_count": 4113831, "ai_coder_pattern_id": 15}, "scanner": "repobility-threat-engine", "correlation_key": "fp|22673b1d37eda23280410fffe91d5202a9a854df3cd53160fafcdc13c65b3974"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/callback/splunk.py"}, "region": {"startLine": 78}}}]}, {"ruleId": "MINED076", "level": "none", "message": {"text": "[MINED076] Catch And Reraise Noop: except X: raise X \u2014 adds no value, hides traceback if AI accidentally changes message."}, "properties": {"repobilityId": 49017, "scanner": "repobility-threat-engine", "fingerprint": "b2809e314a43fe313de64bf6798b14e469e55192ef99f3d56dc648992ba070f1", "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": "catch-and-reraise-noop", "owasp": null, "cwe_ids": [], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348079+00:00", "triaged_in_corpus": 10, "observations_count": 8333, "ai_coder_pattern_id": 45}, "scanner": "repobility-threat-engine", "correlation_key": "fp|b2809e314a43fe313de64bf6798b14e469e55192ef99f3d56dc648992ba070f1"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/lookup/etcd.py"}, "region": {"startLine": 152}}}]}, {"ruleId": "MINED076", "level": "none", "message": {"text": "[MINED076] Catch And Reraise Noop: except X: raise X \u2014 adds no value, hides traceback if AI accidentally changes message."}, "properties": {"repobilityId": 49016, "scanner": "repobility-threat-engine", "fingerprint": "dc77ddb56dd40d474ebfa8542c99b3e0c6a6d61cbfc03b3ce8dbc662967d24a3", "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": "catch-and-reraise-noop", "owasp": null, "cwe_ids": [], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348079+00:00", "triaged_in_corpus": 10, "observations_count": 8333, "ai_coder_pattern_id": 45}, "scanner": "repobility-threat-engine", "correlation_key": "fp|dc77ddb56dd40d474ebfa8542c99b3e0c6a6d61cbfc03b3ce8dbc662967d24a3"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/callback/logentries.py"}, "region": {"startLine": 164}}}]}, {"ruleId": "MINED006", "level": "none", "message": {"text": "[MINED006] Overcatch Baseexception (and 2 more): Same pattern found in 2 additional files. Review if needed."}, "properties": {"repobilityId": 49015, "scanner": "repobility-threat-engine", "fingerprint": "1d890d539f069e5c1d06723a89c54cb2ca3fc5652d4e9d8f9bab1f234c90d8fb", "category": "quality", "severity": "info", "confidence": 0.2, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Deduplicated summary only: 2 additional occurrences found. The top occurrences remain visible as actionable findings.", "evidence": {"mined": true, "mining": {"slug": "overcatch-baseexception", "owasp": null, "cwe_ids": ["CWE-705"], "languages": ["python"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347911+00:00", "triaged_in_corpus": 15, "observations_count": 230624, "ai_coder_pattern_id": 8}, "scanner": "repobility-threat-engine", "aggregated": true, "correlation_key": "fp|1d890d539f069e5c1d06723a89c54cb2ca3fc5652d4e9d8f9bab1f234c90d8fb", "aggregated_count": 2}}}, {"ruleId": "MINED053", "level": "none", "message": {"text": "[MINED053] Placeholder Default Username (and 5 more): Same pattern found in 5 additional files. Review if needed."}, "properties": {"repobilityId": 49011, "scanner": "repobility-threat-engine", "fingerprint": "a051dfa0588c0a8a513749ebfa9b4f53e3794945733cd9df8c2c6268cbd19a36", "category": "quality", "severity": "info", "confidence": 0.2, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Deduplicated summary only: 5 additional occurrences found. The top occurrences remain visible as actionable findings.", "evidence": {"mined": true, "mining": {"slug": "placeholder-default-username", "owasp": null, "cwe_ids": ["CWE-1392", "CWE-798"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348025+00:00", "triaged_in_corpus": 10, "observations_count": 456953, "ai_coder_pattern_id": 44}, "scanner": "repobility-threat-engine", "aggregated": true, "correlation_key": "fp|a051dfa0588c0a8a513749ebfa9b4f53e3794945733cd9df8c2c6268cbd19a36", "aggregated_count": 5}}}, {"ruleId": "MINED053", "level": "none", "message": {"text": "[MINED053] Placeholder Default Username: foo@bar.com / john.doe@example.com / admin/admin / changeme \u2014 typical AI placeholder credentials."}, "properties": {"repobilityId": 49010, "scanner": "repobility-threat-engine", "fingerprint": "d4fe694eefeb2f7e06ad41f174ccd0f59e61360595dd8900381d154ff2a7bd0b", "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": "placeholder-default-username", "owasp": null, "cwe_ids": ["CWE-1392", "CWE-798"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348025+00:00", "triaged_in_corpus": 10, "observations_count": 456953, "ai_coder_pattern_id": 44}, "scanner": "repobility-threat-engine", "correlation_key": "fp|d4fe694eefeb2f7e06ad41f174ccd0f59e61360595dd8900381d154ff2a7bd0b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/keyring_info.py"}, "region": {"startLine": 61}}}]}, {"ruleId": "MINED053", "level": "none", "message": {"text": "[MINED053] Placeholder Default Username: foo@bar.com / john.doe@example.com / admin/admin / changeme \u2014 typical AI placeholder credentials."}, "properties": {"repobilityId": 49009, "scanner": "repobility-threat-engine", "fingerprint": "63b47f996c8fcd58717cd45e186aaad696c837afb61e2dd1beae28b8ff5cf8fa", "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": "placeholder-default-username", "owasp": null, "cwe_ids": ["CWE-1392", "CWE-798"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348025+00:00", "triaged_in_corpus": 10, "observations_count": 456953, "ai_coder_pattern_id": 44}, "scanner": "repobility-threat-engine", "correlation_key": "fp|63b47f996c8fcd58717cd45e186aaad696c837afb61e2dd1beae28b8ff5cf8fa"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/etcd3.py"}, "region": {"startLine": 100}}}]}, {"ruleId": "MINED053", "level": "none", "message": {"text": "[MINED053] Placeholder Default Username: foo@bar.com / john.doe@example.com / admin/admin / changeme \u2014 typical AI placeholder credentials."}, "properties": {"repobilityId": 49008, "scanner": "repobility-threat-engine", "fingerprint": "4ecf572e0fd898ca50e74b691bd3bf9d2d2c319c5bc728500b75546ecb7c2dab", "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": "placeholder-default-username", "owasp": null, "cwe_ids": ["CWE-1392", "CWE-798"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348025+00:00", "triaged_in_corpus": 10, "observations_count": 456953, "ai_coder_pattern_id": 44}, "scanner": "repobility-threat-engine", "correlation_key": "fp|4ecf572e0fd898ca50e74b691bd3bf9d2d2c319c5bc728500b75546ecb7c2dab"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/cache/redis.py"}, "region": {"startLine": 19}}}]}, {"ruleId": "MINED072", "level": "none", "message": {"text": "[MINED072] Python Pass Only Class (and 14 more): Same pattern found in 14 additional files. Review if needed."}, "properties": {"repobilityId": 49005, "scanner": "repobility-threat-engine", "fingerprint": "89c1b7b337b87f4456c8edc92e38c4b079e7af80bd67c140240c7a3ccdb0f1dc", "category": "quality", "severity": "info", "confidence": 0.2, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Deduplicated summary only: 14 additional occurrences found. The top occurrences remain visible as actionable findings.", "evidence": {"mined": true, "mining": {"slug": "python-pass-only-class", "owasp": null, "cwe_ids": ["CWE-1188"], "languages": ["python"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348069+00:00", "triaged_in_corpus": 10, "observations_count": 14245, "ai_coder_pattern_id": 143}, "scanner": "repobility-threat-engine", "aggregated": true, "correlation_key": "fp|89c1b7b337b87f4456c8edc92e38c4b079e7af80bd67c140240c7a3ccdb0f1dc", "aggregated_count": 14}}}, {"ruleId": "MINED072", "level": "none", "message": {"text": "[MINED072] Python Pass Only Class: class Foo: pass \u2014 stub waiting to be filled in."}, "properties": {"repobilityId": 49004, "scanner": "repobility-threat-engine", "fingerprint": "e7a77dfc9b4fe789b2cca2858bdc80d95763c554034189a8b5d0f80445819d81", "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": "python-pass-only-class", "owasp": null, "cwe_ids": ["CWE-1188"], "languages": ["python"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348069+00:00", "triaged_in_corpus": 10, "observations_count": 14245, "ai_coder_pattern_id": 143}, "scanner": "repobility-threat-engine", "correlation_key": "fp|e7a77dfc9b4fe789b2cca2858bdc80d95763c554034189a8b5d0f80445819d81"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/lookup/bitwarden_secrets_manager.py"}, "region": {"startLine": 81}}}]}, {"ruleId": "MINED072", "level": "none", "message": {"text": "[MINED072] Python Pass Only Class: class Foo: pass \u2014 stub waiting to be filled in."}, "properties": {"repobilityId": 49003, "scanner": "repobility-threat-engine", "fingerprint": "5ccf8b90942aa7700493801a5eb3c637a4c1eec1b8df7417072a0cef4a3ac1e5", "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": "python-pass-only-class", "owasp": null, "cwe_ids": ["CWE-1188"], "languages": ["python"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348069+00:00", "triaged_in_corpus": 10, "observations_count": 14245, "ai_coder_pattern_id": 143}, "scanner": "repobility-threat-engine", "correlation_key": "fp|5ccf8b90942aa7700493801a5eb3c637a4c1eec1b8df7417072a0cef4a3ac1e5"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/lookup/bitwarden.py"}, "region": {"startLine": 131}}}]}, {"ruleId": "MINED072", "level": "none", "message": {"text": "[MINED072] Python Pass Only Class: class Foo: pass \u2014 stub waiting to be filled in."}, "properties": {"repobilityId": 49002, "scanner": "repobility-threat-engine", "fingerprint": "daf97744e37a033fa35abcb83c3cd957f16d400a29b4586f4dedc1a95714aab2", "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": "python-pass-only-class", "owasp": null, "cwe_ids": ["CWE-1188"], "languages": ["python"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348069+00:00", "triaged_in_corpus": 10, "observations_count": 14245, "ai_coder_pattern_id": 143}, "scanner": "repobility-threat-engine", "correlation_key": "fp|daf97744e37a033fa35abcb83c3cd957f16d400a29b4586f4dedc1a95714aab2"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/action/shutdown.py"}, "region": {"startLine": 28}}}]}, {"ruleId": "SEC128", "level": "none", "message": {"text": "[SEC128] Async function without await \u2014 fire-and-forget Promise (AI mistake) (and 84 more): Same pattern found in 84 additional files. Review if needed."}, "properties": {"repobilityId": 49001, "scanner": "repobility-threat-engine", "fingerprint": "61814728e4a0a4b35c01af216acd5f0c5fa0892e7e6c8314a75f63fbe78488c7", "category": "quality", "severity": "info", "confidence": 0.2, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Deduplicated summary only: 84 additional occurrences found. The top occurrences remain visible as actionable findings.", "evidence": {"reason": "Deduplicated summary only: 84 additional occurrences found. The top occurrences remain visible as actionable findings.", "rule_id": "SEC128", "scanner": "repobility-threat-engine", "confidence": 0.2, "correlation_key": "fp|61814728e4a0a4b35c01af216acd5f0c5fa0892e7e6c8314a75f63fbe78488c7"}}}, {"ruleId": "COMP001", "level": "none", "message": {"text": "[COMP001] High cognitive complexity (and 423 more): Same pattern found in 423 additional files. Review if needed."}, "properties": {"repobilityId": 48997, "scanner": "repobility-threat-engine", "fingerprint": "cdc91b4c9d5a4e7750da6e1320439dde633ab239f02b84d57b34bddb1b6daf87", "category": "quality", "severity": "info", "confidence": 0.2, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Deduplicated summary only: 423 additional occurrences found. The top occurrences remain visible as actionable findings.", "evidence": {"scanner": "repobility-threat-engine", "function": "run", "breakdown": {"if": 13, "and": 1, "for": 3, "elif": 1, "else": 1, "break": 1, "except": 2, "continue": 1, "recursion": 1, "nested_bonus": 41}, "aggregated": true, "complexity": 65, "correlation_key": "fp|cdc91b4c9d5a4e7750da6e1320439dde633ab239f02b84d57b34bddb1b6daf87", "aggregated_count": 423}}}, {"ruleId": "MINED050", "level": "none", "message": {"text": "[MINED050] Stub Only Function (and 60 more): Same pattern found in 60 additional files. Review if needed."}, "properties": {"repobilityId": 48993, "scanner": "repobility-threat-engine", "fingerprint": "b3fcf71ec7596ab00369280f633125441a1e3f5455a4881bf8330a5e25ded7b5", "category": "quality", "severity": "info", "confidence": 0.2, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Deduplicated summary only: 60 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|b3fcf71ec7596ab00369280f633125441a1e3f5455a4881bf8330a5e25ded7b5", "aggregated_count": 60}}}, {"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": 48992, "scanner": "repobility-threat-engine", "fingerprint": "4ac82331f3540a9f3688a61824ca64c6060ccde6d00f8798c4f9f2685d472ae1", "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|4ac82331f3540a9f3688a61824ca64c6060ccde6d00f8798c4f9f2685d472ae1"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/callback/cgroup_memory_recap.py"}, "region": {"startLine": 98}}}]}, {"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": 48991, "scanner": "repobility-threat-engine", "fingerprint": "58fc3e0cad626b674c14fe1eb5c29279dc74d16c9ee51e203a2a3799eef9cabe", "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|58fc3e0cad626b674c14fe1eb5c29279dc74d16c9ee51e203a2a3799eef9cabe"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/action/shutdown.py"}, "region": {"startLine": 29}}}]}, {"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": 48990, "scanner": "repobility-threat-engine", "fingerprint": "e3807ae7488b257dc7cd18558871cd8dcc8dd5eae9d9c0907b37b83237d28ba0", "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|e3807ae7488b257dc7cd18558871cd8dcc8dd5eae9d9c0907b37b83237d28ba0"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/action/iptables_state.py"}, "region": {"startLine": 171}}}]}, {"ruleId": "MINED001", "level": "none", "message": {"text": "[MINED001] Bare Except Pass (and 44 more): Same pattern found in 44 additional files. Review if needed."}, "properties": {"repobilityId": 48989, "scanner": "repobility-threat-engine", "fingerprint": "c670ea62d2795fc845a67aaea738f723c384e34e14d461a463f04c5fdad4a1a4", "category": "quality", "severity": "info", "confidence": 0.2, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Deduplicated summary only: 44 additional occurrences found. The top occurrences remain visible as actionable findings.", "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", "aggregated": true, "correlation_key": "fp|c670ea62d2795fc845a67aaea738f723c384e34e14d461a463f04c5fdad4a1a4", "aggregated_count": 44}}}, {"ruleId": "MINED055", "level": "none", "message": {"text": "[MINED055] Npm Install No Lockfile: Production image runs npm install (resolves new versions on every build) instead of npm ci."}, "properties": {"repobilityId": 48980, "scanner": "repobility-threat-engine", "fingerprint": "3039999cc7cb536c5a91e159eef0ed49d8fc3c194ec9a1ecb589830dcf79a4a7", "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": "npm-install-no-lockfile", "owasp": "A06:2021", "cwe_ids": ["CWE-1357"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348030+00:00", "triaged_in_corpus": 12, "observations_count": 317602, "ai_coder_pattern_id": 42}, "scanner": "repobility-threat-engine", "correlation_key": "fp|3039999cc7cb536c5a91e159eef0ed49d8fc3c194ec9a1ecb589830dcf79a4a7"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".devcontainer/setup.sh"}, "region": {"startLine": 8}}}]}, {"ruleId": "MINED055", "level": "none", "message": {"text": "[MINED055] Npm Install No Lockfile: Production image runs npm install (resolves new versions on every build) instead of npm ci."}, "properties": {"repobilityId": 48979, "scanner": "repobility-threat-engine", "fingerprint": "ad0cfdc8053de5369fbc5caaea8cbafd922df853cf1ccc2cff7b63296145210e", "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": "npm-install-no-lockfile", "owasp": "A06:2021", "cwe_ids": ["CWE-1357"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348030+00:00", "triaged_in_corpus": 12, "observations_count": 317602, "ai_coder_pattern_id": 42}, "scanner": "repobility-threat-engine", "correlation_key": "fp|ad0cfdc8053de5369fbc5caaea8cbafd922df853cf1ccc2cff7b63296145210e"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".azure-pipelines/scripts/report-coverage.sh"}, "region": {"startLine": 16}}}]}, {"ruleId": "SEC029", "level": "none", "message": {"text": "[SEC029] Server-Side Request Forgery (SSRF) \u2014 outbound HTTP from user input (and 61 more): Same pattern found in 61 additional files. Review if needed."}, "properties": {"repobilityId": 48978, "scanner": "repobility-threat-engine", "fingerprint": "ff7d25bebdca1008ed031996e594dc626440850f5202855484308ada899f3042", "category": "ssrf", "severity": "info", "confidence": 0.2, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Deduplicated summary only: 61 additional occurrences found. The top occurrences remain visible as actionable findings.", "evidence": {"reason": "Deduplicated summary only: 61 additional occurrences found. The top occurrences remain visible as actionable findings.", "rule_id": "SEC029", "scanner": "repobility-threat-engine", "confidence": 0.2, "correlation_key": "fp|ff7d25bebdca1008ed031996e594dc626440850f5202855484308ada899f3042"}}}, {"ruleId": "SEC103", "level": "none", "message": {"text": "[SEC103] LDAP injection \u2014 non-constant search filter (and 7 more): Same pattern found in 7 additional files. Review if needed."}, "properties": {"repobilityId": 48974, "scanner": "repobility-threat-engine", "fingerprint": "52c45417ead1187ceb462b2716d77fe8f9140dc019baf8f41096a11ceae5ee1f", "category": "injection", "severity": "info", "confidence": 0.2, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Deduplicated summary only: 7 additional occurrences found. The top occurrences remain visible as actionable findings.", "evidence": {"reason": "Deduplicated summary only: 7 additional occurrences found. The top occurrences remain visible as actionable findings.", "rule_id": "SEC103", "scanner": "repobility-threat-engine", "confidence": 0.2, "correlation_key": "fp|52c45417ead1187ceb462b2716d77fe8f9140dc019baf8f41096a11ceae5ee1f"}}}, {"ruleId": "ERR001", "level": "none", "message": {"text": "[ERR001] Silent Exception Swallowing (and 5 more): Same pattern found in 5 additional files. Review if needed."}, "properties": {"repobilityId": 6743, "scanner": "repobility-threat-engine", "fingerprint": "6abd4249c23b58e618dc466fea68eeb6f2e3e1f9f9fe9e8cf480f54bd48579d1", "category": "error_handling", "severity": "info", "confidence": 0.2, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Deduplicated summary only: 5 additional occurrences found. The top occurrences remain visible as actionable findings.", "evidence": {"reason": "Deduplicated summary only: 5 additional occurrences found. The top occurrences remain visible as actionable findings.", "rule_id": "ERR001", "scanner": "repobility-threat-engine", "confidence": 0.2, "correlation_key": "fp|6abd4249c23b58e618dc466fea68eeb6f2e3e1f9f9fe9e8cf480f54bd48579d1"}}}, {"ruleId": "SEC004", "level": "none", "message": {"text": "[SEC004] SQL Injection Risk (and 6 more): Same pattern found in 6 additional files. Review if needed."}, "properties": {"repobilityId": 6739, "scanner": "repobility-threat-engine", "fingerprint": "17098d0c0b51e0577a342e1c9f794638cb315a77c89597063420f059a1c35449", "category": "injection", "severity": "info", "confidence": 0.2, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Deduplicated summary only: 6 additional occurrences found. The top occurrences remain visible as actionable findings.", "evidence": {"reason": "Deduplicated summary only: 6 additional occurrences found. The top occurrences remain visible as actionable findings.", "rule_id": "SEC004", "scanner": "repobility-threat-engine", "confidence": 0.2, "correlation_key": "fp|17098d0c0b51e0577a342e1c9f794638cb315a77c89597063420f059a1c35449"}}}, {"ruleId": "SEC032", "level": "error", "message": {"text": "[SEC032] Unrestricted File Upload \u2014 no extension/MIME validation: File upload accepts the user's filename without validating extension, content-type, or magic bytes. Attackers upload `.php`, `.jsp`, or executable files to a web-served directory, then visit the URL to trigger RCE. CWE-434. Examples: Apache Struts (CVE-2017-9805), countless WordPress plugin RCEs."}, "properties": {"repobilityId": 49059, "scanner": "repobility-threat-engine", "fingerprint": "1d6dc48ab4617d68d35855638411517c2c6d921d1c88fc6624873811a8726c37", "category": "file_upload", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "open(self.vars.filename,", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC032", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|1d6dc48ab4617d68d35855638411517c2c6d921d1c88fc6624873811a8726c37"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/kernel_blacklist.py"}, "region": {"startLine": 72}}}]}, {"ruleId": "SEC004", "level": "error", "message": {"text": "[SEC004] SQL Injection Risk: String interpolation in SQL execution. Allows SQL injection."}, "properties": {"repobilityId": 49056, "scanner": "repobility-threat-engine", "fingerprint": "4985650d903ca3bfdfb935cc826fa20820371ad4a0c41ec626452cccce152656", "category": "injection", "severity": "high", "confidence": 0.5, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "SQL string interpolation found, but user-controlled taint was not proven from local context.", "evidence": {"match": "msg = f\"Delete", "reason": "SQL string interpolation found, but user-controlled taint was not proven from local context.", "rule_id": "SEC004", "scanner": "repobility-threat-engine", "confidence": 0.5, "correlation_key": "code|injection|token|188|sec004"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/redis_data.py"}, "region": {"startLine": 188}}}]}, {"ruleId": "SEC004", "level": "error", "message": {"text": "[SEC004] SQL Injection Risk: String interpolation in SQL execution. Allows SQL injection."}, "properties": {"repobilityId": 49055, "scanner": "repobility-threat-engine", "fingerprint": "d5ee2d28c3e806088ae96ec97cf2606c73b57088f9240eb187898c4c726d8706", "category": "injection", "severity": "high", "confidence": 0.5, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "SQL string interpolation found, but user-controlled taint was not proven from local context.", "evidence": {"match": "cursor.execute(f\"", "reason": "SQL string interpolation found, but user-controlled taint was not proven from local context.", "rule_id": "SEC004", "scanner": "repobility-threat-engine", "confidence": 0.5, "correlation_key": "code|injection|plugins/modules/mssql_db.py|120|sec004"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/mssql_db.py"}, "region": {"startLine": 120}}}]}, {"ruleId": "SEC004", "level": "error", "message": {"text": "[SEC004] SQL Injection Risk: String interpolation in SQL execution. Allows SQL injection."}, "properties": {"repobilityId": 49054, "scanner": "repobility-threat-engine", "fingerprint": "c0b3c4ec2332357feb17950b24df753539ae330cd336bfbdac30a8f099d9513f", "category": "injection", "severity": "high", "confidence": 0.5, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "SQL string interpolation found, but user-controlled taint was not proven from local context.", "evidence": {"match": "stdin = f\"delete", "reason": "SQL string interpolation found, but user-controlled taint was not proven from local context.", "rule_id": "SEC004", "scanner": "repobility-threat-engine", "confidence": 0.5, "correlation_key": "code|injection|token|255|sec004"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/ipwcli_dns.py"}, "region": {"startLine": 255}}}]}, {"ruleId": "MINED004", "level": "error", "message": {"text": "[MINED004] Weak Crypto: MD5/SHA1/DES/RC4 used for security context (not just checksums)."}, "properties": {"repobilityId": 49050, "scanner": "repobility-threat-engine", "fingerprint": "d757901dc5f50fec45d7faf8a220bd7d5ae72db916b9438cb4291d13e948d6b4", "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": "weak-crypto", "owasp": "A02:2021", "cwe_ids": ["CWE-327"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347906+00:00", "triaged_in_corpus": 15, "observations_count": 303181, "ai_coder_pattern_id": 13}, "scanner": "repobility-threat-engine", "correlation_key": "fp|d757901dc5f50fec45d7faf8a220bd7d5ae72db916b9438cb4291d13e948d6b4"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/jboss.py"}, "region": {"startLine": 141}}}]}, {"ruleId": "MINED004", "level": "error", "message": {"text": "[MINED004] Weak Crypto: MD5/SHA1/DES/RC4 used for security context (not just checksums)."}, "properties": {"repobilityId": 49049, "scanner": "repobility-threat-engine", "fingerprint": "a66ea7174f5c6b603e9c810c5f742a7c35fb03c02f32145eeda6a8052dddf413", "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": "weak-crypto", "owasp": "A02:2021", "cwe_ids": ["CWE-327"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347906+00:00", "triaged_in_corpus": 15, "observations_count": 303181, "ai_coder_pattern_id": 13}, "scanner": "repobility-threat-engine", "correlation_key": "fp|a66ea7174f5c6b603e9c810c5f742a7c35fb03c02f32145eeda6a8052dddf413"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/iso_extract.py"}, "region": {"startLine": 199}}}]}, {"ruleId": "MINED004", "level": "error", "message": {"text": "[MINED004] Weak Crypto: MD5/SHA1/DES/RC4 used for security context (not just checksums)."}, "properties": {"repobilityId": 49048, "scanner": "repobility-threat-engine", "fingerprint": "34ddbd98b8b7e95a80f046b55d3fb3880be8e963184936f24a54dacb12dbe694", "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": "weak-crypto", "owasp": "A02:2021", "cwe_ids": ["CWE-327"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347906+00:00", "triaged_in_corpus": 15, "observations_count": 303181, "ai_coder_pattern_id": 13}, "scanner": "repobility-threat-engine", "correlation_key": "fp|34ddbd98b8b7e95a80f046b55d3fb3880be8e963184936f24a54dacb12dbe694"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/bitbucket_pipeline_known_host.py"}, "region": {"startLine": 131}}}]}, {"ruleId": "SEC078", "level": "error", "message": {"text": "[SEC078] Python: requests without timeout: requests.get/post without a timeout will hang indefinitely on a non-responsive server, causing thread exhaustion and ReDoS. Ported from bandit B113 (Apache-2.0). NOTE: this regex is heuristic; a real AST check is preferred for accuracy."}, "properties": {"repobilityId": 49034, "scanner": "repobility-threat-engine", "fingerprint": "b53bbefce9375a0b94723c486fe0b82c4a18069ec83c6653c63eb729f0c178c4", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "requests.post(", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC078", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|b53bbefce9375a0b94723c486fe0b82c4a18069ec83c6653c63eb729f0c178c4"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/circonus_annotation.py"}, "region": {"startLine": 180}}}]}, {"ruleId": "SEC078", "level": "error", "message": {"text": "[SEC078] Python: requests without timeout: requests.get/post without a timeout will hang indefinitely on a non-responsive server, causing thread exhaustion and ReDoS. Ported from bandit B113 (Apache-2.0). NOTE: this regex is heuristic; a real AST check is preferred for accuracy."}, "properties": {"repobilityId": 49033, "scanner": "repobility-threat-engine", "fingerprint": "ba3a669379cf31d1a49474641a3b7bf156d10737b8b0e3c52f703162974bdde1", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "requests.post(", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC078", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|ba3a669379cf31d1a49474641a3b7bf156d10737b8b0e3c52f703162974bdde1"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/module_utils/_gitlab.py"}, "region": {"startLine": 118}}}]}, {"ruleId": "SEC013", "level": "error", "message": {"text": "[SEC013] Path Traversal \u2014 User Input in File Path: User-controlled input used in file path without sanitization. Allows reading arbitrary files."}, "properties": {"repobilityId": 49027, "scanner": "repobility-threat-engine", "fingerprint": "dc618e02d04d81fb23ea4f2fcb4b4a6210a6994a520937e1f13d6c7b200534ef", "category": "path_traversal", "severity": "high", "confidence": 0.8, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "User-controlled input detected in file path construction", "evidence": {"match": "open(b_all_params", "reason": "User-controlled input detected in file path construction", "rule_id": "SEC013", "scanner": "repobility-threat-engine", "confidence": 0.8, "correlation_key": "code|path_traversal|token|142|sec013"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/lookup/cyberarkpassword.py"}, "region": {"startLine": 142}}}]}, {"ruleId": "MINED021", "level": "error", "message": {"text": "[MINED021] Path Traversal Os Join: os.path.join(user_dir, filename) where filename can contain \"../\" \u2014 directory escape."}, "properties": {"repobilityId": 49026, "scanner": "repobility-threat-engine", "fingerprint": "a273c12bae8dc273b0d4cf36102c3e305c52963d6d14771598c5d22f86e24ce7", "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": "path-traversal-os-join", "owasp": "A01:2021", "cwe_ids": ["CWE-22"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347947+00:00", "triaged_in_corpus": 15, "observations_count": 45678, "ai_coder_pattern_id": 31}, "scanner": "repobility-threat-engine", "correlation_key": "fp|a273c12bae8dc273b0d4cf36102c3e305c52963d6d14771598c5d22f86e24ce7"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/module_utils/_ssh.py"}, "region": {"startLine": 18}}}]}, {"ruleId": "MINED021", "level": "error", "message": {"text": "[MINED021] Path Traversal Os Join: os.path.join(user_dir, filename) where filename can contain \"../\" \u2014 directory escape."}, "properties": {"repobilityId": 49025, "scanner": "repobility-threat-engine", "fingerprint": "43e26b8781053653ffb6cdc74c2383deb8b54d21b3b219072c279cb8b5befad0", "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": "path-traversal-os-join", "owasp": "A01:2021", "cwe_ids": ["CWE-22"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347947+00:00", "triaged_in_corpus": 15, "observations_count": 45678, "ai_coder_pattern_id": 31}, "scanner": "repobility-threat-engine", "correlation_key": "fp|43e26b8781053653ffb6cdc74c2383deb8b54d21b3b219072c279cb8b5befad0"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/inventory/scaleway.py"}, "region": {"startLine": 320}}}]}, {"ruleId": "MINED021", "level": "error", "message": {"text": "[MINED021] Path Traversal Os Join: os.path.join(user_dir, filename) where filename can contain \"../\" \u2014 directory escape."}, "properties": {"repobilityId": 49024, "scanner": "repobility-threat-engine", "fingerprint": "472ff291ea410e6cdba648451f11ce6f8aa548576481a48b4e01768a6e47ac45", "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": "path-traversal-os-join", "owasp": "A01:2021", "cwe_ids": ["CWE-22"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347947+00:00", "triaged_in_corpus": 15, "observations_count": 45678, "ai_coder_pattern_id": 31}, "scanner": "repobility-threat-engine", "correlation_key": "fp|472ff291ea410e6cdba648451f11ce6f8aa548576481a48b4e01768a6e47ac45"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/inventory/opennebula.py"}, "region": {"startLine": 126}}}]}, {"ruleId": "MINED006", "level": "error", "message": {"text": "[MINED006] Overcatch Baseexception: except BaseException: ... \u2014 prevents Ctrl+C and SystemExit from working."}, "properties": {"repobilityId": 49014, "scanner": "repobility-threat-engine", "fingerprint": "c082ef7bd61c69b18304601e818bcacf1f2ef3b946f128b77047f8d589a2a6cd", "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": "overcatch-baseexception", "owasp": null, "cwe_ids": ["CWE-705"], "languages": ["python"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347911+00:00", "triaged_in_corpus": 15, "observations_count": 230624, "ai_coder_pattern_id": 8}, "scanner": "repobility-threat-engine", "correlation_key": "fp|c082ef7bd61c69b18304601e818bcacf1f2ef3b946f128b77047f8d589a2a6cd"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/vertica_info.py"}, "region": {"startLine": 295}}}]}, {"ruleId": "MINED006", "level": "error", "message": {"text": "[MINED006] Overcatch Baseexception: except BaseException: ... \u2014 prevents Ctrl+C and SystemExit from working."}, "properties": {"repobilityId": 49013, "scanner": "repobility-threat-engine", "fingerprint": "f8818ad897aa63cd99d792907d7136579eb7ddb7225451f82b493d486dcb1e98", "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": "overcatch-baseexception", "owasp": null, "cwe_ids": ["CWE-705"], "languages": ["python"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347911+00:00", "triaged_in_corpus": 15, "observations_count": 230624, "ai_coder_pattern_id": 8}, "scanner": "repobility-threat-engine", "correlation_key": "fp|f8818ad897aa63cd99d792907d7136579eb7ddb7225451f82b493d486dcb1e98"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/vertica_configuration.py"}, "region": {"startLine": 191}}}]}, {"ruleId": "MINED006", "level": "error", "message": {"text": "[MINED006] Overcatch Baseexception: except BaseException: ... \u2014 prevents Ctrl+C and SystemExit from working."}, "properties": {"repobilityId": 49012, "scanner": "repobility-threat-engine", "fingerprint": "baf9d90aa655bd8fc44f23415a7c217aa03e3f6e24bddfff10f7bba2ce8648b5", "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": "overcatch-baseexception", "owasp": null, "cwe_ids": ["CWE-705"], "languages": ["python"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347911+00:00", "triaged_in_corpus": 15, "observations_count": 230624, "ai_coder_pattern_id": 8}, "scanner": "repobility-threat-engine", "correlation_key": "fp|baf9d90aa655bd8fc44f23415a7c217aa03e3f6e24bddfff10f7bba2ce8648b5"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/callback/logentries.py"}, "region": {"startLine": 164}}}]}, {"ruleId": "SEC128", "level": "error", "message": {"text": "[SEC128] Async function without await \u2014 fire-and-forget Promise (AI mistake): Async call invoked without `await` returns an unhandled Promise. The outer function resolves before the inner work completes \u2014 DB writes lost, emails not sent, race conditions. This is one of the top-3 errors AI coders make: they understand async-shape but drop the await keyword when chaining multiple ops. Surfaces as flaky tests or silently dropped data in production."}, "properties": {"repobilityId": 49000, "scanner": "repobility-threat-engine", "fingerprint": "b27c0381d45d40b016f65cbc9f9ff608ce4835e6c1ea906ad3050c9407102430", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "self.delete(key)", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC128", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|b27c0381d45d40b016f65cbc9f9ff608ce4835e6c1ea906ad3050c9407102430"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/cache/redis.py"}, "region": {"startLine": 187}}}]}, {"ruleId": "SEC128", "level": "error", "message": {"text": "[SEC128] Async function without await \u2014 fire-and-forget Promise (AI mistake): Async call invoked without `await` returns an unhandled Promise. The outer function resolves before the inner work completes \u2014 DB writes lost, emails not sent, race conditions. This is one of the top-3 errors AI coders make: they understand async-shape but drop the await keyword when chaining multiple ops. Surfaces as flaky tests or silently dropped data in production."}, "properties": {"repobilityId": 48999, "scanner": "repobility-threat-engine", "fingerprint": "a6ce651704e27573b8acdac8c59965aa509186207bd6fa1b3d846bdd4dec3619", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "self.delete(key)", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC128", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|a6ce651704e27573b8acdac8c59965aa509186207bd6fa1b3d846bdd4dec3619"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/cache/memcached.py"}, "region": {"startLine": 208}}}]}, {"ruleId": "SEC128", "level": "error", "message": {"text": "[SEC128] Async function without await \u2014 fire-and-forget Promise (AI mistake): Async call invoked without `await` returns an unhandled Promise. The outer function resolves before the inner work completes \u2014 DB writes lost, emails not sent, race conditions. This is one of the top-3 errors AI coders make: they understand async-shape but drop the await keyword when chaining multiple ops. Surfaces as flaky tests or silently dropped data in production."}, "properties": {"repobilityId": 48998, "scanner": "repobility-threat-engine", "fingerprint": "d7082c5206fcdc90d2e41bc4dda436fcf8630a83d60d82ab1bd7b9977983eed9", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "shutdown_result.update(\n                    self._low_level_execute_command(shutdown", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC128", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|d7082c5206fcdc90d2e41bc4dda436fcf8630a83d60d82ab1bd7b9977983eed9"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/action/shutdown.py"}, "region": {"startLine": 175}}}]}, {"ruleId": "COMP001", "level": "error", "message": {"text": "[COMP001] High cognitive complexity: Function `run` has cognitive complexity 65 (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: and=1, break=1, continue=1, elif=1, else=1, except=2, for=3, if=13, nested_bonus=41, recursion=1."}, "properties": {"repobilityId": 48994, "scanner": "repobility-threat-engine", "fingerprint": "0dd5fead57d8c9fc341f415788b0157e60af77e909ade1a7b404b900c0279cbe", "category": "quality", "severity": "high", "confidence": 0.95, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "AST-derived cognitive complexity score = 65 (severity threshold for high: 25+).", "evidence": {"scanner": "repobility-threat-engine", "function": "run", "breakdown": {"if": 13, "and": 1, "for": 3, "elif": 1, "else": 1, "break": 1, "except": 2, "continue": 1, "recursion": 1, "nested_bonus": 41}, "complexity": 65, "correlation_key": "fp|0dd5fead57d8c9fc341f415788b0157e60af77e909ade1a7b404b900c0279cbe"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/action/iptables_state.py"}, "region": {"startLine": 87}}}]}, {"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": 48988, "scanner": "repobility-threat-engine", "fingerprint": "20f11262b4c0147590462e182eeb170f019a7c2142ac7ac2778a45e5ffe0e5ee", "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|20f11262b4c0147590462e182eeb170f019a7c2142ac7ac2778a45e5ffe0e5ee"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/cache/redis.py"}, "region": {"startLine": 166}}}]}, {"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": 48987, "scanner": "repobility-threat-engine", "fingerprint": "cd989c05acc4c4a3a35fd02fb584750ad582a9128160bdb27215b649b3b9f08a", "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|cd989c05acc4c4a3a35fd02fb584750ad582a9128160bdb27215b649b3b9f08a"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/action/shutdown.py"}, "region": {"startLine": 28}}}]}, {"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": 48986, "scanner": "repobility-threat-engine", "fingerprint": "01e2827ebd2d836254f54c8a1909ac6244a07ee67c79c57819cd9b37fc8b06f5", "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|01e2827ebd2d836254f54c8a1909ac6244a07ee67c79c57819cd9b37fc8b06f5"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/action/iptables_state.py"}, "region": {"startLine": 170}}}]}, {"ruleId": "MINED040", "level": "error", "message": {"text": "[MINED040] Python Yaml Load Unsafe: yaml.load(stream) without SafeLoader can deserialize arbitrary classes."}, "properties": {"repobilityId": 48985, "scanner": "repobility-threat-engine", "fingerprint": "0e1c2864a37df712ac68e993928d9a901ee0ab1d17f707a96da9887eea72792a", "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": "python-yaml-load-unsafe", "owasp": null, "cwe_ids": ["CWE-502"], "languages": ["python"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347991+00:00", "triaged_in_corpus": 15, "observations_count": 1487, "ai_coder_pattern_id": 120}, "scanner": "repobility-threat-engine", "correlation_key": "fp|0e1c2864a37df712ac68e993928d9a901ee0ab1d17f707a96da9887eea72792a"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/docsite/reformat-yaml.py"}, "region": {"startLine": 17}}}]}, {"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": 48977, "scanner": "repobility-threat-engine", "fingerprint": "7ec3d16b462ef1dbded8fe6f7746c9f23145afe44a56682090b451bdadc00294", "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|7ec3d16b462ef1dbded8fe6f7746c9f23145afe44a56682090b451bdadc00294"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/callback/nrdp.py"}, "region": {"startLine": 145}}}]}, {"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": 48976, "scanner": "repobility-threat-engine", "fingerprint": "799bfab7a8dd1256ce95bf9ec65284f341b7fef9f6c5370a97faf4035daa59bf", "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|799bfab7a8dd1256ce95bf9ec65284f341b7fef9f6c5370a97faf4035daa59bf"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/callback/loganalytics.py"}, "region": {"startLine": 96}}}]}, {"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": 48975, "scanner": "repobility-threat-engine", "fingerprint": "3636c6a743328471d720bb965a1e744b71b834c4d46f039806a62153ed13fb87", "category": "ssrf", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "urllib.request.urlopen(u", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC029", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|3636c6a743328471d720bb965a1e744b71b834c4d46f039806a62153ed13fb87"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".azure-pipelines/scripts/publish-codecov.py"}, "region": {"startLine": 88}}}]}, {"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": 48973, "scanner": "repobility-threat-engine", "fingerprint": "d186a2748cefbf4df5efa09abaec4f06bb86076c25b51435c1ac53dcb53adc52", "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\"LOGICAL VOLUME:\\s+(\\w+)", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC103", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "code|injection|plugins/modules/aix_lvol.py|166|sec103"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/aix_lvol.py"}, "region": {"startLine": 166}}}]}, {"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": 48972, "scanner": "repobility-threat-engine", "fingerprint": "71a45eeefcefcc36d58532df2ee0fd437c5a512ddfc2cd22e3f70f8ccae00390", "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\"\\d+(?:ns|us|ms|s|m|h)", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC103", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "code|injection|token|86|sec103"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/module_utils/_consul.py"}, "region": {"startLine": 86}}}]}, {"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": 48971, "scanner": "repobility-threat-engine", "fingerprint": "7b8038c72732b88cb2173bba39478d409a18bee7bc72dd58a0285140673f9cd9", "category": "injection", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": ".search(\"^Coverage (?P<attempt>[0-9]+)", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC103", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "code|injection|. token|40|sec103"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".azure-pipelines/scripts/combine-coverage.py"}, "region": {"startLine": 40}}}]}, {"ruleId": "MINED134", "level": "error", "message": {"text": "Binary file `tests/integration/targets/connection_wsl/files/wsl.exe` committed in source repo"}, "properties": {"repobilityId": 48969, "scanner": "repobility-supply-chain", "fingerprint": "e4963b392a7533ce6f7baafe8fe29de39c79dfc9b4676c8bf569ff49125b5d42", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "suspicious-binary-in-src", "owasp": null, "cwe_ids": ["CWE-506"], "languages": ["any"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|e4963b392a7533ce6f7baafe8fe29de39c79dfc9b4676c8bf569ff49125b5d42"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/connection_wsl/files/wsl.exe"}, "region": {"startLine": 1}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "Action `felixfontein/ansible-test-gh-action` pinned to mutable ref `@main`"}, "properties": {"repobilityId": 48963, "scanner": "repobility-supply-chain", "fingerprint": "f5dc4e7ff7a663eeb522a1729c47335ef89c501bc1d9ecf05242554dc07b48a6", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|f5dc4e7ff7a663eeb522a1729c47335ef89c501bc1d9ecf05242554dc07b48a6"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ansible-test.yml"}, "region": {"startLine": 153}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "Action `felixfontein/ansible-test-gh-action` pinned to mutable ref `@main`"}, "properties": {"repobilityId": 48962, "scanner": "repobility-supply-chain", "fingerprint": "73a1b7506e5689e551dcf4c060143100317b141d27035de2bed63e2a64cea7cf", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|73a1b7506e5689e551dcf4c060143100317b141d27035de2bed63e2a64cea7cf"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ansible-test.yml"}, "region": {"startLine": 71}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "Action `felixfontein/ansible-test-gh-action` pinned to mutable ref `@main`"}, "properties": {"repobilityId": 48961, "scanner": "repobility-supply-chain", "fingerprint": "d3784199ea50124ebe0dfe55a517eed2476d210ee81292318b15beeb9fb37d60", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|d3784199ea50124ebe0dfe55a517eed2476d210ee81292318b15beeb9fb37d60"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ansible-test.yml"}, "region": {"startLine": 36}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "Action `ansible-community/antsibull-nox` pinned to mutable ref `@main`"}, "properties": {"repobilityId": 48960, "scanner": "repobility-supply-chain", "fingerprint": "021eca620c976068f6afe3bf5af59836ca3ae52e0cc5b98d4aefd19ac0c00aa7", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|021eca620c976068f6afe3bf5af59836ca3ae52e0cc5b98d4aefd19ac0c00aa7"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/docs.yml"}, "region": {"startLine": 32}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "Action `actions/checkout` pinned to mutable ref `@v6`"}, "properties": {"repobilityId": 48959, "scanner": "repobility-supply-chain", "fingerprint": "5bb49369ca1603c6b0b492dd8d711ba99e7d1fbe4fd50bfa367f0eabdb1d187f", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|5bb49369ca1603c6b0b492dd8d711ba99e7d1fbe4fd50bfa367f0eabdb1d187f"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/docs.yml"}, "region": {"startLine": 28}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "Action `ansible-community/antsibull-nox` pinned to mutable ref `@main`"}, "properties": {"repobilityId": 48958, "scanner": "repobility-supply-chain", "fingerprint": "7d14b465addf27dd8cdf186acbfc23d7d496f7f91f128650f0635bce31841fc4", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|7d14b465addf27dd8cdf186acbfc23d7d496f7f91f128650f0635bce31841fc4"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/nox.yml"}, "region": {"startLine": 28}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "Action `actions/checkout` pinned to mutable ref `@v6`"}, "properties": {"repobilityId": 48957, "scanner": "repobility-supply-chain", "fingerprint": "c973ccd401731a8bd96f6d0d3401956ef5a50903e2f0be5bbde4fa83fadc69b6", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|c973ccd401731a8bd96f6d0d3401956ef5a50903e2f0be5bbde4fa83fadc69b6"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/nox.yml"}, "region": {"startLine": 24}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "Action `github/codeql-action/analyze` pinned to mutable ref `@v4`"}, "properties": {"repobilityId": 48956, "scanner": "repobility-supply-chain", "fingerprint": "6ff2066f7fb417a1340948f3242eb17da579878051de402b0c8423c0cad24fdf", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|6ff2066f7fb417a1340948f3242eb17da579878051de402b0c8423c0cad24fdf"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/codeql-analysis.yml"}, "region": {"startLine": 38}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "Action `github/codeql-action/init` pinned to mutable ref `@v4`"}, "properties": {"repobilityId": 48955, "scanner": "repobility-supply-chain", "fingerprint": "ae2b3fc5943fb6499912bb7cf448097a2be750d392b49bfec105e389dd4605fe", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|ae2b3fc5943fb6499912bb7cf448097a2be750d392b49bfec105e389dd4605fe"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/codeql-analysis.yml"}, "region": {"startLine": 33}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "Action `actions/checkout` pinned to mutable ref `@v6`"}, "properties": {"repobilityId": 48954, "scanner": "repobility-supply-chain", "fingerprint": "0f0cc06bf2320105356b071e5b0e96adcba2d7506f98f6c661a5da078b6997a7", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|0f0cc06bf2320105356b071e5b0e96adcba2d7506f98f6c661a5da078b6997a7"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/codeql-analysis.yml"}, "region": {"startLine": 27}}}]}, {"ruleId": "MINED112", "level": "error", "message": {"text": "FastAPI PATCH ansible_collections.community.general.plugins.module_utils._lxca_common.setup_conn has no auth"}, "properties": {"repobilityId": 48934, "scanner": "repobility-route-auth", "fingerprint": "d3402e698ccebcbc9764c795a6f2b03ba41069102dc52e16b344e2a1679e8888", "category": "quality", "severity": "high", "confidence": 0.8, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "fastapi-destructive-unauth", "owasp": "A01:2021", "cwe_ids": ["CWE-306", "CWE-862"], "languages": ["python", "javascript"], "observations_count": 10455}, "scanner": "repobility-route-auth", "correlation_key": "fp|d3402e698ccebcbc9764c795a6f2b03ba41069102dc52e16b344e2a1679e8888"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_lxca_nodes.py"}, "region": {"startLine": 104}}}]}, {"ruleId": "MINED112", "level": "error", "message": {"text": "FastAPI PATCH ansible_collections.community.general.plugins.module_utils._lxca_common.setup_conn has no auth"}, "properties": {"repobilityId": 48933, "scanner": "repobility-route-auth", "fingerprint": "3ce9bbfb0455d5682fc3476ea5ac61323c852ae2c38e6442753af552e0d73110", "category": "quality", "severity": "high", "confidence": 0.8, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "fastapi-destructive-unauth", "owasp": "A01:2021", "cwe_ids": ["CWE-306", "CWE-862"], "languages": ["python", "javascript"], "observations_count": 10455}, "scanner": "repobility-route-auth", "correlation_key": "fp|3ce9bbfb0455d5682fc3476ea5ac61323c852ae2c38e6442753af552e0d73110"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_lxca_nodes.py"}, "region": {"startLine": 67}}}]}, {"ruleId": "MINED112", "level": "error", "message": {"text": "FastAPI PATCH ansible_collections.community.general.plugins.module_utils._lxca_common.setup_conn has no auth"}, "properties": {"repobilityId": 48932, "scanner": "repobility-route-auth", "fingerprint": "6fb55ecb142d45a523f4cd1fc1170dd562e4c3877012e40dc801b5527b42e218", "category": "quality", "severity": "high", "confidence": 0.8, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "fastapi-destructive-unauth", "owasp": "A01:2021", "cwe_ids": ["CWE-306", "CWE-862"], "languages": ["python", "javascript"], "observations_count": 10455}, "scanner": "repobility-route-auth", "correlation_key": "fp|6fb55ecb142d45a523f4cd1fc1170dd562e4c3877012e40dc801b5527b42e218"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_lxca_nodes.py"}, "region": {"startLine": 50}}}]}, {"ruleId": "MINED112", "level": "error", "message": {"text": "FastAPI PATCH ansible_collections.community.general.plugins.module_utils._lxca_common.close_conn has no auth"}, "properties": {"repobilityId": 48931, "scanner": "repobility-route-auth", "fingerprint": "260cc0cda586624bb968a8ef2a1d4ef1a483fe69cfc8908889360f12074591c8", "category": "quality", "severity": "high", "confidence": 0.8, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "fastapi-destructive-unauth", "owasp": "A01:2021", "cwe_ids": ["CWE-306", "CWE-862"], "languages": ["python", "javascript"], "observations_count": 10455}, "scanner": "repobility-route-auth", "correlation_key": "fp|260cc0cda586624bb968a8ef2a1d4ef1a483fe69cfc8908889360f12074591c8"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_lxca_nodes.py"}, "region": {"startLine": 20}}}]}, {"ruleId": "MINED112", "level": "error", "message": {"text": "FastAPI PATCH ansible_collections.community.general.plugins.modules.apk.AnsibleModule has no auth"}, "properties": {"repobilityId": 48930, "scanner": "repobility-route-auth", "fingerprint": "a77e6a0a959f270750f0f61940847023e99fcba6ecaab8affc673bf7f7f8aa9b", "category": "quality", "severity": "high", "confidence": 0.8, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "fastapi-destructive-unauth", "owasp": "A01:2021", "cwe_ids": ["CWE-306", "CWE-862"], "languages": ["python", "javascript"], "observations_count": 10455}, "scanner": "repobility-route-auth", "correlation_key": "fp|a77e6a0a959f270750f0f61940847023e99fcba6ecaab8affc673bf7f7f8aa9b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_apk.py"}, "region": {"startLine": 30}}}]}, {"ruleId": "MINED112", "level": "error", "message": {"text": "FastAPI PATCH ansible_collections.community.general.plugins.modules.apk.AnsibleModule has no auth"}, "properties": {"repobilityId": 48929, "scanner": "repobility-route-auth", "fingerprint": "4db59777c64d1a6422f3b52ad16a79b6e6ee62d37ef8f28807e61057db663a8b", "category": "quality", "severity": "high", "confidence": 0.8, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "fastapi-destructive-unauth", "owasp": "A01:2021", "cwe_ids": ["CWE-306", "CWE-862"], "languages": ["python", "javascript"], "observations_count": 10455}, "scanner": "repobility-route-auth", "correlation_key": "fp|4db59777c64d1a6422f3b52ad16a79b6e6ee62d37ef8f28807e61057db663a8b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_apk.py"}, "region": {"startLine": 21}}}]}, {"ruleId": "MINED112", "level": "error", "message": {"text": "FastAPI PATCH ansible_collections.community.general.plugins.module_utils._lxca_common.setup_conn has no auth"}, "properties": {"repobilityId": 48928, "scanner": "repobility-route-auth", "fingerprint": "a8d24affc998259563a9523baffa6b3218de2e9bd4a1ccd2b841201a58fef593", "category": "quality", "severity": "high", "confidence": 0.8, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "fastapi-destructive-unauth", "owasp": "A01:2021", "cwe_ids": ["CWE-306", "CWE-862"], "languages": ["python", "javascript"], "observations_count": 10455}, "scanner": "repobility-route-auth", "correlation_key": "fp|a8d24affc998259563a9523baffa6b3218de2e9bd4a1ccd2b841201a58fef593"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_lxca_cmms.py"}, "region": {"startLine": 95}}}]}, {"ruleId": "MINED112", "level": "error", "message": {"text": "FastAPI PATCH ansible_collections.community.general.plugins.module_utils._lxca_common.setup_conn has no auth"}, "properties": {"repobilityId": 48927, "scanner": "repobility-route-auth", "fingerprint": "89fc4a66f4f83b21a284cb8ccceedc4a106ab7e0aeabbdc7decfd6bd547ad3ef", "category": "quality", "severity": "high", "confidence": 0.8, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "fastapi-destructive-unauth", "owasp": "A01:2021", "cwe_ids": ["CWE-306", "CWE-862"], "languages": ["python", "javascript"], "observations_count": 10455}, "scanner": "repobility-route-auth", "correlation_key": "fp|89fc4a66f4f83b21a284cb8ccceedc4a106ab7e0aeabbdc7decfd6bd547ad3ef"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_lxca_cmms.py"}, "region": {"startLine": 67}}}]}, {"ruleId": "MINED112", "level": "error", "message": {"text": "FastAPI PATCH ansible_collections.community.general.plugins.module_utils._lxca_common.setup_conn has no auth"}, "properties": {"repobilityId": 48926, "scanner": "repobility-route-auth", "fingerprint": "89603084c964253388beccab76905a8c5d64fc505790a2b2dd8dc4bfba5585b8", "category": "quality", "severity": "high", "confidence": 0.8, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "fastapi-destructive-unauth", "owasp": "A01:2021", "cwe_ids": ["CWE-306", "CWE-862"], "languages": ["python", "javascript"], "observations_count": 10455}, "scanner": "repobility-route-auth", "correlation_key": "fp|89603084c964253388beccab76905a8c5d64fc505790a2b2dd8dc4bfba5585b8"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_lxca_cmms.py"}, "region": {"startLine": 50}}}]}, {"ruleId": "MINED112", "level": "error", "message": {"text": "FastAPI PATCH ansible_collections.community.general.plugins.module_utils._lxca_common.close_conn has no auth"}, "properties": {"repobilityId": 48925, "scanner": "repobility-route-auth", "fingerprint": "d377203cea86016ce3fda74acdf510f622d276715a2a13fac228880afd478ea6", "category": "quality", "severity": "high", "confidence": 0.8, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "fastapi-destructive-unauth", "owasp": "A01:2021", "cwe_ids": ["CWE-306", "CWE-862"], "languages": ["python", "javascript"], "observations_count": 10455}, "scanner": "repobility-route-auth", "correlation_key": "fp|d377203cea86016ce3fda74acdf510f622d276715a2a13fac228880afd478ea6"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_lxca_cmms.py"}, "region": {"startLine": 20}}}]}, {"ruleId": "MINED112", "level": "error", "message": {"text": "FastAPI PATCH ansible_collections.community.general.plugins.modules.pkgin.AnsibleModule has no auth"}, "properties": {"repobilityId": 48924, "scanner": "repobility-route-auth", "fingerprint": "4b2502c411efac5812625d060e72050de280253f95a16a7883d3e97c0318da12", "category": "quality", "severity": "high", "confidence": 0.8, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "fastapi-destructive-unauth", "owasp": "A01:2021", "cwe_ids": ["CWE-306", "CWE-862"], "languages": ["python", "javascript"], "observations_count": 10455}, "scanner": "repobility-route-auth", "correlation_key": "fp|4b2502c411efac5812625d060e72050de280253f95a16a7883d3e97c0318da12"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_pkgin.py"}, "region": {"startLine": 134}}}]}, {"ruleId": "MINED112", "level": "error", "message": {"text": "FastAPI PATCH ansible_collections.community.general.plugins.modules.pkgin.AnsibleModule has no auth"}, "properties": {"repobilityId": 48923, "scanner": "repobility-route-auth", "fingerprint": "0ee2f2ce33210c6122ad1d31710a8a42b36f87587377c2fe4d9e87f727de7122", "category": "quality", "severity": "high", "confidence": 0.8, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "fastapi-destructive-unauth", "owasp": "A01:2021", "cwe_ids": ["CWE-306", "CWE-862"], "languages": ["python", "javascript"], "observations_count": 10455}, "scanner": "repobility-route-auth", "correlation_key": "fp|0ee2f2ce33210c6122ad1d31710a8a42b36f87587377c2fe4d9e87f727de7122"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_pkgin.py"}, "region": {"startLine": 118}}}]}, {"ruleId": "MINED112", "level": "error", "message": {"text": "FastAPI PATCH ansible_collections.community.general.plugins.modules.pkgin.AnsibleModule has no auth"}, "properties": {"repobilityId": 48922, "scanner": "repobility-route-auth", "fingerprint": "ee87a698fc4080ee42093d1925dbef9466874348635d37532be5e997b63fe5ca", "category": "quality", "severity": "high", "confidence": 0.8, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "fastapi-destructive-unauth", "owasp": "A01:2021", "cwe_ids": ["CWE-306", "CWE-862"], "languages": ["python", "javascript"], "observations_count": 10455}, "scanner": "repobility-route-auth", "correlation_key": "fp|ee87a698fc4080ee42093d1925dbef9466874348635d37532be5e997b63fe5ca"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_pkgin.py"}, "region": {"startLine": 102}}}]}, {"ruleId": "MINED112", "level": "error", "message": {"text": "FastAPI PATCH ansible_collections.community.general.plugins.modules.pkgin.AnsibleModule has no auth"}, "properties": {"repobilityId": 48921, "scanner": "repobility-route-auth", "fingerprint": "2a6d1c94f1ef0fdd9691c7ff9073eec9cdf839aba5451fd5e7e2e9a2ca2b4b2b", "category": "quality", "severity": "high", "confidence": 0.8, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "fastapi-destructive-unauth", "owasp": "A01:2021", "cwe_ids": ["CWE-306", "CWE-862"], "languages": ["python", "javascript"], "observations_count": 10455}, "scanner": "repobility-route-auth", "correlation_key": "fp|2a6d1c94f1ef0fdd9691c7ff9073eec9cdf839aba5451fd5e7e2e9a2ca2b4b2b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_pkgin.py"}, "region": {"startLine": 86}}}]}, {"ruleId": "MINED112", "level": "error", "message": {"text": "FastAPI PATCH ansible_collections.community.general.plugins.modules.pkgin.AnsibleModule has no auth"}, "properties": {"repobilityId": 48920, "scanner": "repobility-route-auth", "fingerprint": "b32580b242670a2528dc4510629ecd6dc1efe649085ea93dca8c64beea78d809", "category": "quality", "severity": "high", "confidence": 0.8, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "fastapi-destructive-unauth", "owasp": "A01:2021", "cwe_ids": ["CWE-306", "CWE-862"], "languages": ["python", "javascript"], "observations_count": 10455}, "scanner": "repobility-route-auth", "correlation_key": "fp|b32580b242670a2528dc4510629ecd6dc1efe649085ea93dca8c64beea78d809"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_pkgin.py"}, "region": {"startLine": 70}}}]}, {"ruleId": "MINED112", "level": "error", "message": {"text": "FastAPI PATCH ansible_collections.community.general.plugins.modules.pkgin.AnsibleModule has no auth"}, "properties": {"repobilityId": 48919, "scanner": "repobility-route-auth", "fingerprint": "a192ca3530ae0792d892e584f51f8ad867345f40a30531de425dfa36cf22c0cd", "category": "quality", "severity": "high", "confidence": 0.8, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "fastapi-destructive-unauth", "owasp": "A01:2021", "cwe_ids": ["CWE-306", "CWE-862"], "languages": ["python", "javascript"], "observations_count": 10455}, "scanner": "repobility-route-auth", "correlation_key": "fp|a192ca3530ae0792d892e584f51f8ad867345f40a30531de425dfa36cf22c0cd"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_pkgin.py"}, "region": {"startLine": 50}}}]}, {"ruleId": "MINED112", "level": "error", "message": {"text": "FastAPI PATCH ansible_collections.community.general.plugins.modules.pkgin.AnsibleModule has no auth"}, "properties": {"repobilityId": 48918, "scanner": "repobility-route-auth", "fingerprint": "2f89b431acfabd5caea292c9bd11b77a07355ab887cdfa81ee256ba43b009d71", "category": "quality", "severity": "high", "confidence": 0.8, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "fastapi-destructive-unauth", "owasp": "A01:2021", "cwe_ids": ["CWE-306", "CWE-862"], "languages": ["python", "javascript"], "observations_count": 10455}, "scanner": "repobility-route-auth", "correlation_key": "fp|2f89b431acfabd5caea292c9bd11b77a07355ab887cdfa81ee256ba43b009d71"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_pkgin.py"}, "region": {"startLine": 34}}}]}, {"ruleId": "MINED112", "level": "error", "message": {"text": "FastAPI PATCH ansible_collections.community.general.plugins.modules.pkgin.AnsibleModule has no auth"}, "properties": {"repobilityId": 48917, "scanner": "repobility-route-auth", "fingerprint": "600176518f16aebb7a25a9b3505b6f88d87c2d4774ec7bb5fe6dff6b5a52762c", "category": "quality", "severity": "high", "confidence": 0.8, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "fastapi-destructive-unauth", "owasp": "A01:2021", "cwe_ids": ["CWE-306", "CWE-862"], "languages": ["python", "javascript"], "observations_count": 10455}, "scanner": "repobility-route-auth", "correlation_key": "fp|600176518f16aebb7a25a9b3505b6f88d87c2d4774ec7bb5fe6dff6b5a52762c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_pkgin.py"}, "region": {"startLine": 18}}}]}, {"ruleId": "MINED112", "level": "error", "message": {"text": "FastAPI PATCH ansible_collections.community.general.plugins.modules.ss_3par_cpg.client has no auth"}, "properties": {"repobilityId": 48916, "scanner": "repobility-route-auth", "fingerprint": "dfd62e7bf088ee89af31371e0c4b5b6d30e625fefbb2df6cf104b809964b1953", "category": "quality", "severity": "high", "confidence": 0.8, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "fastapi-destructive-unauth", "owasp": "A01:2021", "cwe_ids": ["CWE-306", "CWE-862"], "languages": ["python", "javascript"], "observations_count": 10455}, "scanner": "repobility-route-auth", "correlation_key": "fp|dfd62e7bf088ee89af31371e0c4b5b6d30e625fefbb2df6cf104b809964b1953"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_ss_3par_cpg.py"}, "region": {"startLine": 230}}}]}, {"ruleId": "MINED112", "level": "error", "message": {"text": "FastAPI PATCH ansible_collections.community.general.plugins.modules.ss_3par_cpg.client has no auth"}, "properties": {"repobilityId": 48915, "scanner": "repobility-route-auth", "fingerprint": "060c24aff3010509a6877eeba97c2048e10bbd2b4356a8e1970246f8a3923b87", "category": "quality", "severity": "high", "confidence": 0.8, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "fastapi-destructive-unauth", "owasp": "A01:2021", "cwe_ids": ["CWE-306", "CWE-862"], "languages": ["python", "javascript"], "observations_count": 10455}, "scanner": "repobility-route-auth", "correlation_key": "fp|060c24aff3010509a6877eeba97c2048e10bbd2b4356a8e1970246f8a3923b87"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_ss_3par_cpg.py"}, "region": {"startLine": 178}}}]}, {"ruleId": "MINED112", "level": "error", "message": {"text": "FastAPI PATCH ansible_collections.community.general.plugins.modules.ss_3par_cpg.client has no auth"}, "properties": {"repobilityId": 48914, "scanner": "repobility-route-auth", "fingerprint": "1e6b80eea01b205e73ab08daa7b4b554c52d83d91083830f3d3bad209e3eb4fc", "category": "quality", "severity": "high", "confidence": 0.8, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "fastapi-destructive-unauth", "owasp": "A01:2021", "cwe_ids": ["CWE-306", "CWE-862"], "languages": ["python", "javascript"], "observations_count": 10455}, "scanner": "repobility-route-auth", "correlation_key": "fp|1e6b80eea01b205e73ab08daa7b4b554c52d83d91083830f3d3bad209e3eb4fc"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_ss_3par_cpg.py"}, "region": {"startLine": 165}}}]}, {"ruleId": "MINED112", "level": "error", "message": {"text": "FastAPI PATCH ansible_collections.community.general.plugins.modules.ss_3par_cpg.client has no auth"}, "properties": {"repobilityId": 48913, "scanner": "repobility-route-auth", "fingerprint": "ddbb9a384516f8fd2bc8cbbdb1c5630df4dd578d3d16f8164be5dcca4d3808a7", "category": "quality", "severity": "high", "confidence": 0.8, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "fastapi-destructive-unauth", "owasp": "A01:2021", "cwe_ids": ["CWE-306", "CWE-862"], "languages": ["python", "javascript"], "observations_count": 10455}, "scanner": "repobility-route-auth", "correlation_key": "fp|ddbb9a384516f8fd2bc8cbbdb1c5630df4dd578d3d16f8164be5dcca4d3808a7"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_ss_3par_cpg.py"}, "region": {"startLine": 146}}}]}, {"ruleId": "MINED112", "level": "error", "message": {"text": "FastAPI PATCH ansible_collections.community.general.plugins.modules.ss_3par_cpg.client has no auth"}, "properties": {"repobilityId": 48912, "scanner": "repobility-route-auth", "fingerprint": "7906cb8ca68b9ef56ff4dcacacb83ed8f907733c20481386ce630d1c9f484542", "category": "quality", "severity": "high", "confidence": 0.8, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "fastapi-destructive-unauth", "owasp": "A01:2021", "cwe_ids": ["CWE-306", "CWE-862"], "languages": ["python", "javascript"], "observations_count": 10455}, "scanner": "repobility-route-auth", "correlation_key": "fp|7906cb8ca68b9ef56ff4dcacacb83ed8f907733c20481386ce630d1c9f484542"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_ss_3par_cpg.py"}, "region": {"startLine": 98}}}]}, {"ruleId": "MINED112", "level": "error", "message": {"text": "FastAPI PATCH ansible_collections.community.general.plugins.modules.ss_3par_cpg.client has no auth"}, "properties": {"repobilityId": 48911, "scanner": "repobility-route-auth", "fingerprint": "0f6ee5c4678a22cbebccc3b0479caefb306ea975bbddf973c378cf6490bf8516", "category": "quality", "severity": "high", "confidence": 0.8, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "fastapi-destructive-unauth", "owasp": "A01:2021", "cwe_ids": ["CWE-306", "CWE-862"], "languages": ["python", "javascript"], "observations_count": 10455}, "scanner": "repobility-route-auth", "correlation_key": "fp|0f6ee5c4678a22cbebccc3b0479caefb306ea975bbddf973c378cf6490bf8516"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_ss_3par_cpg.py"}, "region": {"startLine": 58}}}]}, {"ruleId": "MINED112", "level": "error", "message": {"text": "FastAPI PATCH ansible_collections.community.general.plugins.modules.ss_3par_cpg.client has no auth"}, "properties": {"repobilityId": 48910, "scanner": "repobility-route-auth", "fingerprint": "dd9d75df35cceb4f6ee438500dbaec45d3fb97566fdc262e3419e0ab65e71dbc", "category": "quality", "severity": "high", "confidence": 0.8, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "fastapi-destructive-unauth", "owasp": "A01:2021", "cwe_ids": ["CWE-306", "CWE-862"], "languages": ["python", "javascript"], "observations_count": 10455}, "scanner": "repobility-route-auth", "correlation_key": "fp|dd9d75df35cceb4f6ee438500dbaec45d3fb97566fdc262e3419e0ab65e71dbc"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_ss_3par_cpg.py"}, "region": {"startLine": 21}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "Phantom test coverage: test_should_get_all_enets"}, "properties": {"repobilityId": 48873, "scanner": "repobility-ast-engine", "fingerprint": "26f279fcfb991f5cc003ab72be001910914582a5abcf217bd65a3dd7748af098", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "phantom-test-coverage", "owasp": null, "cwe_ids": ["CWE-1126"], "languages": ["python"], "observations_count": 982154}, "scanner": "repobility-ast-engine", "correlation_key": "fp|26f279fcfb991f5cc003ab72be001910914582a5abcf217bd65a3dd7748af098"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_oneview_ethernet_network_info.py"}, "region": {"startLine": 53}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "Phantom test coverage: test_should_get_fcoe_network_by_name"}, "properties": {"repobilityId": 48872, "scanner": "repobility-ast-engine", "fingerprint": "ca973c2babe66adbfe1c5cc7a0c625ad457b38737d3066090bbd44afb822cf7c", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "phantom-test-coverage", "owasp": null, "cwe_ids": ["CWE-1126"], "languages": ["python"], "observations_count": 982154}, "scanner": "repobility-ast-engine", "correlation_key": "fp|ca973c2babe66adbfe1c5cc7a0c625ad457b38737d3066090bbd44afb822cf7c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_oneview_fcoe_network_info.py"}, "region": {"startLine": 35}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "Phantom test coverage: test_should_get_all_fcoe_network"}, "properties": {"repobilityId": 48871, "scanner": "repobility-ast-engine", "fingerprint": "d76b56810f929116f9d615a1d73409a58601b697d95afa455a7cdac780feb6cb", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "phantom-test-coverage", "owasp": null, "cwe_ids": ["CWE-1126"], "languages": ["python"], "observations_count": 982154}, "scanner": "repobility-ast-engine", "correlation_key": "fp|d76b56810f929116f9d615a1d73409a58601b697d95afa455a7cdac780feb6cb"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_oneview_fcoe_network_info.py"}, "region": {"startLine": 27}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "Phantom test coverage: test_no_ignore_spaces_unchanged"}, "properties": {"repobilityId": 48870, "scanner": "repobility-ast-engine", "fingerprint": "29f10b2885eac9f7e4512626c8cd4cd212a8d0129115b4594677643743bc557f", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "phantom-test-coverage", "owasp": null, "cwe_ids": ["CWE-1126"], "languages": ["python"], "observations_count": 982154}, "scanner": "repobility-ast-engine", "correlation_key": "fp|29f10b2885eac9f7e4512626c8cd4cd212a8d0129115b4594677643743bc557f"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_ini_file.py"}, "region": {"startLine": 47}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "Phantom test coverage: test_no_ignore_spaces_changed"}, "properties": {"repobilityId": 48869, "scanner": "repobility-ast-engine", "fingerprint": "2c23ac1e0bafa0470af8e3407f2644b71067b6177a7a383e4b3eb3ec0325d3aa", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "phantom-test-coverage", "owasp": null, "cwe_ids": ["CWE-1126"], "languages": ["python"], "observations_count": 982154}, "scanner": "repobility-ast-engine", "correlation_key": "fp|2c23ac1e0bafa0470af8e3407f2644b71067b6177a7a383e4b3eb3ec0325d3aa"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_ini_file.py"}, "region": {"startLine": 41}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "Phantom test coverage: test_ignore_spaces_unchanged"}, "properties": {"repobilityId": 48868, "scanner": "repobility-ast-engine", "fingerprint": "983bafb6c1281cae808b7000de0090d590cd21f59a263196a025539906e74d31", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "phantom-test-coverage", "owasp": null, "cwe_ids": ["CWE-1126"], "languages": ["python"], "observations_count": 982154}, "scanner": "repobility-ast-engine", "correlation_key": "fp|983bafb6c1281cae808b7000de0090d590cd21f59a263196a025539906e74d31"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_ini_file.py"}, "region": {"startLine": 35}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "Phantom test coverage: test_ignore_spaces_changed"}, "properties": {"repobilityId": 48867, "scanner": "repobility-ast-engine", "fingerprint": "73ecf55e71adf69cf4118f186f99b2538f48be766e6c7ac07f4bcc7f2947153c", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "phantom-test-coverage", "owasp": null, "cwe_ids": ["CWE-1126"], "languages": ["python"], "observations_count": 982154}, "scanner": "repobility-ast-engine", "correlation_key": "fp|73ecf55e71adf69cf4118f186f99b2538f48be766e6c7ac07f4bcc7f2947153c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_ini_file.py"}, "region": {"startLine": 29}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "Phantom test coverage: test_ignore_spaces_comment"}, "properties": {"repobilityId": 48866, "scanner": "repobility-ast-engine", "fingerprint": "58cb84042e010427db0906c25a4e7ac7721fa17149a57f166882a57232b2756b", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "phantom-test-coverage", "owasp": null, "cwe_ids": ["CWE-1126"], "languages": ["python"], "observations_count": 982154}, "scanner": "repobility-ast-engine", "correlation_key": "fp|58cb84042e010427db0906c25a4e7ac7721fa17149a57f166882a57232b2756b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_ini_file.py"}, "region": {"startLine": 23}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "Phantom test coverage: test_should_get_network_set_by_name_without_ethernet"}, "properties": {"repobilityId": 48865, "scanner": "repobility-ast-engine", "fingerprint": "09c9ac7dfd5e4e418837f22916b30c722ec2c475ead00f9b6f913cbbb2870ea2", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "phantom-test-coverage", "owasp": null, "cwe_ids": ["CWE-1126"], "languages": ["python"], "observations_count": 982154}, "scanner": "repobility-ast-engine", "correlation_key": "fp|09c9ac7dfd5e4e418837f22916b30c722ec2c475ead00f9b6f913cbbb2870ea2"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_oneview_network_set_info.py"}, "region": {"startLine": 71}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "Phantom test coverage: test_should_get_network_set_by_name"}, "properties": {"repobilityId": 48864, "scanner": "repobility-ast-engine", "fingerprint": "858587d1cca6e7f19442f1dafc9bb806c41fabdbb12d2b74ef419d6994efd354", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "phantom-test-coverage", "owasp": null, "cwe_ids": ["CWE-1126"], "languages": ["python"], "observations_count": 982154}, "scanner": "repobility-ast-engine", "correlation_key": "fp|858587d1cca6e7f19442f1dafc9bb806c41fabdbb12d2b74ef419d6994efd354"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_oneview_network_set_info.py"}, "region": {"startLine": 59}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "Phantom test coverage: test_should_get_all_network_sets_without_ethernet"}, "properties": {"repobilityId": 48863, "scanner": "repobility-ast-engine", "fingerprint": "06f248368a3d24c8ae201fa085379fa1429a33033037b3e813660e334371a1f0", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "phantom-test-coverage", "owasp": null, "cwe_ids": ["CWE-1126"], "languages": ["python"], "observations_count": 982154}, "scanner": "repobility-ast-engine", "correlation_key": "fp|06f248368a3d24c8ae201fa085379fa1429a33033037b3e813660e334371a1f0"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_oneview_network_set_info.py"}, "region": {"startLine": 47}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "Phantom test coverage: test_should_get_all_network_sets"}, "properties": {"repobilityId": 48862, "scanner": "repobility-ast-engine", "fingerprint": "3ce82aa7b1a04302dc5ebb71e4a9a9be4ef425ce368c26e2df46d95cfbbb9e62", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "phantom-test-coverage", "owasp": null, "cwe_ids": ["CWE-1126"], "languages": ["python"], "observations_count": 982154}, "scanner": "repobility-ast-engine", "correlation_key": "fp|3ce82aa7b1a04302dc5ebb71e4a9a9be4ef425ce368c26e2df46d95cfbbb9e62"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_oneview_network_set_info.py"}, "region": {"startLine": 29}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "Phantom test coverage: test_should_fail_when_required_attribute_missing"}, "properties": {"repobilityId": 48861, "scanner": "repobility-ast-engine", "fingerprint": "7ff5d8056bf736dc8fdbd89a005f5ade96824674fec3a02b7081782cb684ee77", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "phantom-test-coverage", "owasp": null, "cwe_ids": ["CWE-1126"], "languages": ["python"], "observations_count": 982154}, "scanner": "repobility-ast-engine", "correlation_key": "fp|7ff5d8056bf736dc8fdbd89a005f5ade96824674fec3a02b7081782cb684ee77"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_oneview_san_manager.py"}, "region": {"startLine": 200}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "Phantom test coverage: test_should_add_new_san_manager_when_connection_information_set_called_without_resource"}, "properties": {"repobilityId": 48860, "scanner": "repobility-ast-engine", "fingerprint": "a97b020ca3e767147658908390d5270f9adfd8adb4e1c92cffb89ccc0456b2ce", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "phantom-test-coverage", "owasp": null, "cwe_ids": ["CWE-1126"], "languages": ["python"], "observations_count": 982154}, "scanner": "repobility-ast-engine", "correlation_key": "fp|a97b020ca3e767147658908390d5270f9adfd8adb4e1c92cffb89ccc0456b2ce"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_oneview_san_manager.py"}, "region": {"startLine": 187}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "Phantom test coverage: test_connection_information_set_should_set_the_connection_information"}, "properties": {"repobilityId": 48859, "scanner": "repobility-ast-engine", "fingerprint": "6971727f3c968729140c6d98239e131f787cebedca16ecbb820c124d14f282b0", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "phantom-test-coverage", "owasp": null, "cwe_ids": ["CWE-1126"], "languages": ["python"], "observations_count": 982154}, "scanner": "repobility-ast-engine", "correlation_key": "fp|6971727f3c968729140c6d98239e131f787cebedca16ecbb820c124d14f282b0"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_oneview_san_manager.py"}, "region": {"startLine": 171}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "Phantom test coverage: test_should_fail_when_name_and_hosts_in_connectionInfo_missing"}, "properties": {"repobilityId": 48858, "scanner": "repobility-ast-engine", "fingerprint": "3360544d3336a453f9841c36ae582cd6f62faef5f4d334bb29ec71ac28662395", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "phantom-test-coverage", "owasp": null, "cwe_ids": ["CWE-1126"], "languages": ["python"], "observations_count": 982154}, "scanner": "repobility-ast-engine", "correlation_key": "fp|3360544d3336a453f9841c36ae582cd6f62faef5f4d334bb29ec71ac28662395"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_oneview_san_manager.py"}, "region": {"startLine": 157}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "Phantom test coverage: test_should_fail_when_name_not_found"}, "properties": {"repobilityId": 48857, "scanner": "repobility-ast-engine", "fingerprint": "9a74d01fe31eea729156f411c57c49b436762be24f0196facbcf3a500afc0441", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "phantom-test-coverage", "owasp": null, "cwe_ids": ["CWE-1126"], "languages": ["python"], "observations_count": 982154}, "scanner": "repobility-ast-engine", "correlation_key": "fp|9a74d01fe31eea729156f411c57c49b436762be24f0196facbcf3a500afc0441"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_oneview_san_manager.py"}, "region": {"startLine": 145}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "Phantom test coverage: test_should_do_nothing_when_san_manager_not_exist"}, "properties": {"repobilityId": 48856, "scanner": "repobility-ast-engine", "fingerprint": "3c3ed3a009cfaaf3032ae1fb20bb9f101ca56fb0bf71b134125b0ed555d24025", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "phantom-test-coverage", "owasp": null, "cwe_ids": ["CWE-1126"], "languages": ["python"], "observations_count": 982154}, "scanner": "repobility-ast-engine", "correlation_key": "fp|3c3ed3a009cfaaf3032ae1fb20bb9f101ca56fb0bf71b134125b0ed555d24025"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_oneview_san_manager.py"}, "region": {"startLine": 134}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "Phantom test coverage: test_should_remove_san_manager"}, "properties": {"repobilityId": 48855, "scanner": "repobility-ast-engine", "fingerprint": "ab021ba3ffdf30f87aab4412a150b9fa9afd2ef9600916b45aa8dcbd8b2756c0", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "phantom-test-coverage", "owasp": null, "cwe_ids": ["CWE-1126"], "languages": ["python"], "observations_count": 982154}, "scanner": "repobility-ast-engine", "correlation_key": "fp|ab021ba3ffdf30f87aab4412a150b9fa9afd2ef9600916b45aa8dcbd8b2756c0"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_oneview_san_manager.py"}, "region": {"startLine": 124}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "Phantom test coverage: test_update_should_not_send_connection_info_when_not_informed_on_data"}, "properties": {"repobilityId": 48854, "scanner": "repobility-ast-engine", "fingerprint": "b799695b3df14f4ca5a4b491cd895595eec7b975509312642eaf536e9e895d3e", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "phantom-test-coverage", "owasp": null, "cwe_ids": ["CWE-1126"], "languages": ["python"], "observations_count": 982154}, "scanner": "repobility-ast-engine", "correlation_key": "fp|b799695b3df14f4ca5a4b491cd895595eec7b975509312642eaf536e9e895d3e"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_oneview_san_manager.py"}, "region": {"startLine": 108}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "Phantom test coverage: test_update_when_data_has_modified_attributes"}, "properties": {"repobilityId": 48853, "scanner": "repobility-ast-engine", "fingerprint": "a05a296d45ae2978c94f9f1ab005ad2ca430db594a2b98ce9a2920dd623f445b", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "phantom-test-coverage", "owasp": null, "cwe_ids": ["CWE-1126"], "languages": ["python"], "observations_count": 982154}, "scanner": "repobility-ast-engine", "correlation_key": "fp|a05a296d45ae2978c94f9f1ab005ad2ca430db594a2b98ce9a2920dd623f445b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_oneview_san_manager.py"}, "region": {"startLine": 92}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "Phantom test coverage: test_should_not_update_when_data_is_equals"}, "properties": {"repobilityId": 48852, "scanner": "repobility-ast-engine", "fingerprint": "f75f1318313368f2254fb3ebebbbdfeb383b79a5e56aed241e64f6bd89ab875e", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "phantom-test-coverage", "owasp": null, "cwe_ids": ["CWE-1126"], "languages": ["python"], "observations_count": 982154}, "scanner": "repobility-ast-engine", "correlation_key": "fp|f75f1318313368f2254fb3ebebbbdfeb383b79a5e56aed241e64f6bd89ab875e"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_oneview_san_manager.py"}, "region": {"startLine": 78}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "Phantom test coverage: test_should_find_provider_uri_to_add"}, "properties": {"repobilityId": 48851, "scanner": "repobility-ast-engine", "fingerprint": "d3028a98f57f1fc626f76ed2c036d5af745f6f2f44701b66ff626e520548e123", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "phantom-test-coverage", "owasp": null, "cwe_ids": ["CWE-1126"], "languages": ["python"], "observations_count": 982154}, "scanner": "repobility-ast-engine", "correlation_key": "fp|d3028a98f57f1fc626f76ed2c036d5af745f6f2f44701b66ff626e520548e123"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_oneview_san_manager.py"}, "region": {"startLine": 66}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "Phantom test coverage: test_should_add_new_san_manager"}, "properties": {"repobilityId": 48850, "scanner": "repobility-ast-engine", "fingerprint": "8d3b52be8ff7ee8257f245f2517d74c723b7673724c0c91aaaf7841171b4979d", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "phantom-test-coverage", "owasp": null, "cwe_ids": ["CWE-1126"], "languages": ["python"], "observations_count": 982154}, "scanner": "repobility-ast-engine", "correlation_key": "fp|8d3b52be8ff7ee8257f245f2517d74c723b7673724c0c91aaaf7841171b4979d"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_oneview_san_manager.py"}, "region": {"startLine": 53}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "Phantom test coverage: test_module_args"}, "properties": {"repobilityId": 48849, "scanner": "repobility-ast-engine", "fingerprint": "6587feca221377af5e220aaf230b06b0577e1d93e78456c5d43576b50288751d", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "phantom-test-coverage", "owasp": null, "cwe_ids": ["CWE-1126"], "languages": ["python"], "observations_count": 982154}, "scanner": "repobility-ast-engine", "correlation_key": "fp|6587feca221377af5e220aaf230b06b0577e1d93e78456c5d43576b50288751d"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_ss_3par_cpg.py"}, "region": {"startLine": 21}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.vars` used but never assigned in __init__"}, "properties": {"repobilityId": 48847, "scanner": "repobility-ast-engine", "fingerprint": "b9f62d1b506cf07f0abee7c62ce1d050d5f98fda0b6e9f9d2588471364cad867", "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|b9f62d1b506cf07f0abee7c62ce1d050d5f98fda0b6e9f9d2588471364cad867"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/module_helper/library/mdepfail.py"}, "region": {"startLine": 54}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.vars` used but never assigned in __init__"}, "properties": {"repobilityId": 48846, "scanner": "repobility-ast-engine", "fingerprint": "e4ba4cded321f9debecaaa3a4cb13a17af72d03ea3384e4c213aad3c01dc146e", "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|e4ba4cded321f9debecaaa3a4cb13a17af72d03ea3384e4c213aad3c01dc146e"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/module_helper/library/mdepfail.py"}, "region": {"startLine": 60}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.vars` used but never assigned in __init__"}, "properties": {"repobilityId": 48845, "scanner": "repobility-ast-engine", "fingerprint": "32ca0e5a8a15adcece2d878e6c6155c3867e8ae212083e17699d41caa912c7ef", "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|32ca0e5a8a15adcece2d878e6c6155c3867e8ae212083e17699d41caa912c7ef"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/module_helper/library/mdepfail.py"}, "region": {"startLine": 59}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.vars` used but never assigned in __init__"}, "properties": {"repobilityId": 48844, "scanner": "repobility-ast-engine", "fingerprint": "74c3a3fb23743d5ef8d1494b463b9fbaa24c5935efe7f8e10dd720a0bbce437b", "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|74c3a3fb23743d5ef8d1494b463b9fbaa24c5935efe7f8e10dd720a0bbce437b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/module_helper/library/mdepfail.py"}, "region": {"startLine": 58}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.vars` used but never assigned in __init__"}, "properties": {"repobilityId": 48843, "scanner": "repobility-ast-engine", "fingerprint": "e3082285bd39ad5927ce709cfbc9fc1f16c8d99d886dc2fd7d6f61d9045a86da", "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|e3082285bd39ad5927ce709cfbc9fc1f16c8d99d886dc2fd7d6f61d9045a86da"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/module_helper/library/mdepfail.py"}, "region": {"startLine": 57}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.vars` used but never assigned in __init__"}, "properties": {"repobilityId": 48842, "scanner": "repobility-ast-engine", "fingerprint": "46d0af15a09ea3c10dd6ac3563160af7e18b67a79ef5ba3871be43dfcfe60dbc", "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|46d0af15a09ea3c10dd6ac3563160af7e18b67a79ef5ba3871be43dfcfe60dbc"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/module_helper/library/mdepfail.py"}, "region": {"startLine": 56}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.vars` used but never assigned in __init__"}, "properties": {"repobilityId": 48841, "scanner": "repobility-ast-engine", "fingerprint": "1a23ff64ecc9f7cf0180008dead230ebbe8997a48c44a26ff81d4a23f8420808", "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|1a23ff64ecc9f7cf0180008dead230ebbe8997a48c44a26ff81d4a23f8420808"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/module_helper/library/mdepfail.py"}, "region": {"startLine": 50}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.vars` used but never assigned in __init__"}, "properties": {"repobilityId": 48840, "scanner": "repobility-ast-engine", "fingerprint": "86aab4f5aad9cb4688f6a6da8d53f8c02fa3813b6b943ca701feceb258efe792", "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|86aab4f5aad9cb4688f6a6da8d53f8c02fa3813b6b943ca701feceb258efe792"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/module_helper/library/mdepfail.py"}, "region": {"startLine": 49}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.vars` used but never assigned in __init__"}, "properties": {"repobilityId": 48839, "scanner": "repobility-ast-engine", "fingerprint": "30da5cbf31521a9092096cdd081e0e6ef471dad357f9c865bb0e05689f8feb79", "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|30da5cbf31521a9092096cdd081e0e6ef471dad357f9c865bb0e05689f8feb79"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/module_helper/library/mstate.py"}, "region": {"startLine": 64}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.vars` used but never assigned in __init__"}, "properties": {"repobilityId": 48838, "scanner": "repobility-ast-engine", "fingerprint": "7b5a1f952b419a07f1fa194b0426b5eebd785ed5eef207511177fa7aa6f43d37", "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|7b5a1f952b419a07f1fa194b0426b5eebd785ed5eef207511177fa7aa6f43d37"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/module_helper/library/mstate.py"}, "region": {"startLine": 61}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.vars` used but never assigned in __init__"}, "properties": {"repobilityId": 48837, "scanner": "repobility-ast-engine", "fingerprint": "297c4527d2c066eb520d8ae71c9e5b63c86bc2ff00a75354d60529186bfbd535", "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|297c4527d2c066eb520d8ae71c9e5b63c86bc2ff00a75354d60529186bfbd535"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/module_helper/library/mstate.py"}, "region": {"startLine": 58}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.vars` used but never assigned in __init__"}, "properties": {"repobilityId": 48836, "scanner": "repobility-ast-engine", "fingerprint": "5d94cf83a24753ee89a4a659f70da9dd699ec8bd9b45340fca2185b701b59a81", "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|5d94cf83a24753ee89a4a659f70da9dd699ec8bd9b45340fca2185b701b59a81"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/module_helper/library/mstate.py"}, "region": {"startLine": 55}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.vars` used but never assigned in __init__"}, "properties": {"repobilityId": 48835, "scanner": "repobility-ast-engine", "fingerprint": "f01298284977c5bd19d005849594f6b034db139335300a547b337ab81e84aed9", "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|f01298284977c5bd19d005849594f6b034db139335300a547b337ab81e84aed9"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/module_helper/library/mstate.py"}, "region": {"startLine": 52}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self._make_safe` used but never assigned in __init__"}, "properties": {"repobilityId": 48833, "scanner": "repobility-ast-engine", "fingerprint": "a73b50451c4d10fc184331191e04163521ddbd7c5230dce08c9ffc0333832e8d", "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|a73b50451c4d10fc184331191e04163521ddbd7c5230dce08c9ffc0333832e8d"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/cmd_runner/action_plugins/_unsafe_assert.py"}, "region": {"startLine": 53}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self._templar` used but never assigned in __init__"}, "properties": {"repobilityId": 48832, "scanner": "repobility-ast-engine", "fingerprint": "f9e30f3417edad2592179cac9a1673fb82c85f4a2f0016dc8e99ec4345125bf7", "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|f9e30f3417edad2592179cac9a1673fb82c85f4a2f0016dc8e99ec4345125bf7"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/cmd_runner/action_plugins/_unsafe_assert.py"}, "region": {"startLine": 54}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self._loader` used but never assigned in __init__"}, "properties": {"repobilityId": 48831, "scanner": "repobility-ast-engine", "fingerprint": "686bd64fff63ebc90433232a2d859a297ab81d93d7285f20085ae127b126663f", "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|686bd64fff63ebc90433232a2d859a297ab81d93d7285f20085ae127b126663f"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/cmd_runner/action_plugins/_unsafe_assert.py"}, "region": {"startLine": 52}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self._templar` used but never assigned in __init__"}, "properties": {"repobilityId": 48830, "scanner": "repobility-ast-engine", "fingerprint": "decd511c90ef4f6d4d41a3b2070f38a211b12986d5a0eed3f0a409689bff68e4", "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|decd511c90ef4f6d4d41a3b2070f38a211b12986d5a0eed3f0a409689bff68e4"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/cmd_runner/action_plugins/_unsafe_assert.py"}, "region": {"startLine": 50}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self._templar` used but never assigned in __init__"}, "properties": {"repobilityId": 48829, "scanner": "repobility-ast-engine", "fingerprint": "999e6a8ebb2593e1dc73be6ca01a06045f9edf424e7c62cce4465f484f13a00a", "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|999e6a8ebb2593e1dc73be6ca01a06045f9edf424e7c62cce4465f484f13a00a"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/cmd_runner/action_plugins/_unsafe_assert.py"}, "region": {"startLine": 48}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self._task` used but never assigned in __init__"}, "properties": {"repobilityId": 48828, "scanner": "repobility-ast-engine", "fingerprint": "230c283575083414c37fee39ed52ae5df60443ed51c581dc0f6930de6bc37e35", "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|230c283575083414c37fee39ed52ae5df60443ed51c581dc0f6930de6bc37e35"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/cmd_runner/action_plugins/_unsafe_assert.py"}, "region": {"startLine": 43}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self._task` used but never assigned in __init__"}, "properties": {"repobilityId": 48827, "scanner": "repobility-ast-engine", "fingerprint": "b49c992614c2657c7236b83eaad36397a4a6058f07c4e47f2c959dff9d738257", "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|b49c992614c2657c7236b83eaad36397a4a6058f07c4e47f2c959dff9d738257"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/cmd_runner/action_plugins/_unsafe_assert.py"}, "region": {"startLine": 37}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.path` used but never assigned in __init__"}, "properties": {"repobilityId": 48826, "scanner": "repobility-ast-engine", "fingerprint": "e82471e71a96239f4aab541044b4293bcc9e9c0724b93013363f3ac1d9f36a3e", "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|e82471e71a96239f4aab541044b4293bcc9e9c0724b93013363f3ac1d9f36a3e"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/monit/files/httpd_echo.py"}, "region": {"startLine": 25}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.wfile` used but never assigned in __init__"}, "properties": {"repobilityId": 48825, "scanner": "repobility-ast-engine", "fingerprint": "e117c065c54e79cecf941d02081105581a09e49faf9865c33178395fd40c8ee2", "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|e117c065c54e79cecf941d02081105581a09e49faf9865c33178395fd40c8ee2"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/monit/files/httpd_echo.py"}, "region": {"startLine": 25}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.end_headers` used but never assigned in __init__"}, "properties": {"repobilityId": 48824, "scanner": "repobility-ast-engine", "fingerprint": "29623b1fc6410e3f466c8a4521c4a22d6ef763e0ba811e3e869e68b548a209e1", "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|29623b1fc6410e3f466c8a4521c4a22d6ef763e0ba811e3e869e68b548a209e1"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/monit/files/httpd_echo.py"}, "region": {"startLine": 24}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.send_header` used but never assigned in __init__"}, "properties": {"repobilityId": 48823, "scanner": "repobility-ast-engine", "fingerprint": "aa9930eb75e70a71c955b9ed9929d3e6a5c4c9171da8f083d8379f917bafc423", "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|aa9930eb75e70a71c955b9ed9929d3e6a5c4c9171da8f083d8379f917bafc423"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/monit/files/httpd_echo.py"}, "region": {"startLine": 23}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.send_response` used but never assigned in __init__"}, "properties": {"repobilityId": 48822, "scanner": "repobility-ast-engine", "fingerprint": "92c4d3dc5d7a61e18eb7292c2d69312ea0121f0ebfd9c6c1831d90d9cb7b1b46", "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|92c4d3dc5d7a61e18eb7292c2d69312ea0121f0ebfd9c6c1831d90d9cb7b1b46"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/monit/files/httpd_echo.py"}, "region": {"startLine": 22}}}]}, {"ruleId": "DKC013", "level": "error", "message": {"text": "Database service has no persistent data volume"}, "properties": {"repobilityId": 6762, "scanner": "repobility-docker", "fingerprint": "3458432c01fce855130f5f92b7ddde137c9897c0013d547de9c310205922914b", "category": "docker", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Database-like service does not mount a known data directory.", "evidence": {"rule_id": "DKC013", "scanner": "repobility-docker", "service": "postgres", "references": ["https://docs.docker.com/engine/storage/volumes/"], "correlation_key": "fp|3458432c01fce855130f5f92b7ddde137c9897c0013d547de9c310205922914b", "expected_targets": ["/var/lib/postgresql/data"]}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/keycloak_clientsecret_regenerate/docker-compose.yml"}, "region": {"startLine": 8}}}]}, {"ruleId": "DKC013", "level": "error", "message": {"text": "Database service has no persistent data volume"}, "properties": {"repobilityId": 6756, "scanner": "repobility-docker", "fingerprint": "52e8c049eff88ae95355318c8b09e7274427c8b92bd108ceabd2f19047507591", "category": "docker", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Database-like service does not mount a known data directory.", "evidence": {"rule_id": "DKC013", "scanner": "repobility-docker", "service": "postgres", "references": ["https://docs.docker.com/engine/storage/volumes/"], "correlation_key": "fp|52e8c049eff88ae95355318c8b09e7274427c8b92bd108ceabd2f19047507591", "expected_targets": ["/var/lib/postgresql/data"]}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/integration/targets/keycloak_clientsecret_info/docker-compose.yml"}, "region": {"startLine": 8}}}]}, {"ruleId": "SEC013", "level": "error", "message": {"text": "[SEC013] Path Traversal \u2014 User Input in File Path: User-controlled input used in file path without sanitization. Allows reading arbitrary files."}, "properties": {"repobilityId": 6746, "scanner": "repobility-threat-engine", "fingerprint": "0eae020f9c633c7dad2fc200f90af59163b716fc1ffe6684c41ce7253b155aef", "category": "path_traversal", "severity": "high", "confidence": 0.8, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "User-controlled input detected in file path construction", "evidence": {"match": "open(module.params", "reason": "User-controlled input detected in file path construction", "rule_id": "SEC013", "scanner": "repobility-threat-engine", "confidence": 0.8, "correlation_key": "code|path_traversal|token|156|sec013"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/packet_sshkey.py"}, "region": {"startLine": 156}}}]}, {"ruleId": "SEC013", "level": "error", "message": {"text": "[SEC013] Path Traversal \u2014 User Input in File Path: User-controlled input used in file path without sanitization. Allows reading arbitrary files."}, "properties": {"repobilityId": 6745, "scanner": "repobility-threat-engine", "fingerprint": "16d303c02844823627e6842e784167b99b447575d03332b53538705383906ed9", "category": "path_traversal", "severity": "high", "confidence": 0.8, "triageState": "fixed", "verdict": "likely", "isResolved": true, "reason": "User-controlled input detected in file path construction", "evidence": {"match": "os.path.join(module.params[\"path\"], module.params", "reason": "User-controlled input detected in file path construction", "rule_id": "SEC013", "scanner": "repobility-threat-engine", "confidence": 0.8, "correlation_key": "code|path_traversal|plugins/modules/pamd.py|785|sec013"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/pamd.py"}, "region": {"startLine": 785}}}]}, {"ruleId": "SEC013", "level": "error", "message": {"text": "[SEC013] Path Traversal \u2014 User Input in File Path: User-controlled input used in file path without sanitization. Allows reading arbitrary files."}, "properties": {"repobilityId": 6744, "scanner": "repobility-threat-engine", "fingerprint": "60ef3bde3cd1f38e133094d536f895708b6fe582791a19106099332a3ef0b261", "category": "path_traversal", "severity": "high", "confidence": 0.8, "triageState": "fixed", "verdict": "likely", "isResolved": true, "reason": "User-controlled input detected in file path construction", "evidence": {"match": "open(module.params", "reason": "User-controlled input detected in file path construction", "rule_id": "SEC013", "scanner": "repobility-threat-engine", "confidence": 0.8, "correlation_key": "code|path_traversal|token|488|sec013"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/jenkins_credential.py"}, "region": {"startLine": 488}}}]}, {"ruleId": "SEC004", "level": "error", "message": {"text": "[SEC004] SQL Injection Risk: String interpolation in SQL execution. Allows SQL injection."}, "properties": {"repobilityId": 6738, "scanner": "repobility-threat-engine", "fingerprint": "b6e72739e5349c751c430e1d5924319314944b8f6d44dee6cb2a6111287e73e1", "category": "injection", "severity": "high", "confidence": 0.5, "triageState": "fixed", "verdict": "needs_review", "isResolved": true, "reason": "SQL string interpolation found, but user-controlled taint was not proven from local context.", "evidence": {"match": "msg=f\"Update", "reason": "SQL string interpolation found, but user-controlled taint was not proven from local context.", "rule_id": "SEC004", "scanner": "repobility-threat-engine", "confidence": 0.5, "correlation_key": "code|injection|token|384|sec004"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/gitlab_issue.py"}, "region": {"startLine": 384}}}]}, {"ruleId": "SEC004", "level": "error", "message": {"text": "[SEC004] SQL Injection Risk: String interpolation in SQL execution. Allows SQL injection."}, "properties": {"repobilityId": 6737, "scanner": "repobility-threat-engine", "fingerprint": "e37343a3ea994f909cdf71ae6117da8d70f686d3db787d001c48d8104c760d7a", "category": "injection", "severity": "high", "confidence": 0.5, "triageState": "fixed", "verdict": "needs_review", "isResolved": true, "reason": "SQL string interpolation found, but user-controlled taint was not proven from local context.", "evidence": {"match": "msg=f\"delete", "reason": "SQL string interpolation found, but user-controlled taint was not proven from local context.", "rule_id": "SEC004", "scanner": "repobility-threat-engine", "confidence": 0.5, "correlation_key": "code|injection|token|321|sec004"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/manageiq_group.py"}, "region": {"startLine": 321}}}]}, {"ruleId": "SEC004", "level": "error", "message": {"text": "[SEC004] SQL Injection Risk: String interpolation in SQL execution. Allows SQL injection."}, "properties": {"repobilityId": 6736, "scanner": "repobility-threat-engine", "fingerprint": "53ee54f64e9dfe94d999cfb1d6fd9fd8007834da973f2b7925f5e69f374de40e", "category": "injection", "severity": "high", "confidence": 0.85, "triageState": "fixed", "verdict": "confirmed", "isResolved": true, "reason": "SQL string interpolation is near request/data/parameter input; user-controlled taint is plausible.", "evidence": {"match": "msg=f\"Delete", "reason": "SQL string interpolation is near request/data/parameter input; user-controlled taint is plausible.", "rule_id": "SEC004", "scanner": "repobility-threat-engine", "confidence": 0.85, "correlation_key": "code|injection|token|885|sec004"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/ali_instance.py"}, "region": {"startLine": 885}}}]}, {"ruleId": "MINED007", "level": "error", "message": {"text": "[MINED007] Sql String Concat: cursor.execute(f\"... {user_input} ...\") \u2014 SQL injection."}, "properties": {"repobilityId": 49069, "scanner": "repobility-threat-engine", "fingerprint": "131dc6eae13d5e0d7a1daa28aa609054f91d4a623cdc761d544cf88986f274cf", "category": "quality", "severity": "critical", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "sql-string-concat", "owasp": "A03:2021", "cwe_ids": ["CWE-89"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347914+00:00", "triaged_in_corpus": 20, "observations_count": 210457, "ai_coder_pattern_id": 12}, "scanner": "repobility-threat-engine", "correlation_key": "fp|131dc6eae13d5e0d7a1daa28aa609054f91d4a623cdc761d544cf88986f274cf"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/vertica_role.py"}, "region": {"startLine": 130}}}]}, {"ruleId": "MINED007", "level": "error", "message": {"text": "[MINED007] Sql String Concat: cursor.execute(f\"... {user_input} ...\") \u2014 SQL injection."}, "properties": {"repobilityId": 49068, "scanner": "repobility-threat-engine", "fingerprint": "03a6b01c2e888d443baf4d0e9df425f271bfc8ba1923a11d0040fa1ed41750c8", "category": "quality", "severity": "critical", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "sql-string-concat", "owasp": "A03:2021", "cwe_ids": ["CWE-89"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347914+00:00", "triaged_in_corpus": 20, "observations_count": 210457, "ai_coder_pattern_id": 12}, "scanner": "repobility-threat-engine", "correlation_key": "fp|03a6b01c2e888d443baf4d0e9df425f271bfc8ba1923a11d0040fa1ed41750c8"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/vertica_configuration.py"}, "region": {"startLine": 128}}}]}, {"ruleId": "MINED007", "level": "error", "message": {"text": "[MINED007] Sql String Concat: cursor.execute(f\"... {user_input} ...\") \u2014 SQL injection."}, "properties": {"repobilityId": 49067, "scanner": "repobility-threat-engine", "fingerprint": "3c3cc0dd3a9cbbe7b17c75be199586fa9bff7c3e8177997e3886a1646805f50c", "category": "quality", "severity": "critical", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "sql-string-concat", "owasp": "A03:2021", "cwe_ids": ["CWE-89"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347914+00:00", "triaged_in_corpus": 20, "observations_count": 210457, "ai_coder_pattern_id": 12}, "scanner": "repobility-threat-engine", "correlation_key": "fp|3c3cc0dd3a9cbbe7b17c75be199586fa9bff7c3e8177997e3886a1646805f50c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/mssql_db.py"}, "region": {"startLine": 120}}}]}, {"ruleId": "MINED030", "level": "error", "message": {"text": "[MINED030] Python Pickle Loads: pickle.loads() can execute arbitrary code via __reduce__."}, "properties": {"repobilityId": 49007, "scanner": "repobility-threat-engine", "fingerprint": "18fb276a4ca70b8faf88dbf79465deaf9ddcd2911a9bfa4c7341791278f7aaa9", "category": "quality", "severity": "critical", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "python-pickle-loads", "owasp": null, "cwe_ids": ["CWE-502"], "languages": ["python"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347968+00:00", "triaged_in_corpus": 20, "observations_count": 6314, "ai_coder_pattern_id": 119}, "scanner": "repobility-threat-engine", "correlation_key": "fp|18fb276a4ca70b8faf88dbf79465deaf9ddcd2911a9bfa4c7341791278f7aaa9"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/cache/pickle.py"}, "region": {"startLine": 60}}}]}, {"ruleId": "SEC081", "level": "error", "message": {"text": "[SEC081] Python: pickle.loads / marshal.loads on untrusted data: pickle.load(s) and marshal.load(s) execute arbitrary code on untrusted input. Ported from dlint DUO103 / DUO120 (BSD-3)."}, "properties": {"repobilityId": 49006, "scanner": "repobility-threat-engine", "fingerprint": "2aba3e6b343e953a6ce214ac7c4b7383eef2f99940249cc23eae4892182718c4", "category": "quality", "severity": "critical", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "pickle.load(", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC081", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|2aba3e6b343e953a6ce214ac7c4b7383eef2f99940249cc23eae4892182718c4"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/cache/pickle.py"}, "region": {"startLine": 60}}}]}, {"ruleId": "MINED018", "level": "error", "message": {"text": "[MINED018] Unsafe Deserialization Pickle: pickle.loads / yaml.load (without Loader=SafeLoader) / unmarshal of network/file data \u2014 RCE."}, "properties": {"repobilityId": 48984, "scanner": "repobility-threat-engine", "fingerprint": "98f55e40000e49952f8865284aacbf1acd3d35efa7bfdfce1fd60956aaec3a12", "category": "quality", "severity": "critical", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "unsafe-deserialization-pickle", "owasp": "A08:2021", "cwe_ids": ["CWE-502"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347940+00:00", "triaged_in_corpus": 20, "observations_count": 58759, "ai_coder_pattern_id": 32}, "scanner": "repobility-threat-engine", "correlation_key": "fp|98f55e40000e49952f8865284aacbf1acd3d35efa7bfdfce1fd60956aaec3a12"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/docsite/reformat-yaml.py"}, "region": {"startLine": 17}}}]}, {"ruleId": "SEC116", "level": "error", "message": {"text": "[SEC116] Ruby YAML.load / Marshal.load on untrusted input: `YAML.load` (pre-3.1) and `Marshal.load` instantiate arbitrary Ruby classes \u2014 direct RCE on untrusted input. `unsafe_load` is even more dangerous."}, "properties": {"repobilityId": 48983, "scanner": "repobility-threat-engine", "fingerprint": "cc658dc5438b64e7e47b61ee655a4a56bfcc022b82199a3c1295252fccbaf492", "category": "deserialization", "severity": "critical", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "yaml.load(", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC116", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "code|deserialization|token|17|sec116"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/docsite/reformat-yaml.py"}, "region": {"startLine": 17}}}]}, {"ruleId": "SEC079", "level": "error", "message": {"text": "[SEC079] Python: yaml.load without SafeLoader: yaml.load() without explicit SafeLoader can execute arbitrary Python objects (CVE-2017-18342). Ported from bandit B506 / dlint DUO109 (Apache-2.0 / BSD-3)."}, "properties": {"repobilityId": 48982, "scanner": "repobility-threat-engine", "fingerprint": "4b6fa7151a7c8703fed3297b336440f78785c8861b4451ff7789835780871054", "category": "quality", "severity": "critical", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "yaml.load(sys.stdin)", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC079", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|4b6fa7151a7c8703fed3297b336440f78785c8861b4451ff7789835780871054"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/docsite/reformat-yaml.py"}, "region": {"startLine": 17}}}]}, {"ruleId": "MINED133", "level": "error", "message": {"text": "Hardcoded Microsoft Teams webhook URL in source"}, "properties": {"repobilityId": 48968, "scanner": "repobility-supply-chain", "fingerprint": "e506c010db7992c4f925520b36e73201258b8c213e195f1c99f322347a549b3c", "category": "dependency", "severity": "critical", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "exfil-webhook-url", "owasp": null, "cwe_ids": ["CWE-200", "CWE-540"], "languages": ["any"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|e506c010db7992c4f925520b36e73201258b8c213e195f1c99f322347a549b3c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/office_365_connector_card.py"}, "region": {"startLine": 68}}}]}, {"ruleId": "MINED133", "level": "error", "message": {"text": "Hardcoded Slack webhook URL in source"}, "properties": {"repobilityId": 48967, "scanner": "repobility-supply-chain", "fingerprint": "837c1422bc03607adf34f1e53aec2dfbf376d7f454df1d9c06a5a7111bc57109", "category": "dependency", "severity": "critical", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "exfil-webhook-url", "owasp": null, "cwe_ids": ["CWE-200", "CWE-540"], "languages": ["any"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|837c1422bc03607adf34f1e53aec2dfbf376d7f454df1d9c06a5a7111bc57109"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/test_slack.py"}, "region": {"startLine": 61}}}]}, {"ruleId": "MINED116", "level": "error", "message": {"text": "Workflow uses `secrets.CODECOV_TOKEN` on a `pull_request` trigger"}, "properties": {"repobilityId": 48966, "scanner": "repobility-supply-chain", "fingerprint": "3b86b710a8aa202a9e93c1fe3bbf82cadf2dd3540caae362eea6b85573f6cf0c", "category": "dependency", "severity": "critical", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-pull-request-secrets", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|3b86b710a8aa202a9e93c1fe3bbf82cadf2dd3540caae362eea6b85573f6cf0c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ansible-test.yml"}, "region": {"startLine": 156}}}]}, {"ruleId": "MINED116", "level": "error", "message": {"text": "Workflow uses `secrets.CODECOV_TOKEN` on a `pull_request` trigger"}, "properties": {"repobilityId": 48965, "scanner": "repobility-supply-chain", "fingerprint": "67c0bf31dcba903c541b322eaa82dcf603c546b1bd27863f87657c34b8ccb000", "category": "dependency", "severity": "critical", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-pull-request-secrets", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|67c0bf31dcba903c541b322eaa82dcf603c546b1bd27863f87657c34b8ccb000"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ansible-test.yml"}, "region": {"startLine": 74}}}]}, {"ruleId": "MINED116", "level": "error", "message": {"text": "Workflow uses `secrets.CODECOV_TOKEN` on a `pull_request` trigger"}, "properties": {"repobilityId": 48964, "scanner": "repobility-supply-chain", "fingerprint": "08cbbafcd78495ff402047666ebef3280e1ba803ce922c6a77ae278f3f7de325", "category": "dependency", "severity": "critical", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-pull-request-secrets", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|08cbbafcd78495ff402047666ebef3280e1ba803ce922c6a77ae278f3f7de325"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ansible-test.yml"}, "region": {"startLine": 39}}}]}, {"ruleId": "MINED107", "level": "error", "message": {"text": "Missing import: `string` used but not imported"}, "properties": {"repobilityId": 48909, "scanner": "repobility-ast-engine", "fingerprint": "4d075bf538e393764bcd39e5f7e93a5a6498e6600250ea9c02d6919fa294a916", "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|4d075bf538e393764bcd39e5f7e93a5a6498e6600250ea9c02d6919fa294a916"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/lookup/dnstxt.py"}, "region": {"startLine": 96}}}]}, {"ruleId": "MINED107", "level": "error", "message": {"text": "Missing import: `string` used but not imported"}, "properties": {"repobilityId": 48908, "scanner": "repobility-ast-engine", "fingerprint": "ff5cd06d9f10324e1ada045dfb2690c9a4fc6aae645f066ee17cff1fa87712c0", "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|ff5cd06d9f10324e1ada045dfb2690c9a4fc6aae645f066ee17cff1fa87712c0"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/logstash_plugin.py"}, "region": {"startLine": 95}}}]}, {"ruleId": "MINED107", "level": "error", "message": {"text": "Missing import: `copy` used but not imported"}, "properties": {"repobilityId": 48907, "scanner": "repobility-ast-engine", "fingerprint": "f742f426fed034f210590452bcb0682be016942ca028f7ef8924851661283545", "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|f742f426fed034f210590452bcb0682be016942ca028f7ef8924851661283545"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/imc_rest.py"}, "region": {"startLine": 323}}}]}, {"ruleId": "MINED107", "level": "error", "message": {"text": "Missing import: `string` used but not imported"}, "properties": {"repobilityId": 48906, "scanner": "repobility-ast-engine", "fingerprint": "3f5344f502f7f257737bffb613ce8840cc4d57a7fb702bb03ac82155f1826f17", "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|3f5344f502f7f257737bffb613ce8840cc4d57a7fb702bb03ac82155f1826f17"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/iptables_state.py"}, "region": {"startLine": 329}}}]}, {"ruleId": "MINED107", "level": "error", "message": {"text": "Missing import: `string` used but not imported"}, "properties": {"repobilityId": 48905, "scanner": "repobility-ast-engine", "fingerprint": "bccfd4bb59f3ef8a2592fd58ba2311ff64e72719e516dd4ad246727b21ab1699", "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|bccfd4bb59f3ef8a2592fd58ba2311ff64e72719e516dd4ad246727b21ab1699"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/kibana_plugin.py"}, "region": {"startLine": 125}}}]}, {"ruleId": "MINED107", "level": "error", "message": {"text": "Missing import: `string` used but not imported"}, "properties": {"repobilityId": 48904, "scanner": "repobility-ast-engine", "fingerprint": "c061f0f3b2993b7aba1f2d36ad88cd6c86cea9c4426639e8029d94a15c69cc14", "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|c061f0f3b2993b7aba1f2d36ad88cd6c86cea9c4426639e8029d94a15c69cc14"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/archive.py"}, "region": {"startLine": 233}}}]}, {"ruleId": "MINED107", "level": "error", "message": {"text": "Missing import: `array` used but not imported"}, "properties": {"repobilityId": 48903, "scanner": "repobility-ast-engine", "fingerprint": "db9aad7b0fabe97133d56cf801d8adffbebeccb56b77f52c86c6a62dacde4580", "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|db9aad7b0fabe97133d56cf801d8adffbebeccb56b77f52c86c6a62dacde4580"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/vexata_eg.py"}, "region": {"startLine": 89}}}]}, {"ruleId": "MINED107", "level": "error", "message": {"text": "Missing import: `string` used but not imported"}, "properties": {"repobilityId": 48902, "scanner": "repobility-ast-engine", "fingerprint": "26bb4689a16952d30cb09e94f22d79b12794f96171daaceaefad03f189d85c87", "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|26bb4689a16952d30cb09e94f22d79b12794f96171daaceaefad03f189d85c87"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/elasticsearch_plugin.py"}, "region": {"startLine": 123}}}]}, {"ruleId": "MINED107", "level": "error", "message": {"text": "Missing import: `email` used but not imported"}, "properties": {"repobilityId": 48901, "scanner": "repobility-ast-engine", "fingerprint": "e66da4e21ad4c289dc21b4c3c06cf5a275980401e36ed28bf72fa0a6459c40db", "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|e66da4e21ad4c289dc21b4c3c06cf5a275980401e36ed28bf72fa0a6459c40db"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/jira.py"}, "region": {"startLine": 709}}}]}, {"ruleId": "MINED107", "level": "error", "message": {"text": "Missing import: `xml` used but not imported"}, "properties": {"repobilityId": 48900, "scanner": "repobility-ast-engine", "fingerprint": "ba935bb1671ca7f3c9911db09b6097086e459cd8b1c172a8aa107a912ec95fd6", "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|ba935bb1671ca7f3c9911db09b6097086e459cd8b1c172a8aa107a912ec95fd6"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/maven_artifact.py"}, "region": {"startLine": 402}}}]}, {"ruleId": "MINED107", "level": "error", "message": {"text": "Missing import: `array` used but not imported"}, "properties": {"repobilityId": 48899, "scanner": "repobility-ast-engine", "fingerprint": "ca9b0460a1a2d0eb1c08e764dae94160879aecd3c12020ecc41fe8ee78c42fbd", "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|ca9b0460a1a2d0eb1c08e764dae94160879aecd3c12020ecc41fe8ee78c42fbd"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/modules/vexata_volume.py"}, "region": {"startLine": 87}}}]}, {"ruleId": "MINED107", "level": "error", "message": {"text": "Missing import: `string` used but not imported"}, "properties": {"repobilityId": 48877, "scanner": "repobility-ast-engine", "fingerprint": "e5ca9b4e098a011898de42f2e9c0e07c0085f635b908b5e2156fe7da6f414f6c", "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|e5ca9b4e098a011898de42f2e9c0e07c0085f635b908b5e2156fe7da6f414f6c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/modules/interfaces_file/test_interfaces_file.py"}, "region": {"startLine": 79}}}]}, {"ruleId": "MINED107", "level": "error", "message": {"text": "Missing import: `collections` used but not imported"}, "properties": {"repobilityId": 48875, "scanner": "repobility-ast-engine", "fingerprint": "9651c2e83c206a5080542bec6143382eef5add8eeaba128ae1f8082bd3566640", "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|9651c2e83c206a5080542bec6143382eef5add8eeaba128ae1f8082bd3566640"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/unit/plugins/lookup/test_bitwarden.py"}, "region": {"startLine": 178}}}]}]}]}