{"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": "MINED111", "name": "[MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that runs code without re-raising or ", "shortDescription": {"text": "[MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that runs code without re-raising or logging the exception. Hides real failures and makes bugs hard to diagnose."}, "fullDescription": {"text": "Either narrow the exception type, log the exception with `logger.exception(...)`, or re-raise after handling."}, "properties": {"scanner": "repobility-ast-engine", "category": "quality", "severity": "medium", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "MINED109", "name": "[MINED109] Mutable default argument in `__init__` (dict): `def __init__(... = []/{}/set())` \u2014 Python's default value is ", "shortDescription": {"text": "[MINED109] Mutable default argument in `__init__` (dict): `def __init__(... = []/{}/set())` \u2014 Python's default value is constructed ONCE at function definition time and shared across all calls. Mutating it in one call mutates it for every f"}, "fullDescription": {"text": "Use None as the default and create the collection inside the function: `def __init__(x=None): x = x or []`"}, "properties": {"scanner": "repobility-ast-engine", "category": "quality", "severity": "medium", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "DKR007", "name": "Docker build context has no .dockerignore", "shortDescription": {"text": "Docker build context has no .dockerignore"}, "fullDescription": {"text": "Add .dockerignore with at least .git, .env, private keys, dependency folders, build outputs, and local databases."}, "properties": {"scanner": "repobility-docker", "category": "docker", "severity": "medium", "confidence": 0.9, "cwe": "", "owasp": ""}}, {"id": "DKR003", "name": "Dockerfile base image uses the latest tag", "shortDescription": {"text": "Dockerfile base image uses the latest tag"}, "fullDescription": {"text": "Pin to a maintained version tag or digest and update it deliberately through dependency automation."}, "properties": {"scanner": "repobility-docker", "category": "docker", "severity": "medium", "confidence": 0.94, "cwe": "", "owasp": ""}}, {"id": "DKR015", "name": "Docker build context is very large", "shortDescription": {"text": "Docker build context is very large"}, "fullDescription": {"text": "Shrink the build context with .dockerignore, move generated/runtime data outside the build context, and copy only the manifest files needed for cached dependency layers."}, "properties": {"scanner": "repobility-docker", "category": "docker", "severity": "medium", "confidence": 0.84, "cwe": "", "owasp": ""}}, {"id": "COMP001", "name": "[COMP001] High cognitive complexity: Function `update_gunw_slc` has cognitive complexity 18 (SonarSource scale). Cogniti", "shortDescription": {"text": "[COMP001] High cognitive complexity: Function `update_gunw_slc` has cognitive complexity 18 (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 18."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "medium", "confidence": 0.95, "cwe": "", "owasp": ""}}, {"id": "AIC003", "name": "Duplicated implementation block across source files", "shortDescription": {"text": "Duplicated implementation block across source files"}, "fullDescription": {"text": "Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used."}, "properties": {"scanner": "repobility-ai-code-hygiene", "category": "quality", "severity": "low", "confidence": 0.86, "cwe": "", "owasp": ""}}, {"id": "SEC132", "name": "[SEC132] String concat where the language has interpolation (AI style drift): String built by concatenation where the la", "shortDescription": {"text": "[SEC132] String concat where the language has interpolation (AI style drift): String built by concatenation where the language has cleaner interpolation (Python f-strings since 3.6, JS template literals since ES6). Not a vulnerability on it"}, "fullDescription": {"text": "Python: `f\"prefix {var} suffix\"`. JS/TS: `` `prefix ${var} suffix` ``. Add a lint rule (pyupgrade UP032, eslint prefer-template) so future PRs catch this automatically."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "low", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "MINED013", "name": "[MINED013] Password In Url: https://user:password@host \u2014 leaks creds via logs, referrer, error messages.", "shortDescription": {"text": "[MINED013] Password In Url: https://user:password@host \u2014 leaks creds via logs, referrer, error messages."}, "fullDescription": {"text": "Review and fix per the pattern semantics. See CWE-200 / A07:2021 for context."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "info", "confidence": 0.1, "cwe": "", "owasp": ""}}, {"id": "MINED043", "name": "[MINED043] Http Not Https: Hardcoded http:// (not localhost) for endpoints that handle credentials or data.", "shortDescription": {"text": "[MINED043] Http Not Https: Hardcoded http:// (not localhost) for endpoints that handle credentials or data."}, "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": 1.0, "cwe": "", "owasp": ""}}, {"id": "MINED050", "name": "[MINED050] Stub Only Function (and 1 more): Same pattern found in 1 additional files. Review if needed.", "shortDescription": {"text": "[MINED050] Stub Only Function (and 1 more): Same pattern found in 1 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": "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": "MINED115", "name": "[MINED115] Action `ASFHyP3/actions/.github/workflows/reusable-docker-ghcr.yml` pinned to mutable ref `@v0.20.0`: `uses: ", "shortDescription": {"text": "[MINED115] Action `ASFHyP3/actions/.github/workflows/reusable-docker-ghcr.yml` pinned to mutable ref `@v0.20.0`: `uses: ASFHyP3/actions/.github/workflows/reusable-docker-ghcr.yml@v0.20.0` resolves at workflow-run time. Tags and branches can"}, "fullDescription": {"text": "Replace with: `uses: ASFHyP3/actions/.github/workflows/reusable-docker-ghcr.yml@<40-char-sha>  # v0.20.0` and let Dependabot bump it on a scheduled cadence."}, "properties": {"scanner": "repobility-supply-chain", "category": "dependency", "severity": "high", "confidence": 0.9, "cwe": "", "owasp": ""}}, {"id": "MINED118", "name": "[MINED118] Dockerfile FROM `condaforge/mambaforge:latest` not pinned by digest: `FROM condaforge/mambaforge:latest` reso", "shortDescription": {"text": "[MINED118] Dockerfile FROM `condaforge/mambaforge:latest` not pinned by digest: `FROM condaforge/mambaforge:latest` resolves the tag at build time. The registry CAN re-push a different image for the same tag, so every build is potentially d"}, "fullDescription": {"text": "Replace with: `FROM condaforge/mambaforge:latest@sha256:<digest>`. Get the digest from `docker manifest inspect`. Re-pin via a scheduled bot (Renovate, Dependabot)."}, "properties": {"scanner": "repobility-supply-chain", "category": "dependency", "severity": "high", "confidence": 0.9, "cwe": "", "owasp": ""}}, {"id": "MINED106", "name": "[MINED106] Phantom test coverage: test_error_catching_with_s1_grid: Test function `test_error_catching_with_s1_grid` run", "shortDescription": {"text": "[MINED106] Phantom test coverage: test_error_catching_with_s1_grid: Test function `test_error_catching_with_s1_grid` runs code but contains no assert / expect / should call \u2014 it passes regardless of behaviour. Adds line coverage without ver"}, "fullDescription": {"text": "Add an explicit assertion that captures the test's intent, or remove the test."}, "properties": {"scanner": "repobility-ast-engine", "category": "quality", "severity": "high", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "MINED108", "name": "[MINED108] `self._true_wet_refr` used but never assigned in __init__: Method `load_weather` of class `MockWeatherModel` ", "shortDescription": {"text": "[MINED108] `self._true_wet_refr` used but never assigned in __init__: Method `load_weather` of class `MockWeatherModel` reads `self._true_wet_refr`, but no assignment to it exists in __init__ (and no class-level fallback). This raises Attri"}, "fullDescription": {"text": "Initialize `self._true_wet_refr = <default>` in __init__, or add a class-level default."}, "properties": {"scanner": "repobility-ast-engine", "category": "quality", "severity": "high", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "DKR014", "name": "Dockerfile copies the entire context without .dockerignore", "shortDescription": {"text": "Dockerfile copies the entire context without .dockerignore"}, "fullDescription": {"text": "Create .dockerignore before using broad context copies, or copy only the required files and directories."}, "properties": {"scanner": "repobility-docker", "category": "docker", "severity": "high", "confidence": 0.92, "cwe": "", "owasp": ""}}, {"id": "SEC029", "name": "[SEC029] Server-Side Request Forgery (SSRF) \u2014 outbound HTTP from user input: Outbound HTTP request to a user-controlled ", "shortDescription": {"text": "[SEC029] Server-Side Request Forgery (SSRF) \u2014 outbound HTTP from user input: Outbound HTTP request to a user-controlled URL without allowlist validation. Attackers can probe internal services (169.254.169.254 metadata, internal Kubernetes e"}, "fullDescription": {"text": "Validate the URL against an allowlist BEFORE fetching:\n  ALLOWED = {'images.example.com', 'cdn.example.com'}\n  host = urlparse(url).hostname\n  if host not in ALLOWED: abort(400)\nOr use a server-side proxy (Imgproxy / serve-files-only-from-S3) that isolates outbound network access from the request handler.\nBlock private CIDRs explicitly: 10/8, 172.16/12, 192.168/16, 169.254/16."}, "properties": {"scanner": "repobility-threat-engine", "category": "ssrf", "severity": "high", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "SEC128", "name": "[SEC128] Async function without await \u2014 fire-and-forget Promise (AI mistake): Async call invoked without `await` returns", "shortDescription": {"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, ra"}, "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": "high", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "MINED001", "name": "[MINED001] Bare Except Pass: except: pass or except Exception: pass \u2014 silently swallows everything including KeyboardInt", "shortDescription": {"text": "[MINED001] Bare Except Pass: except: pass or except Exception: pass \u2014 silently swallows everything including KeyboardInterrupt and bugs."}, "fullDescription": {"text": "Review and fix per the pattern semantics. See CWE-755 /  for context."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "high", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "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": "MINED107", "name": "[MINED107] Missing import: `time` used but not imported: The file uses `time.something(...)` but never imports `time`. T", "shortDescription": {"text": "[MINED107] Missing import: `time` used but not imported: The file uses `time.something(...)` but never imports `time`. This raises NameError at runtime the first time the line executes."}, "fullDescription": {"text": "Add `import time` at the top of the file."}, "properties": {"scanner": "repobility-ast-engine", "category": "quality", "severity": "critical", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "SEC084", "name": "[SEC084] JS: require() with non-literal: require(<variable>) loads arbitrary modules \u2014 equivalent to eval at module scop", "shortDescription": {"text": "[SEC084] JS: require() with non-literal: require(<variable>) loads arbitrary modules \u2014 equivalent to eval at module scope. Ported from eslint-plugin-security detect-non-literal-require (Apache-2.0)."}, "fullDescription": {"text": "Use static imports or a static mapping `const modules = { foo: require('./foo') }`."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "critical", "confidence": 1.0, "cwe": "", "owasp": ""}}]}}, "automationDetails": {"id": "repobility/1294"}, "properties": {"repository": "dbekaert/RAiDER", "repoUrl": "https://github.com/dbekaert/RAiDER", "branch": "main"}, "results": [{"ruleId": "MINED111", "level": "warning", "message": {"text": "[MINED111] Bare except continues silently: 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": {"repobilityId": 131359, "scanner": "repobility-ast-engine", "fingerprint": "25028a1e92214e0388ed5d520ab04c204b8c44b137c493541bda099ae7e41ecd", "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|25028a1e92214e0388ed5d520ab04c204b8c44b137c493541bda099ae7e41ecd"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/RAiDER/models/weatherModel.py"}, "region": {"startLine": 458}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "[MINED111] Bare except continues silently: 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": {"repobilityId": 131358, "scanner": "repobility-ast-engine", "fingerprint": "825b8156add943e9a0533808ccb12ffcb969722167566c3bb47cb94db3f033ec", "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|825b8156add943e9a0533808ccb12ffcb969722167566c3bb47cb94db3f033ec"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/RAiDER/models/weatherModel.py"}, "region": {"startLine": 632}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "[MINED111] Bare except continues silently: 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": {"repobilityId": 131357, "scanner": "repobility-ast-engine", "fingerprint": "71ddb697e49e747c0e61587b011aca24ee4cee867b9927e43ffc4fc4a1ec5238", "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|71ddb697e49e747c0e61587b011aca24ee4cee867b9927e43ffc4fc4a1ec5238"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/RAiDER/models/weatherModel.py"}, "region": {"startLine": 846}}}]}, {"ruleId": "MINED109", "level": "warning", "message": {"text": "[MINED109] Mutable default argument in `__init__` (dict): `def __init__(... = []/{}/set())` \u2014 Python's default value is constructed ONCE at function definition time and shared across all calls. Mutating it in one call mutates it for every future call too."}, "properties": {"repobilityId": 131355, "scanner": "repobility-ast-engine", "fingerprint": "ee021b8c1ffb6494298dcf3a4f21f896e2bca5e9290f217099b935ac6c2e6f25", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "mutable-default-arg", "owasp": null, "cwe_ids": ["CWE-1023"], "languages": ["python"], "observations_count": 64867}, "scanner": "repobility-ast-engine", "correlation_key": "fp|ee021b8c1ffb6494298dcf3a4f21f896e2bca5e9290f217099b935ac6c2e6f25"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/RAiDER/cli/validators.py"}, "region": {"startLine": 409}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "[MINED111] Bare except continues silently: 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": {"repobilityId": 131353, "scanner": "repobility-ast-engine", "fingerprint": "310d77d0af0df8c6bce9620a6959bc56de57c5d375025abaa7226fe5f2292f17", "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|310d77d0af0df8c6bce9620a6959bc56de57c5d375025abaa7226fe5f2292f17"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/RAiDER/cli/statsPlot.py"}, "region": {"startLine": 1395}}}]}, {"ruleId": "MINED109", "level": "warning", "message": {"text": "[MINED109] Mutable default argument in `__init__` (list): `def __init__(... = []/{}/set())` \u2014 Python's default value is constructed ONCE at function definition time and shared across all calls. Mutating it in one call mutates it for every future call too."}, "properties": {"repobilityId": 131352, "scanner": "repobility-ast-engine", "fingerprint": "32f9527410f93463eefcaba201f735fdcc49e8ec49d5813301d7fd3347f75020", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "mutable-default-arg", "owasp": null, "cwe_ids": ["CWE-1023"], "languages": ["python"], "observations_count": 64867}, "scanner": "repobility-ast-engine", "correlation_key": "fp|32f9527410f93463eefcaba201f735fdcc49e8ec49d5813301d7fd3347f75020"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/RAiDER/cli/statsPlot.py"}, "region": {"startLine": 952}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "[MINED111] Bare except continues silently: 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": {"repobilityId": 131351, "scanner": "repobility-ast-engine", "fingerprint": "86228d6734660e961d0075e5d3dc58ec6d1b14ff2765e1c145f07bb3d6ab5db5", "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|86228d6734660e961d0075e5d3dc58ec6d1b14ff2765e1c145f07bb3d6ab5db5"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/RAiDER/gnss/processDelayFiles.py"}, "region": {"startLine": 49}}}]}, {"ruleId": "MINED109", "level": "warning", "message": {"text": "[MINED109] Mutable default argument in `concatDelayFiles` (list): `def concatDelayFiles(... = []/{}/set())` \u2014 Python's default value is constructed ONCE at function definition time and shared across all calls. Mutating it in one call mutates it for every future call too."}, "properties": {"repobilityId": 131350, "scanner": "repobility-ast-engine", "fingerprint": "cfaee3a9a636feec2d7f1e20fb985c21960a7126cdcdef1f0a5b523d794488ea", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "mutable-default-arg", "owasp": null, "cwe_ids": ["CWE-1023"], "languages": ["python"], "observations_count": 64867}, "scanner": "repobility-ast-engine", "correlation_key": "fp|cfaee3a9a636feec2d7f1e20fb985c21960a7126cdcdef1f0a5b523d794488ea"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/RAiDER/gnss/processDelayFiles.py"}, "region": {"startLine": 128}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "[MINED111] Bare except continues silently: 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": {"repobilityId": 131349, "scanner": "repobility-ast-engine", "fingerprint": "c311ef81d8b64f66602bccd129d84a7321d89b917972f7723138053d8b283535", "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|c311ef81d8b64f66602bccd129d84a7321d89b917972f7723138053d8b283535"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/RAiDER/gnss/downloadGNSSDelays.py"}, "region": {"startLine": 50}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "[MINED111] Bare except continues silently: 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": {"repobilityId": 131348, "scanner": "repobility-ast-engine", "fingerprint": "6355e40fa8b590438b22c240018488e82bc9dcbcaf9cfa55e525360ac13ac027", "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|6355e40fa8b590438b22c240018488e82bc9dcbcaf9cfa55e525360ac13ac027"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/RAiDER/gnss/downloadGNSSDelays.py"}, "region": {"startLine": 223}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "[MINED111] Bare except continues silently: 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": {"repobilityId": 131344, "scanner": "repobility-ast-engine", "fingerprint": "f375d2047ccba781f3165d9cff78976840cf17baddfd603f746bdae977bb8299", "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|f375d2047ccba781f3165d9cff78976840cf17baddfd603f746bdae977bb8299"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/RAiDER/getStationDelays.py"}, "region": {"startLine": 105}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "[MINED111] Bare except continues silently: 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": {"repobilityId": 131340, "scanner": "repobility-ast-engine", "fingerprint": "f6dfe89e68a1b06fdc664f176ba094a722bb0afc45d3b7270d52a9d56e14e2a9", "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|f6dfe89e68a1b06fdc664f176ba094a722bb0afc45d3b7270d52a9d56e14e2a9"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/RAiDER/losreader.py"}, "region": {"startLine": 253}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "[MINED111] Bare except continues silently: 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": {"repobilityId": 131339, "scanner": "repobility-ast-engine", "fingerprint": "7b74bce5691caafda5f193783f09392dfdbd8dbac5e4aeb88d07daceae1d38e4", "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|7b74bce5691caafda5f193783f09392dfdbd8dbac5e4aeb88d07daceae1d38e4"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/RAiDER/losreader.py"}, "region": {"startLine": 359}}}]}, {"ruleId": "DKR007", "level": "warning", "message": {"text": "Docker build context has no .dockerignore"}, "properties": {"repobilityId": 131285, "scanner": "repobility-docker", "fingerprint": "c98378cf8c37e4866e89d6ca06a24b7e8c44654aa34e6e4bf1367c4a4c0c5b44", "category": "docker", "severity": "medium", "confidence": 0.9, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Dockerfile exists but repository root has no .dockerignore.", "evidence": {"rule_id": "DKR007", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/"], "correlation_key": "fp|c98378cf8c37e4866e89d6ca06a24b7e8c44654aa34e6e4bf1367c4a4c0c5b44"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".dockerignore"}, "region": {"startLine": 1}}}]}, {"ruleId": "DKR003", "level": "warning", "message": {"text": "Dockerfile base image uses the latest tag"}, "properties": {"repobilityId": 131283, "scanner": "repobility-docker", "fingerprint": "01c9327c17496a30f170e52ec8d43d068e0fb066b668275237ec915aaa0fabd2", "category": "docker", "severity": "medium", "confidence": 0.94, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Image tag is latest.", "evidence": {"image": "condaforge/mambaforge:latest", "rule_id": "DKR003", "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|01c9327c17496a30f170e52ec8d43d068e0fb066b668275237ec915aaa0fabd2"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Dockerfile"}, "region": {"startLine": 1}}}]}, {"ruleId": "DKR015", "level": "warning", "message": {"text": "Docker build context is very large"}, "properties": {"repobilityId": 131282, "scanner": "repobility-docker", "fingerprint": "b15d4f710afeff2af4cd4ab204332853f9025b78869a0e87bb466a798bb1a15b", "category": "docker", "severity": "medium", "confidence": 0.84, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "Estimated Docker build context exceeds Repobility's size or file-count threshold.", "evidence": {"capped": false, "rule_id": "DKR015", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/"], "largest_paths": [{"path": ".git/objects/pack/pack-8faea8f9a23097c5837c5a868cfb1c51992543a2.pack", "size_mb": 301.4}, {"path": "test/gunw_test_data/S1-GUNW-D-R-071-tops-20200130_20200124-135156-34956N_32979N-PP-913f-v2_0_4.nc", "size_mb": 51.3}, {"path": "test/gunw_azimuth_test_data/S1-GUNW-A-R-064-tops-20210723_20210711-015000-00119W_00033N-PP-6267-v2_0_6.nc", "size_mb": 50.0}, {"path": "test/gunw_test_data/S1-GUNW-D-R-059-tops-20230320_20220418-180300-00179W_00051N-PP-c92e-v2_0_6.nc", "size_mb": 47.1}, {"path": "test/gunw_test_data/S1-GUNW-D-R-032-tops-20200220_20200214-214625-00120E_00014N-PP-b785-v3_0_1.nc", "size_mb": 43.3}], "included_files": 325, "context_size_mb": 697.4, "correlation_key": "fp|b15d4f710afeff2af4cd4ab204332853f9025b78869a0e87bb466a798bb1a15b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".dockerignore"}, "region": {"startLine": 1}}}]}, {"ruleId": "COMP001", "level": "warning", "message": {"text": "[COMP001] High cognitive complexity: Function `update_gunw_slc` has cognitive complexity 18 (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: except=4, for=5, if=1, nested_bonus=8."}, "properties": {"repobilityId": 131270, "scanner": "repobility-threat-engine", "fingerprint": "552fafce7093f0212dd9d30b3482a1d5e7f48d4dea9f48a00eb017797d3c8f2e", "category": "quality", "severity": "medium", "confidence": 0.95, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "AST-derived cognitive complexity score = 18 (severity threshold for medium: 15+).", "evidence": {"scanner": "repobility-threat-engine", "function": "update_gunw_slc", "breakdown": {"if": 1, "for": 5, "except": 4, "nested_bonus": 8}, "complexity": 18, "correlation_key": "fp|552fafce7093f0212dd9d30b3482a1d5e7f48d4dea9f48a00eb017797d3c8f2e"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/RAiDER/aria/calcGUNW.py"}, "region": {"startLine": 114}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 131281, "scanner": "repobility-ai-code-hygiene", "fingerprint": "c7b8b8a2db6c26a96271ec2a1b6899d6382b0838a8b7502f15d7332f669afb6d", "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": "tools/bindings/interpolate/src/interpolate.cpp", "duplicate_line": 60, "correlation_key": "fp|c7b8b8a2db6c26a96271ec2a1b6899d6382b0838a8b7502f15d7332f669afb6d"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/bindings/interpolate/src/interpolate.h"}, "region": {"startLine": 91}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 131280, "scanner": "repobility-ai-code-hygiene", "fingerprint": "b8d640001c3b02926928a7234654b632ae8409325e03f4399fcfc35e3e1377d8", "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": "tools/RAiDER/models/gmao.py", "duplicate_line": 140, "correlation_key": "fp|b8d640001c3b02926928a7234654b632ae8409325e03f4399fcfc35e3e1377d8"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/RAiDER/models/merra2.py"}, "region": {"startLine": 107}}}]}, {"ruleId": "SEC132", "level": "note", "message": {"text": "[SEC132] String concat where the language has interpolation (AI style drift): String built by concatenation where the language has cleaner interpolation (Python f-strings since 3.6, JS template literals since ES6). Not a vulnerability on its own, but a style signature of cross-language AI rewrites \u2014 the model wrote idiomatic Java/C# and then translated mechanically. When this style appears in only *some* files of a repo, it's a strong indicator of an AI-driven rewrite that needs a human review p"}, "properties": {"repobilityId": 131277, "scanner": "repobility-threat-engine", "fingerprint": "ff30d4e9e9976799e391088d96d00c430af748ed8b0312fab0c4ede86dbe169f", "category": "quality", "severity": "low", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "'/MERRA2_'\n            + str(url_sub)\n            + '", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC132", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|ff30d4e9e9976799e391088d96d00c430af748ed8b0312fab0c4ede86dbe169f"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/RAiDER/models/merra2.py"}, "region": {"startLine": 105}}}]}, {"ruleId": "COMP001", "level": "note", "message": {"text": "[COMP001] High cognitive complexity: Function `__init__` has cognitive complexity 12 (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=3, if=6, nested_bonus=3."}, "properties": {"repobilityId": 131272, "scanner": "repobility-threat-engine", "fingerprint": "dbfc05dc6acbb2bb7c2f4b2ad1d7dbf7cd2618e0c3fc9c3b652aac42517a03b1", "category": "quality", "severity": "low", "confidence": 0.95, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "AST-derived cognitive complexity score = 12 (severity threshold for low: 8+).", "evidence": {"scanner": "repobility-threat-engine", "function": "__init__", "breakdown": {"if": 6, "else": 3, "nested_bonus": 3}, "complexity": 12, "correlation_key": "fp|dbfc05dc6acbb2bb7c2f4b2ad1d7dbf7cd2618e0c3fc9c3b652aac42517a03b1"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/RAiDER/cli/types.py"}, "region": {"startLine": 60}}}]}, {"ruleId": "COMP001", "level": "note", "message": {"text": "[COMP001] High cognitive complexity: Function `checkArgs` has cognitive complexity 13 (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=3, for=1, if=4, nested_bonus=5."}, "properties": {"repobilityId": 131271, "scanner": "repobility-threat-engine", "fingerprint": "956fbd0a919f183b2c6234aa48b40905da24e17de99c26ef483ced0d2a67f1cc", "category": "quality", "severity": "low", "confidence": 0.95, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "AST-derived cognitive complexity score = 13 (severity threshold for low: 8+).", "evidence": {"scanner": "repobility-threat-engine", "function": "checkArgs", "breakdown": {"if": 4, "for": 1, "else": 3, "nested_bonus": 5}, "complexity": 13, "correlation_key": "fp|956fbd0a919f183b2c6234aa48b40905da24e17de99c26ef483ced0d2a67f1cc"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/RAiDER/checkArgs.py"}, "region": {"startLine": 21}}}]}, {"ruleId": "MINED013", "level": "none", "message": {"text": "[MINED013] Password In Url: https://user:password@host \u2014 leaks creds via logs, referrer, error messages."}, "properties": {"repobilityId": 131278, "scanner": "repobility-threat-engine", "fingerprint": "c81fc800f30826d30e76d0c3f5ea0b871f3425c2308e79c48e63f09b0f4d3712", "category": "quality", "severity": "info", "confidence": 0.1, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Safe pattern 'test\\b' detected on same line", "evidence": {"mined": true, "mining": {"slug": "password-in-url", "owasp": "A07:2021", "cwe_ids": ["CWE-200"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347928+00:00", "triaged_in_corpus": 20, "observations_count": 121646, "ai_coder_pattern_id": 37}, "scanner": "repobility-threat-engine", "correlation_key": "fp|c81fc800f30826d30e76d0c3f5ea0b871f3425c2308e79c48e63f09b0f4d3712"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/RAiDER/models/ncmr.py"}, "region": {"startLine": 98}}}]}, {"ruleId": "MINED043", "level": "none", "message": {"text": "[MINED043] Http Not Https: Hardcoded http:// (not localhost) for endpoints that handle credentials or data."}, "properties": {"repobilityId": 131274, "scanner": "repobility-threat-engine", "fingerprint": "609aec973048d841ee7234a196dab7ec7d2a301a0aca5b644fa7fa3901bf0529", "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|609aec973048d841ee7234a196dab7ec7d2a301a0aca5b644fa7fa3901bf0529"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/RAiDER/getStationDelays.py"}, "region": {"startLine": 45}}}]}, {"ruleId": "COMP001", "level": "none", "message": {"text": "[COMP001] High cognitive complexity (and 5 more): Same pattern found in 5 additional files. Review if needed."}, "properties": {"repobilityId": 131273, "scanner": "repobility-threat-engine", "fingerprint": "88bc83404cd2ee7008de79d63577b83ca6520a75ef847238a1ec8a3084ede646", "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": {"scanner": "repobility-threat-engine", "function": "update_gunw_slc", "breakdown": {"if": 1, "for": 5, "except": 4, "nested_bonus": 8}, "aggregated": true, "complexity": 18, "correlation_key": "fp|88bc83404cd2ee7008de79d63577b83ca6520a75ef847238a1ec8a3084ede646", "aggregated_count": 5}}}, {"ruleId": "MINED050", "level": "none", "message": {"text": "[MINED050] Stub Only Function (and 1 more): Same pattern found in 1 additional files. Review if needed."}, "properties": {"repobilityId": 131269, "scanner": "repobility-threat-engine", "fingerprint": "86ba1835d70968651e1fbb2569a4d94211de579a814cf34a5d1e1e2eafe3f130", "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": "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|86ba1835d70968651e1fbb2569a4d94211de579a814cf34a5d1e1e2eafe3f130", "aggregated_count": 1}}}, {"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": 131268, "scanner": "repobility-threat-engine", "fingerprint": "7b340879d48a2b1ac4ad3de68a46de9f5b078699402ccf52728297b2c3653ba0", "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|7b340879d48a2b1ac4ad3de68a46de9f5b078699402ccf52728297b2c3653ba0"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/RAiDER/models/template.py"}, "region": {"startLine": 152}}}]}, {"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": 131267, "scanner": "repobility-threat-engine", "fingerprint": "1a0bc185ea81e0a59633c23451cb8c1cb6e7d42fee5f36456a9d73372a924a6c", "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|1a0bc185ea81e0a59633c23451cb8c1cb6e7d42fee5f36456a9d73372a924a6c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/RAiDER/cli/types.py"}, "region": {"startLine": 105}}}]}, {"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": 131266, "scanner": "repobility-threat-engine", "fingerprint": "41016c46e534a14fabb140216c72becb19cfb420c10d5bccca6f42c01520ba1c", "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|41016c46e534a14fabb140216c72becb19cfb420c10d5bccca6f42c01520ba1c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/RAiDER/aria/calcGUNW.py"}, "region": {"startLine": 124}}}]}, {"ruleId": "MINED067", "level": "none", "message": {"text": "[MINED067] Python Requests No Timeout: requests.get/post/etc. without timeout= can hang forever."}, "properties": {"repobilityId": 131263, "scanner": "repobility-threat-engine", "fingerprint": "8ccb8e791db64200f17d099f054152e7ea9acf08f0e0f78ed30b3775085cac9c", "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|8ccb8e791db64200f17d099f054152e7ea9acf08f0e0f78ed30b3775085cac9c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/RAiDER/getStationDelays.py"}, "region": {"startLine": 70}}}]}, {"ruleId": "MINED067", "level": "none", "message": {"text": "[MINED067] Python Requests No Timeout: requests.get/post/etc. without timeout= can hang forever."}, "properties": {"repobilityId": 131262, "scanner": "repobility-threat-engine", "fingerprint": "861de20504f938ce6e6f58b4a7ac898b2807420cef7e4f88c4d6353cf7ae1093", "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|861de20504f938ce6e6f58b4a7ac898b2807420cef7e4f88c4d6353cf7ae1093"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/macros.py"}, "region": {"startLine": 15}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "[MINED115] Action `ASFHyP3/actions/.github/workflows/reusable-docker-ghcr.yml` pinned to mutable ref `@v0.20.0`: `uses: ASFHyP3/actions/.github/workflows/reusable-docker-ghcr.yml@v0.20.0` 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": {"repobilityId": 131369, "scanner": "repobility-supply-chain", "fingerprint": "c4caef1fa7a327361a3a422a4b5daff44ae399893ed0fc6aa68d3463bcd1133c", "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|c4caef1fa7a327361a3a422a4b5daff44ae399893ed0fc6aa68d3463bcd1133c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/build.yml"}, "region": {"startLine": 24}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "[MINED115] Action `ASFHyP3/actions/.github/workflows/reusable-version-info.yml` pinned to mutable ref `@v0.20.0`: `uses: ASFHyP3/actions/.github/workflows/reusable-version-info.yml@v0.20.0` 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": {"repobilityId": 131368, "scanner": "repobility-supply-chain", "fingerprint": "fc5e369fcbb83a250960f7005b3511d929c28860226451b4a0fdaaa1a207fe5f", "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|fc5e369fcbb83a250960f7005b3511d929c28860226451b4a0fdaaa1a207fe5f"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/build.yml"}, "region": {"startLine": 16}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "[MINED115] Action `mamba-org/setup-micromamba` pinned to mutable ref `@v2`: `uses: mamba-org/setup-micromamba@v2` 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": {"repobilityId": 131367, "scanner": "repobility-supply-chain", "fingerprint": "8c57585b139a74b2f3cc0720538e4ec08444fad3c36b293e692bddfb6ede06e4", "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|8c57585b139a74b2f3cc0720538e4ec08444fad3c36b293e692bddfb6ede06e4"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy-docs.yml"}, "region": {"startLine": 16}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "[MINED115] Action `actions/checkout` pinned to mutable ref `@v5`: `uses: actions/checkout@v5` 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": {"repobilityId": 131366, "scanner": "repobility-supply-chain", "fingerprint": "9d8adf7aa57870e78dd3d3a69e257b684a1e70738fb1d1f63bfc02cb9862173e", "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|9d8adf7aa57870e78dd3d3a69e257b684a1e70738fb1d1f63bfc02cb9862173e"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy-docs.yml"}, "region": {"startLine": 13}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "[MINED115] Action `ASFHyP3/actions/.github/workflows/reusable-release.yml` pinned to mutable ref `@v0.20.0`: `uses: ASFHyP3/actions/.github/workflows/reusable-release.yml@v0.20.0` 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": {"repobilityId": 131365, "scanner": "repobility-supply-chain", "fingerprint": "beb5be9cff074e77856a108aa54bc991ad2a8b5fc8126890ddad83756ccda71b", "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|beb5be9cff074e77856a108aa54bc991ad2a8b5fc8126890ddad83756ccda71b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 10}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "[MINED115] Action `ASFHyP3/actions/.github/workflows/reusable-bump-version.yml` pinned to mutable ref `@v0.20.0`: `uses: ASFHyP3/actions/.github/workflows/reusable-bump-version.yml@v0.20.0` 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": {"repobilityId": 131364, "scanner": "repobility-supply-chain", "fingerprint": "93451979cdaf6b7c234e9c1b043390daf3a0b1912c3db2311047eb2e60fff514", "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|93451979cdaf6b7c234e9c1b043390daf3a0b1912c3db2311047eb2e60fff514"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/tag.yml"}, "region": {"startLine": 10}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "[MINED115] Action `ASFHyP3/actions/.github/workflows/reusable-changelog-check.yml` pinned to mutable ref `@v0.20.0`: `uses: ASFHyP3/actions/.github/workflows/reusable-changelog-check.yml@v0.20.0` 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": {"repobilityId": 131363, "scanner": "repobility-supply-chain", "fingerprint": "e2aa147ba25b9a09ae303b656136bb5e375f0985c1f94cb02339cff9eed998c9", "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|e2aa147ba25b9a09ae303b656136bb5e375f0985c1f94cb02339cff9eed998c9"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/changelog.yml"}, "region": {"startLine": 16}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "[MINED115] Action `ASFHyP3/actions/.github/workflows/reusable-labeled-pr-check.yml` pinned to mutable ref `@v0.20.0`: `uses: ASFHyP3/actions/.github/workflows/reusable-labeled-pr-check.yml@v0.20.0` 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": {"repobilityId": 131362, "scanner": "repobility-supply-chain", "fingerprint": "98e4c9e946018bd8aa9c34e7e033a592c00320fcfc9219ddd5368b9ce1ee95fe", "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|98e4c9e946018bd8aa9c34e7e033a592c00320fcfc9219ddd5368b9ce1ee95fe"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/labeled-pr.yml"}, "region": {"startLine": 15}}}]}, {"ruleId": "MINED118", "level": "error", "message": {"text": "[MINED118] Dockerfile FROM `condaforge/mambaforge:latest` not pinned by digest: `FROM condaforge/mambaforge:latest` resolves the tag at build time. The registry CAN re-push a different image for the same tag, so every build is potentially different. Production images should pin to `image@sha256:...` for reproducibility + supply-chain integrity."}, "properties": {"repobilityId": 131361, "scanner": "repobility-supply-chain", "fingerprint": "51a98385ac256be1fd3052deaf40c7b7d0701e8da60dec29a25e70bdfe55ff29", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "docker-from-unpinned", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["dockerfile"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|51a98385ac256be1fd3052deaf40c7b7d0701e8da60dec29a25e70bdfe55ff29"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Dockerfile"}, "region": {"startLine": 1}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "[MINED106] Phantom test coverage: test_error_catching_with_s1_grid: Test function `test_error_catching_with_s1_grid` runs code but contains no assert / expect / should call \u2014 it passes regardless of behaviour. Adds line coverage without verifying anything."}, "properties": {"repobilityId": 131338, "scanner": "repobility-ast-engine", "fingerprint": "efa222b839198a7123cdd26c4ad1b6eab05135abcf282342c5c43696802299c4", "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|efa222b839198a7123cdd26c4ad1b6eab05135abcf282342c5c43696802299c4"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_s1_time_grid.py"}, "region": {"startLine": 311}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "[MINED106] Phantom test coverage: test_inverse_weighting: Test function `test_inverse_weighting` runs code but contains no assert / expect / should call \u2014 it passes regardless of behaviour. Adds line coverage without verifying anything."}, "properties": {"repobilityId": 131337, "scanner": "repobility-ast-engine", "fingerprint": "04d7a5122e57b37616760e89c5c91583cd597fe1c2c7d9f0ffb6be53bb8e0fa7", "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|04d7a5122e57b37616760e89c5c91583cd597fe1c2c7d9f0ffb6be53bb8e0fa7"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_s1_time_grid.py"}, "region": {"startLine": 221}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "[MINED106] Phantom test coverage: test_get_raster_ext: Test function `test_get_raster_ext` runs code but contains no assert / expect / should call \u2014 it passes regardless of behaviour. Adds line coverage without verifying anything."}, "properties": {"repobilityId": 131336, "scanner": "repobility-ast-engine", "fingerprint": "5b02bffeb9f7d847841ec22e70d8b3799ba8878ab243db958f83a3625c29e4fb", "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|5b02bffeb9f7d847841ec22e70d8b3799ba8878ab243db958f83a3625c29e4fb"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_checkArgs.py"}, "region": {"startLine": 171}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "[MINED106] Phantom test coverage: test_checkArgs_outfmt_3: Test function `test_checkArgs_outfmt_3` runs code but contains no assert / expect / should call \u2014 it passes regardless of behaviour. Adds line coverage without verifying anything."}, "properties": {"repobilityId": 131335, "scanner": "repobility-ast-engine", "fingerprint": "cfbb36e83009a3d37957a193520cbd92b9c5c75ac1c81d7aa0724240ad2e599e", "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|cfbb36e83009a3d37957a193520cbd92b9c5c75ac1c81d7aa0724240ad2e599e"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_checkArgs.py"}, "region": {"startLine": 62}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self._true_wet_refr` used but never assigned in __init__: Method `load_weather` of class `MockWeatherModel` reads `self._true_wet_refr`, 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": {"repobilityId": 131334, "scanner": "repobility-ast-engine", "fingerprint": "e1cb4399ee7927ad5d102e6f8ba090ed225f502ffae1ce92a6cb93ea01b1a053", "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|e1cb4399ee7927ad5d102e6f8ba090ed225f502ffae1ce92a6cb93ea01b1a053"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_weather_model.py"}, "region": {"startLine": 84}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self._true_wet_ztd` used but never assigned in __init__: Method `load_weather` of class `MockWeatherModel` reads `self._true_wet_ztd`, 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": {"repobilityId": 131333, "scanner": "repobility-ast-engine", "fingerprint": "0738b04d0ff9f98f8de7e487e31d6c4d8d8ce3a5a5eaf2cbacd671a0983fa176", "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|0738b04d0ff9f98f8de7e487e31d6c4d8d8ce3a5a5eaf2cbacd671a0983fa176"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_weather_model.py"}, "region": {"startLine": 77}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self._e` used but never assigned in __init__: Method `load_weather` of class `MockWeatherModel` reads `self._e`, 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": {"repobilityId": 131332, "scanner": "repobility-ast-engine", "fingerprint": "56f18c832174c92614c5d6ea2777139ce70890aa0138c0fddebda0d31de69b71", "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|56f18c832174c92614c5d6ea2777139ce70890aa0138c0fddebda0d31de69b71"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_weather_model.py"}, "region": {"startLine": 70}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self._true_wet_refr` used but never assigned in __init__: Method `load_weather` of class `MockWeatherModel` reads `self._true_wet_refr`, 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": {"repobilityId": 131331, "scanner": "repobility-ast-engine", "fingerprint": "3a4388baa88ccfac5f4e4c5fcdc29bf18d6541a8f009e5a29e1472fddc5023fb", "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|3a4388baa88ccfac5f4e4c5fcdc29bf18d6541a8f009e5a29e1472fddc5023fb"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_weather_model.py"}, "region": {"startLine": 83}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self._true_hydro_ztd` used but never assigned in __init__: Method `load_weather` of class `MockWeatherModel` reads `self._true_hydro_ztd`, 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": {"repobilityId": 131330, "scanner": "repobility-ast-engine", "fingerprint": "427d02579b5920b06022c16d29cac3899307dced058b8da41648b1d82557afd3", "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|427d02579b5920b06022c16d29cac3899307dced058b8da41648b1d82557afd3"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_weather_model.py"}, "region": {"startLine": 79}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self._true_wet_ztd` used but never assigned in __init__: Method `load_weather` of class `MockWeatherModel` reads `self._true_wet_ztd`, 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": {"repobilityId": 131329, "scanner": "repobility-ast-engine", "fingerprint": "2c658e0b4c3dcaacfa42b2fcef43165a18709a4a04a743b2f08713f6d0112994", "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|2c658e0b4c3dcaacfa42b2fcef43165a18709a4a04a743b2f08713f6d0112994"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_weather_model.py"}, "region": {"startLine": 76}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self._true_hydro_refr` used but never assigned in __init__: Method `load_weather` of class `MockWeatherModel` reads `self._true_hydro_refr`, 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": {"repobilityId": 131328, "scanner": "repobility-ast-engine", "fingerprint": "cb8fe3cf79f288aadfefe3e73122beef8ca88d56cd6c62d40b5e64816cce2d92", "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|cb8fe3cf79f288aadfefe3e73122beef8ca88d56cd6c62d40b5e64816cce2d92"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_weather_model.py"}, "region": {"startLine": 75}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self._p` used but never assigned in __init__: Method `load_weather` of class `MockWeatherModel` reads `self._p`, 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": {"repobilityId": 131327, "scanner": "repobility-ast-engine", "fingerprint": "532bf489822e6a9b30dbf3ba1ac65fa7d4e5b703d74dfae10ed0bcf56ccdf8b5", "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|532bf489822e6a9b30dbf3ba1ac65fa7d4e5b703d74dfae10ed0bcf56ccdf8b5"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_weather_model.py"}, "region": {"startLine": 73}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self._e` used but never assigned in __init__: Method `load_weather` of class `MockWeatherModel` reads `self._e`, 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": {"repobilityId": 131326, "scanner": "repobility-ast-engine", "fingerprint": "866983decbf33895011572a42a8967bbc50b1ab282f226e4ee676d6d955dfebd", "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|866983decbf33895011572a42a8967bbc50b1ab282f226e4ee676d6d955dfebd"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_weather_model.py"}, "region": {"startLine": 69}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self._t` used but never assigned in __init__: Method `load_weather` of class `MockWeatherModel` reads `self._t`, 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": {"repobilityId": 131325, "scanner": "repobility-ast-engine", "fingerprint": "ec1bf979599e4556eee2011d1cf46532ba4733720f48b631f162643c9109754b", "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|ec1bf979599e4556eee2011d1cf46532ba4733720f48b631f162643c9109754b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_weather_model.py"}, "region": {"startLine": 68}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self._zs` used but never assigned in __init__: Method `load_weather` of class `MockWeatherModel` reads `self._zs`, 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": {"repobilityId": 131324, "scanner": "repobility-ast-engine", "fingerprint": "49527b780562190d14fde421297476c2e01eb62b9958f46caa577e190c7d9614", "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|49527b780562190d14fde421297476c2e01eb62b9958f46caa577e190c7d9614"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_weather_model.py"}, "region": {"startLine": 67}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self._xs` used but never assigned in __init__: Method `load_weather` of class `MockWeatherModel` reads `self._xs`, 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": {"repobilityId": 131323, "scanner": "repobility-ast-engine", "fingerprint": "4be1addc07d8688febf5224fac119e33da6440cb08fa9f84c08651637a0b3177", "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|4be1addc07d8688febf5224fac119e33da6440cb08fa9f84c08651637a0b3177"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_weather_model.py"}, "region": {"startLine": 66}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self._ys` used but never assigned in __init__: Method `load_weather` of class `MockWeatherModel` reads `self._ys`, 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": {"repobilityId": 131322, "scanner": "repobility-ast-engine", "fingerprint": "2ea3395e3c3b2ca500034ea40dd0e567c7a7c318ed2235d69c1f3fab267aece0", "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|2ea3395e3c3b2ca500034ea40dd0e567c7a7c318ed2235d69c1f3fab267aece0"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_weather_model.py"}, "region": {"startLine": 65}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "[MINED106] Phantom test coverage: test_hrrrak_dl2: Test function `test_hrrrak_dl2` runs code but contains no assert / expect / should call \u2014 it passes regardless of behaviour. Adds line coverage without verifying anything."}, "properties": {"repobilityId": 131321, "scanner": "repobility-ast-engine", "fingerprint": "1e7ced6a1d55e0fb52686859414d075273781c5012a3d182d40d135713fe1880", "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|1e7ced6a1d55e0fb52686859414d075273781c5012a3d182d40d135713fe1880"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_weather_model.py"}, "region": {"startLine": 421}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "[MINED106] Phantom test coverage: test_hrrrak_dl: Test function `test_hrrrak_dl` runs code but contains no assert / expect / should call \u2014 it passes regardless of behaviour. Adds line coverage without verifying anything."}, "properties": {"repobilityId": 131320, "scanner": "repobility-ast-engine", "fingerprint": "a707e898d290ce07ef7a65789077882b14161d2ee4a8de4768d519a55b29b40c", "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|a707e898d290ce07ef7a65789077882b14161d2ee4a8de4768d519a55b29b40c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_weather_model.py"}, "region": {"startLine": 409}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "[MINED106] Phantom test coverage: test_hrrr_badloc: Test function `test_hrrr_badloc` runs code but contains no assert / expect / should call \u2014 it passes regardless of behaviour. Adds line coverage without verifying anything."}, "properties": {"repobilityId": 131319, "scanner": "repobility-ast-engine", "fingerprint": "563cac1de8f7ed2d7c562accbbdb980770d74bc227a6379c0af2b001a130df8e", "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|563cac1de8f7ed2d7c562accbbdb980770d74bc227a6379c0af2b001a130df8e"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_weather_model.py"}, "region": {"startLine": 400}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "[MINED106] Phantom test coverage: test_get_bounds_indices_3: Test function `test_get_bounds_indices_3` runs code but contains no assert / expect / should call \u2014 it passes regardless of behaviour. Adds line coverage without verifying anything."}, "properties": {"repobilityId": 131318, "scanner": "repobility-ast-engine", "fingerprint": "874d905500e318e308b5975d034f51f8b9e03aa276d84541886af5b5452ca297", "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|874d905500e318e308b5975d034f51f8b9e03aa276d84541886af5b5452ca297"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_weather_model.py"}, "region": {"startLine": 380}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "[MINED106] Phantom test coverage: test_get_bounds_indices_2: Test function `test_get_bounds_indices_2` runs code but contains no assert / expect / should call \u2014 it passes regardless of behaviour. Adds line coverage without verifying anything."}, "properties": {"repobilityId": 131317, "scanner": "repobility-ast-engine", "fingerprint": "1023670186e3d2ee9192017fd8b4759bee4daea0c9f7bd333e46cee6bcbd1161", "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|1023670186e3d2ee9192017fd8b4759bee4daea0c9f7bd333e46cee6bcbd1161"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_weather_model.py"}, "region": {"startLine": 357}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "[MINED106] Phantom test coverage: test_badllfiles: Test function `test_badllfiles` runs code but contains no assert / expect / should call \u2014 it passes regardless of behaviour. Adds line coverage without verifying anything."}, "properties": {"repobilityId": 131316, "scanner": "repobility-ast-engine", "fingerprint": "9d5e24e75516cf45913fbdd92bc55739c5080ec573ecd1015fcbcf1eb623a3c8", "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|9d5e24e75516cf45913fbdd92bc55739c5080ec573ecd1015fcbcf1eb623a3c8"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_llreader.py"}, "region": {"startLine": 90}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "[MINED106] Phantom test coverage: test_latlon_reader_2: Test function `test_latlon_reader_2` runs code but contains no assert / expect / should call \u2014 it passes regardless of behaviour. Adds line coverage without verifying anything."}, "properties": {"repobilityId": 131315, "scanner": "repobility-ast-engine", "fingerprint": "f5c0ca7a2b2eea01461c6a619765d8be5a8b143bf79c18e32d3f87d8a9aaf1a2", "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|f5c0ca7a2b2eea01461c6a619765d8be5a8b143bf79c18e32d3f87d8a9aaf1a2"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_llreader.py"}, "region": {"startLine": 38}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "[MINED106] Phantom test coverage: test_Conventional: Test function `test_Conventional` runs code but contains no assert / expect / should call \u2014 it passes regardless of behaviour. Adds line coverage without verifying anything."}, "properties": {"repobilityId": 131314, "scanner": "repobility-ast-engine", "fingerprint": "f7f52e0b1de15385f7b1f8f562fc1fcd29cb73343844885b623bac00d9a3082b", "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|f7f52e0b1de15385f7b1f8f562fc1fcd29cb73343844885b623bac00d9a3082b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_losreader.py"}, "region": {"startLine": 292}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "[MINED106] Phantom test coverage: test_los_to_lv: Test function `test_los_to_lv` runs code but contains no assert / expect / should call \u2014 it passes regardless of behaviour. Adds line coverage without verifying anything."}, "properties": {"repobilityId": 131313, "scanner": "repobility-ast-engine", "fingerprint": "13a60a79f2431b943331f155cc42ebb0a0138d3cd8295844283d405b14f6fa21", "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|13a60a79f2431b943331f155cc42ebb0a0138d3cd8295844283d405b14f6fa21"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_losreader.py"}, "region": {"startLine": 177}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "[MINED106] Phantom test coverage: test_get_sv_4: Test function `test_get_sv_4` runs code but contains no assert / expect / should call \u2014 it passes regardless of behaviour. Adds line coverage without verifying anything."}, "properties": {"repobilityId": 131312, "scanner": "repobility-ast-engine", "fingerprint": "9bbe1d7a68633b8cf609ab41e8b7a08c06ba28dcd00b42ea6c1f21703e5364b9", "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|9bbe1d7a68633b8cf609ab41e8b7a08c06ba28dcd00b42ea6c1f21703e5364b9"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_losreader.py"}, "region": {"startLine": 149}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "[MINED106] Phantom test coverage: test_get_sv_3: Test function `test_get_sv_3` runs code but contains no assert / expect / should call \u2014 it passes regardless of behaviour. Adds line coverage without verifying anything."}, "properties": {"repobilityId": 131311, "scanner": "repobility-ast-engine", "fingerprint": "4d1f50b291633b97ea0c3619af56cd15a2de6c9ea4a7b3d04e4978a901073a73", "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|4d1f50b291633b97ea0c3619af56cd15a2de6c9ea4a7b3d04e4978a901073a73"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_losreader.py"}, "region": {"startLine": 142}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "[MINED106] Phantom test coverage: test_gnss_intersect: Test function `test_gnss_intersect` runs code but contains no assert / expect / should call \u2014 it passes regardless of behaviour. Adds line coverage without verifying anything."}, "properties": {"repobilityId": 131309, "scanner": "repobility-ast-engine", "fingerprint": "a784eb17b3a8232d711dc367f61b01f29f4502be315205bcfc04b3939d13f6da", "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|a784eb17b3a8232d711dc367f61b01f29f4502be315205bcfc04b3939d13f6da"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_intersect.py"}, "region": {"startLine": 82}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "[MINED106] Phantom test coverage: test_cube_intersect: Test function `test_cube_intersect` runs code but contains no assert / expect / should call \u2014 it passes regardless of behaviour. Adds line coverage without verifying anything."}, "properties": {"repobilityId": 131308, "scanner": "repobility-ast-engine", "fingerprint": "3e4d44b360aa84a667ad65a3d37b756e64a48565d13a7b49a8641f29f8f53c41", "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|3e4d44b360aa84a667ad65a3d37b756e64a48565d13a7b49a8641f29f8f53c41"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_intersect.py"}, "region": {"startLine": 19}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "[MINED106] Phantom test coverage: test_grid_dim_mismatch: Test function `test_grid_dim_mismatch` runs code but contains no assert / expect / should call \u2014 it passes regardless of behaviour. Adds line coverage without verifying anything."}, "properties": {"repobilityId": 131306, "scanner": "repobility-ast-engine", "fingerprint": "a3c7a1e0d27d938c65f6cce6b984c29df5c79b3d7d1eedd1769ba98a26b83f8d", "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|a3c7a1e0d27d938c65f6cce6b984c29df5c79b3d7d1eedd1769ba98a26b83f8d"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_interpolator.py"}, "region": {"startLine": 320}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "[MINED106] Phantom test coverage: test_interpolate_along_axis: Test function `test_interpolate_along_axis` runs code but contains no assert / expect / should call \u2014 it passes regardless of behaviour. Adds line coverage without verifying anything."}, "properties": {"repobilityId": 131305, "scanner": "repobility-ast-engine", "fingerprint": "1cad5c8f0012599fb191cc479f4acb576177e34e19f35e4330fbd94501ed0528", "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|1cad5c8f0012599fb191cc479f4acb576177e34e19f35e4330fbd94501ed0528"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_interpolator.py"}, "region": {"startLine": 70}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "[MINED106] Phantom test coverage: test_gunw_json_schema_path: Test function `test_gunw_json_schema_path` runs code but contains no assert / expect / should call \u2014 it passes regardless of behaviour. Adds line coverage without verifying anything."}, "properties": {"repobilityId": 131304, "scanner": "repobility-ast-engine", "fingerprint": "1403010db263d076df49e0cbe122b5e47912add0cc9026499713729a20f4a175", "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|1403010db263d076df49e0cbe122b5e47912add0cc9026499713729a20f4a175"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/conftest.py"}, "region": {"startLine": 55}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "[MINED106] Phantom test coverage: test_gunw_json_path: Test function `test_gunw_json_path` runs code but contains no assert / expect / should call \u2014 it passes regardless of behaviour. Adds line coverage without verifying anything."}, "properties": {"repobilityId": 131303, "scanner": "repobility-ast-engine", "fingerprint": "5442cffd738acfd19614cae9f36ed3618fd88e500d0fc383317c1a29160fd8a6", "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|5442cffd738acfd19614cae9f36ed3618fd88e500d0fc383317c1a29160fd8a6"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/conftest.py"}, "region": {"startLine": 49}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "[MINED106] Phantom test coverage: test_gunw_path_factory: Test function `test_gunw_path_factory` runs code but contains no assert / expect / should call \u2014 it passes regardless of behaviour. Adds line coverage without verifying anything."}, "properties": {"repobilityId": 131302, "scanner": "repobility-ast-engine", "fingerprint": "22b02ea4a3ef29731f31c04b96badb01d66344b74c0eb71c615c6e6e2ebc03bf", "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|22b02ea4a3ef29731f31c04b96badb01d66344b74c0eb71c615c6e6e2ebc03bf"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/conftest.py"}, "region": {"startLine": 34}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "[MINED106] Phantom test coverage: test_dir_path: Test function `test_dir_path` runs code but contains no assert / expect / should call \u2014 it passes regardless of behaviour. Adds line coverage without verifying anything."}, "properties": {"repobilityId": 131301, "scanner": "repobility-ast-engine", "fingerprint": "305fdbef377e7a76c6c53b88ec17aff9f0bf5ab57f67cbd33417d2ef36cfd920", "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|305fdbef377e7a76c6c53b88ec17aff9f0bf5ab57f67cbd33417d2ef36cfd920"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/conftest.py"}, "region": {"startLine": 29}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "[MINED106] Phantom test coverage: test_download_dem_3: Test function `test_download_dem_3` runs code but contains no assert / expect / should call \u2014 it passes regardless of behaviour. Adds line coverage without verifying anything."}, "properties": {"repobilityId": 131300, "scanner": "repobility-ast-engine", "fingerprint": "57fc34a4ba61adab06c43e4a5fc5870887405b22aa7bd1ea77cfc432a27b0409", "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|57fc34a4ba61adab06c43e4a5fc5870887405b22aa7bd1ea77cfc432a27b0409"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_dem.py"}, "region": {"startLine": 23}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "[MINED106] Phantom test coverage: test_download_dem_2: Test function `test_download_dem_2` runs code but contains no assert / expect / should call \u2014 it passes regardless of behaviour. Adds line coverage without verifying anything."}, "properties": {"repobilityId": 131299, "scanner": "repobility-ast-engine", "fingerprint": "989e00191ac2f16d3eefd2b6f9135f2598c10c386d6dfe11bb27bb4bd28127b0", "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|989e00191ac2f16d3eefd2b6f9135f2598c10c386d6dfe11bb27bb4bd28127b0"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_dem.py"}, "region": {"startLine": 18}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.dt` used but never assigned in __init__: Method `make_config_dict` of class `StudyArea` reads `self.dt`, 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": {"repobilityId": 131297, "scanner": "repobility-ast-engine", "fingerprint": "1e3a80a0055f3f7dde2a49b7a01fa03cace4c16d80883b0de0f5c706fe20b4ec", "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|1e3a80a0055f3f7dde2a49b7a01fa03cace4c16d80883b0de0f5c706fe20b4ec"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_synthetic.py"}, "region": {"startLine": 182}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.SNWE` used but never assigned in __init__: Method `make_config_dict` of class `StudyArea` reads `self.SNWE`, 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": {"repobilityId": 131296, "scanner": "repobility-ast-engine", "fingerprint": "0eeaf32d70bf8ed76a15d9ffd307ce535fac2eaf111cf8aa01c03264e7ab1160", "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|0eeaf32d70bf8ed76a15d9ffd307ce535fac2eaf111cf8aa01c03264e7ab1160"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_synthetic.py"}, "region": {"startLine": 179}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.orbit` used but never assigned in __init__: Method `make_config_dict` of class `StudyArea` reads `self.orbit`, 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": {"repobilityId": 131295, "scanner": "repobility-ast-engine", "fingerprint": "2be8fb05e6943e3e7d6e47b344bcb7906009ac8a4318b0975ccec99e2b5c296a", "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|2be8fb05e6943e3e7d6e47b344bcb7906009ac8a4318b0975ccec99e2b5c296a"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_synthetic.py"}, "region": {"startLine": 183}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.orbit` used but never assigned in __init__: Method `setup_region` of class `StudyArea` reads `self.orbit`, 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": {"repobilityId": 131294, "scanner": "repobility-ast-engine", "fingerprint": "7f7cc83913a58785e53c21bd26ba6c541f59987eeae0a4a45e019e434f847498", "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|7f7cc83913a58785e53c21bd26ba6c541f59987eeae0a4a45e019e434f847498"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_synthetic.py"}, "region": {"startLine": 172}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.dt` used but never assigned in __init__: Method `setup_region` of class `StudyArea` reads `self.dt`, 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": {"repobilityId": 131293, "scanner": "repobility-ast-engine", "fingerprint": "f4187b434a49c8f7496bcbef809874c47c64570570c02e4dd41cdc9a4a02a1b5", "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|f4187b434a49c8f7496bcbef809874c47c64570570c02e4dd41cdc9a4a02a1b5"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_synthetic.py"}, "region": {"startLine": 171}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.SNWE` used but never assigned in __init__: Method `setup_region` of class `StudyArea` reads `self.SNWE`, 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": {"repobilityId": 131292, "scanner": "repobility-ast-engine", "fingerprint": "f6642e9469bed7437bfba63d6a7db99a82f7877b5ff5fbc1bc38bbfea8f4d72b", "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|f6642e9469bed7437bfba63d6a7db99a82f7877b5ff5fbc1bc38bbfea8f4d72b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_synthetic.py"}, "region": {"startLine": 170}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.orbit` used but never assigned in __init__: Method `setup_region` of class `StudyArea` reads `self.orbit`, 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": {"repobilityId": 131291, "scanner": "repobility-ast-engine", "fingerprint": "ccb2a0f736b5a0dc1f48cc60d7062a5f3319d5b0c95167f6e6356cba2f891785", "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|ccb2a0f736b5a0dc1f48cc60d7062a5f3319d5b0c95167f6e6356cba2f891785"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_synthetic.py"}, "region": {"startLine": 163}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.dt` used but never assigned in __init__: Method `setup_region` of class `StudyArea` reads `self.dt`, 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": {"repobilityId": 131290, "scanner": "repobility-ast-engine", "fingerprint": "5cbbc7ecadd62e79bf6c8513715fc4a2645f6b9d2b0631de6b8af12cf5f842ec", "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|5cbbc7ecadd62e79bf6c8513715fc4a2645f6b9d2b0631de6b8af12cf5f842ec"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_synthetic.py"}, "region": {"startLine": 162}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.SNWE` used but never assigned in __init__: Method `setup_region` of class `StudyArea` reads `self.SNWE`, 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": {"repobilityId": 131289, "scanner": "repobility-ast-engine", "fingerprint": "288314bd4b5eaec3cf994abf82f5e7b452815df800e57576653239f81a5a8af9", "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|288314bd4b5eaec3cf994abf82f5e7b452815df800e57576653239f81a5a8af9"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_synthetic.py"}, "region": {"startLine": 161}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.orbit` used but never assigned in __init__: Method `setup_region` of class `StudyArea` reads `self.orbit`, 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": {"repobilityId": 131288, "scanner": "repobility-ast-engine", "fingerprint": "c5dcd172faf74ceddc069e9050044057d476900b860c7a985ac441530c0bebd3", "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|c5dcd172faf74ceddc069e9050044057d476900b860c7a985ac441530c0bebd3"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_synthetic.py"}, "region": {"startLine": 154}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.dt` used but never assigned in __init__: Method `setup_region` of class `StudyArea` reads `self.dt`, 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": {"repobilityId": 131287, "scanner": "repobility-ast-engine", "fingerprint": "c79698dc0942b932b5d9532dbbea36dde630c0ee581f1d07e8f51182323e89d5", "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|c79698dc0942b932b5d9532dbbea36dde630c0ee581f1d07e8f51182323e89d5"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_synthetic.py"}, "region": {"startLine": 153}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.SNWE` used but never assigned in __init__: Method `setup_region` of class `StudyArea` reads `self.SNWE`, 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": {"repobilityId": 131286, "scanner": "repobility-ast-engine", "fingerprint": "23673a3beab98cd542ebafa6311b1b9b4808e8b610687f6e2894d31f0763b615", "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|23673a3beab98cd542ebafa6311b1b9b4808e8b610687f6e2894d31f0763b615"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_synthetic.py"}, "region": {"startLine": 152}}}]}, {"ruleId": "DKR014", "level": "error", "message": {"text": "Dockerfile copies the entire context without .dockerignore"}, "properties": {"repobilityId": 131284, "scanner": "repobility-docker", "fingerprint": "00f4d6d99a18cb1b78828530452be2e60e16568c602581371c71f0a43d401b70", "category": "docker", "severity": "high", "confidence": 0.92, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Broad context copy and missing .dockerignore were found together.", "evidence": {"rule_id": "DKR014", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/"], "correlation_key": "fp|00f4d6d99a18cb1b78828530452be2e60e16568c602581371c71f0a43d401b70"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Dockerfile"}, "region": {"startLine": 36}}}]}, {"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": 131276, "scanner": "repobility-threat-engine", "fingerprint": "1f032d6ca393bb83e3094a754523b98e7c781a538e6078d6fc68f15df134c1e5", "category": "ssrf", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "url(u", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC029", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|1f032d6ca393bb83e3094a754523b98e7c781a538e6078d6fc68f15df134c1e5"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/RAiDER/models/gmao.py"}, "region": {"startLine": 87}}}]}, {"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": 131275, "scanner": "repobility-threat-engine", "fingerprint": "6622a725d1b49c30fbc909ee107237a2fd5e962ea813ed136311784c9b05244e", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "kwargs.update({\n            'crs': crs,\n            'transform': transform,\n            'wi", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC128", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|6622a725d1b49c30fbc909ee107237a2fd5e962ea813ed136311784c9b05244e"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/RAiDER/interpolator.py"}, "region": {"startLine": 198}}}]}, {"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": 131265, "scanner": "repobility-threat-engine", "fingerprint": "0d53d36946123d1794e1e1f66d7a402fc8d66ade4e969b2c49b03ff0f7bf1f87", "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|0d53d36946123d1794e1e1f66d7a402fc8d66ade4e969b2c49b03ff0f7bf1f87"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/RAiDER/cli/types.py"}, "region": {"startLine": 104}}}]}, {"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": 131264, "scanner": "repobility-threat-engine", "fingerprint": "0a505f643ee707a03729c8debf31ffe067c8285a5ef8bc9f35ee2f1535c0ae01", "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|0a505f643ee707a03729c8debf31ffe067c8285a5ef8bc9f35ee2f1535c0ae01"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/RAiDER/aria/calcGUNW.py"}, "region": {"startLine": 123}}}]}, {"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": 131261, "scanner": "repobility-threat-engine", "fingerprint": "9b92c1356c57f8be4f54bdaf5eaa467d7557fe4bae3ae7c7394252c940dd7d00", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "requests.get(", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC078", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|9b92c1356c57f8be4f54bdaf5eaa467d7557fe4bae3ae7c7394252c940dd7d00"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/RAiDER/getStationDelays.py"}, "region": {"startLine": 70}}}]}, {"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": 131260, "scanner": "repobility-threat-engine", "fingerprint": "44b19e389ec79d66f0960ecf668d131340720da528497e03eb0d093509a0e750", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "requests.get(", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC078", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|44b19e389ec79d66f0960ecf668d131340720da528497e03eb0d093509a0e750"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/macros.py"}, "region": {"startLine": 15}}}]}, {"ruleId": "MINED107", "level": "error", "message": {"text": "[MINED107] Missing import: `time` used but not imported: The file uses `time.something(...)` but never imports `time`. This raises NameError at runtime the first time the line executes."}, "properties": {"repobilityId": 131360, "scanner": "repobility-ast-engine", "fingerprint": "ab8dbb52791d3a120cdb7ca2244b29d6d33b10db7fef6be308c87c1971d99be0", "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|ab8dbb52791d3a120cdb7ca2244b29d6d33b10db7fef6be308c87c1971d99be0"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/RAiDER/models/merra2.py"}, "region": {"startLine": 92}}}]}, {"ruleId": "MINED107", "level": "error", "message": {"text": "[MINED107] Missing import: `time` used but not imported: The file uses `time.something(...)` but never imports `time`. This raises NameError at runtime the first time the line executes."}, "properties": {"repobilityId": 131356, "scanner": "repobility-ast-engine", "fingerprint": "5c53887bb1c95f19ac3f0fa27bef499edcf974cfff2b2a63a207ac42b63b0cd3", "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|5c53887bb1c95f19ac3f0fa27bef499edcf974cfff2b2a63a207ac42b63b0cd3"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/RAiDER/models/weatherModel.py"}, "region": {"startLine": 312}}}]}, {"ruleId": "MINED107", "level": "error", "message": {"text": "[MINED107] Missing import: `time` used but not imported: The file uses `time.something(...)` but never imports `time`. This raises NameError at runtime the first time the line executes."}, "properties": {"repobilityId": 131354, "scanner": "repobility-ast-engine", "fingerprint": "33fb436f2205a28e57e233d7422b08c819b118de98d4429384993229045d7525", "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|33fb436f2205a28e57e233d7422b08c819b118de98d4429384993229045d7525"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/RAiDER/cli/raider.py"}, "region": {"startLine": 827}}}]}, {"ruleId": "MINED107", "level": "error", "message": {"text": "[MINED107] Missing import: `datetime` used but not imported: The file uses `datetime.something(...)` but never imports `datetime`. This raises NameError at runtime the first time the line executes."}, "properties": {"repobilityId": 131347, "scanner": "repobility-ast-engine", "fingerprint": "37a9cc263039c661e5b4f0e25c87528375420bd02370b7d4a477b61b84ebbcef", "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|37a9cc263039c661e5b4f0e25c87528375420bd02370b7d4a477b61b84ebbcef"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/RAiDER/delay.py"}, "region": {"startLine": 366}}}]}, {"ruleId": "MINED107", "level": "error", "message": {"text": "[MINED107] Missing import: `datetime` used but not imported: The file uses `datetime.something(...)` but never imports `datetime`. This raises NameError at runtime the first time the line executes."}, "properties": {"repobilityId": 131346, "scanner": "repobility-ast-engine", "fingerprint": "bb947c03fa224cd5de78ad11ef61dc8691e9665531a5f20f2477f3b951ccad2b", "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|bb947c03fa224cd5de78ad11ef61dc8691e9665531a5f20f2477f3b951ccad2b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/RAiDER/utilFcns.py"}, "region": {"startLine": 417}}}]}, {"ruleId": "MINED107", "level": "error", "message": {"text": "[MINED107] Missing import: `array` used but not imported: The file uses `array.something(...)` but never imports `array`. This raises NameError at runtime the first time the line executes."}, "properties": {"repobilityId": 131345, "scanner": "repobility-ast-engine", "fingerprint": "6a3008e0ddb350711b5ef5783943674a7e6acdf03adc82d60546699e4d1060db", "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|6a3008e0ddb350711b5ef5783943674a7e6acdf03adc82d60546699e4d1060db"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/RAiDER/utilFcns.py"}, "region": {"startLine": 258}}}]}, {"ruleId": "MINED107", "level": "error", "message": {"text": "[MINED107] Missing import: `time` used but not imported: The file uses `time.something(...)` but never imports `time`. This raises NameError at runtime the first time the line executes."}, "properties": {"repobilityId": 131343, "scanner": "repobility-ast-engine", "fingerprint": "f55df444569ff3383c63c572f7bce3aaa86a414ba4c282245d17bf590dbb6149", "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|f55df444569ff3383c63c572f7bce3aaa86a414ba4c282245d17bf590dbb6149"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/RAiDER/getStationDelays.py"}, "region": {"startLine": 82}}}]}, {"ruleId": "MINED107", "level": "error", "message": {"text": "[MINED107] Missing import: `array` used but not imported: The file uses `array.something(...)` but never imports `array`. This raises NameError at runtime the first time the line executes."}, "properties": {"repobilityId": 131342, "scanner": "repobility-ast-engine", "fingerprint": "e39a30981cd2b87393d0bb96a3b016286beb57c87f473a4ec888eee408e8d1cb", "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|e39a30981cd2b87393d0bb96a3b016286beb57c87f473a4ec888eee408e8d1cb"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/RAiDER/interpolator.py"}, "region": {"startLine": 125}}}]}, {"ruleId": "MINED107", "level": "error", "message": {"text": "[MINED107] Missing import: `time` used but not imported: The file uses `time.something(...)` but never imports `time`. This raises NameError at runtime the first time the line executes."}, "properties": {"repobilityId": 131341, "scanner": "repobility-ast-engine", "fingerprint": "4e3152d635af30642c95cd5768f7adcc12801acca7c343f4702d64a29e7e93c6", "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|4e3152d635af30642c95cd5768f7adcc12801acca7c343f4702d64a29e7e93c6"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/RAiDER/processWM.py"}, "region": {"startLine": 142}}}]}, {"ruleId": "MINED107", "level": "error", "message": {"text": "[MINED107] Missing import: `time` used but not imported: The file uses `time.something(...)` but never imports `time`. This raises NameError at runtime the first time the line executes."}, "properties": {"repobilityId": 131310, "scanner": "repobility-ast-engine", "fingerprint": "c30a6c097afb2c6991f877ec946654925667482241c022f059c1859e16546d50", "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|c30a6c097afb2c6991f877ec946654925667482241c022f059c1859e16546d50"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_intersect.py"}, "region": {"startLine": 53}}}]}, {"ruleId": "MINED107", "level": "error", "message": {"text": "[MINED107] Missing import: `array` used but not imported: The file uses `array.something(...)` but never imports `array`. This raises NameError at runtime the first time the line executes."}, "properties": {"repobilityId": 131307, "scanner": "repobility-ast-engine", "fingerprint": "427f49515a53b4df4e33f985c1293bc20681061ea0582fab4d1aee0af1310352", "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|427f49515a53b4df4e33f985c1293bc20681061ea0582fab4d1aee0af1310352"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/test_interpolator.py"}, "region": {"startLine": 23}}}]}, {"ruleId": "MINED107", "level": "error", "message": {"text": "[MINED107] Missing import: `time` used but not imported: The file uses `time.something(...)` but never imports `time`. This raises NameError at runtime the first time the line executes."}, "properties": {"repobilityId": 131298, "scanner": "repobility-ast-engine", "fingerprint": "de9e4547b507a746b2c319ec0146d7f0a73ffee56063a9639247afce29a651cf", "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|de9e4547b507a746b2c319ec0146d7f0a73ffee56063a9639247afce29a651cf"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/__init__.py"}, "region": {"startLine": 53}}}]}, {"ruleId": "SEC084", "level": "error", "message": {"text": "[SEC084] JS: require() with non-literal: require(<variable>) loads arbitrary modules \u2014 equivalent to eval at module scope. Ported from eslint-plugin-security detect-non-literal-require (Apache-2.0)."}, "properties": {"repobilityId": 131279, "scanner": "repobility-threat-engine", "fingerprint": "c67d800911ffa8dcb4251ca5534d0f5e20007640c302bdb4ff490e5e9f183f9e", "category": "quality", "severity": "critical", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "REQUIRE( bisect_left", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC084", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|c67d800911ffa8dcb4251ca5534d0f5e20007640c302bdb4ff490e5e9f183f9e"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/bindings/interpolate/src/tests.cpp"}, "region": {"startLine": 9}}}]}]}]}