{"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": "scanner-cf30882a1e1cccd5", "name": "Possibly dead Python function: ts_viz", "shortDescription": {"text": "Possibly dead Python function: ts_viz"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c3e662bc2863f6c2", "name": "Possibly dead Python function: collect_liveboards", "shortDescription": {"text": "Possibly dead Python function: collect_liveboards"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-16b43adb9e37831c", "name": "Possibly dead Python function: summarize_liveboard", "shortDescription": {"text": "Possibly dead Python function: summarize_liveboard"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e40fb84585c16907", "name": "Possibly dead Python function: summarize_model", "shortDescription": {"text": "Possibly dead Python function: summarize_model"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-900e1d64b9d8804e", "name": "Possibly dead Python function: one", "shortDescription": {"text": "Possibly dead Python function: one"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-321be905c1cb3c09", "name": "Possibly dead Python function: import_tml", "shortDescription": {"text": "Possibly dead Python function: import_tml"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-da3d1779288859e2", "name": "Possibly dead Python function: list_attributes", "shortDescription": {"text": "Possibly dead Python function: list_attributes"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8aa96d474a691258", "name": "Possibly dead Python function: import_tml", "shortDescription": {"text": "Possibly dead Python function: import_tml"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b4087ca3dc3d10a3", "name": "Possibly dead Python function: create_attributes", "shortDescription": {"text": "Possibly dead Python function: create_attributes"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2107b96292b7b617", "name": "Possibly dead Python function: create_relationships", "shortDescription": {"text": "Possibly dead Python function: create_relationships"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3aad558d4e0b6078", "name": "Possibly dead Python function: create_facts", "shortDescription": {"text": "Possibly dead Python function: create_facts"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d90c11e9dd77b282", "name": "Possibly dead Python function: create_metrics", "shortDescription": {"text": "Possibly dead Python function: create_metrics"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f50c1458ee78e09d", "name": "Possibly dead Python function: dm_ref", "shortDescription": {"text": "Possibly dead Python function: dm_ref"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5cce863ef8e01e80", "name": "Possibly dead Python function: patch", "shortDescription": {"text": "Possibly dead Python function: patch"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-84c0d64f92885d8f", "name": "Possibly dead Python function: parity_fetch", "shortDescription": {"text": "Possibly dead Python function: parity_fetch"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5806799090fc1be3", "name": "Possibly dead Python function: list_attributes", "shortDescription": {"text": "Possibly dead Python function: list_attributes"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1e42390d7424a1f0", "name": "Possibly dead Python function: one", "shortDescription": {"text": "Possibly dead Python function: one"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-eec09b10995c6f7e", "name": "Possibly dead Python function: list_attributes", "shortDescription": {"text": "Possibly dead Python function: list_attributes"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5618b781ea207913", "name": "Possibly dead Python function: list_attributes", "shortDescription": {"text": "Possibly dead Python function: list_attributes"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-08bbfc129e39a860", "name": "Possibly dead Python function: list_attributes", "shortDescription": {"text": "Possibly dead Python function: list_attributes"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1b3590c98e5d0e7a", "name": "Possibly dead Python function: set_analysis", "shortDescription": {"text": "Possibly dead Python function: set_analysis"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-399a5a71be168c33", "name": "Possibly dead Python function: list_attributes", "shortDescription": {"text": "Possibly dead Python function: list_attributes"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0293481b3ef79904", "name": "Possibly dead Python function: probe", "shortDescription": {"text": "Possibly dead Python function: probe"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a9c9dbcd25038a91", "name": "Possibly dead Python function: one", "shortDescription": {"text": "Possibly dead Python function: one"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-44abb6723aafc792", "name": "Possibly dead Python function: list_attributes", "shortDescription": {"text": "Possibly dead Python function: list_attributes"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2a0d2ac17c773220", "name": "Stray `console.log` in TS/JS \u2014 plugins/cognos-to-sigma/skills/cognos-to-sigma/converter/test.ts:28", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 plugins/cognos-to-sigma/skills/cognos-to-sigma/converter/test.ts:28"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9710c8d059e53154", "name": "No frontend routes/components detected", "shortDescription": {"text": "No frontend routes/components detected"}, "fullDescription": {"text": "No React/Vue/Next routes were found. This is fine for backend-only repos."}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ef7fe0c963bcf9a5", "name": "Insecure pattern 'eval_used' in plugins/looker-to-sigma/skills/looker-to-sigma/scripts/migrate-looker.py:322", "shortDescription": {"text": "Insecure pattern 'eval_used' in plugins/looker-to-sigma/skills/looker-to-sigma/scripts/migrate-looker.py:322"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-44ae07cfe46bf927", "name": "Insecure pattern 'weak_hash' in plugins/quicksight-to-sigma/skills/quicksight-to-sigma/scripts/lib/sigma_functions.rb:47", "shortDescription": {"text": "Insecure pattern 'weak_hash' in plugins/quicksight-to-sigma/skills/quicksight-to-sigma/scripts/lib/sigma_functions.rb:47"}, "fullDescription": {"text": "Found a known-risky pattern (weak_hash). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e457c9abd18f5046", "name": "Insecure pattern 'weak_hash' in plugins/tableau-to-sigma/skills/tableau-to-sigma/scripts/enhance-scan.rb:309", "shortDescription": {"text": "Insecure pattern 'weak_hash' in plugins/tableau-to-sigma/skills/tableau-to-sigma/scripts/enhance-scan.rb:309"}, "fullDescription": {"text": "Found a known-risky pattern (weak_hash). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-279f5589fd624bfb", "name": "Insecure pattern 'weak_hash' in plugins/tableau-to-sigma/skills/tableau-to-sigma/scripts/lib/sigma_functions.rb:49", "shortDescription": {"text": "Insecure pattern 'weak_hash' in plugins/tableau-to-sigma/skills/tableau-to-sigma/scripts/lib/sigma_functions.rb:49"}, "fullDescription": {"text": "Found a known-risky pattern (weak_hash). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1bbaf807a0bfa652", "name": "Insecure pattern 'node_child_process' in plugins/cognos-to-sigma/skills/cognos-to-sigma/scripts/apply-layout.mjs:28", "shortDescription": {"text": "Insecure pattern 'node_child_process' in plugins/cognos-to-sigma/skills/cognos-to-sigma/scripts/apply-layout.mjs:28"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-09eeef8548906dbd", "name": "Insecure pattern 'node_child_process' in plugins/cognos-to-sigma/skills/cognos-to-sigma/scripts/migrate-cognos.mjs:55", "shortDescription": {"text": "Insecure pattern 'node_child_process' in plugins/cognos-to-sigma/skills/cognos-to-sigma/scripts/migrate-cognos.mjs:55"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2978ba460524df9d", "name": "Insecure pattern 'weak_hash' in plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/enhance-scan.rb:309", "shortDescription": {"text": "Insecure pattern 'weak_hash' in plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/enhance-scan.rb:309"}, "fullDescription": {"text": "Found a known-risky pattern (weak_hash). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea4e683a3b9c968d", "name": "Insecure pattern 'weak_hash' in plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/build-workbook-from-pbir.rb:395", "shortDescription": {"text": "Insecure pattern 'weak_hash' in plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/build-workbook-from-pbir.rb:395"}, "fullDescription": {"text": "Found a known-risky pattern (weak_hash). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6614481cd92912e4", "name": "Insecure pattern 'weak_hash' in plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/migrate-powerbi.rb:593", "shortDescription": {"text": "Insecure pattern 'weak_hash' in plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/migrate-powerbi.rb:593"}, "fullDescription": {"text": "Found a known-risky pattern (weak_hash). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4a85127927d9fef1", "name": "Insecure pattern 'weak_hash' in plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/lib/sigma_functions.rb:49", "shortDescription": {"text": "Insecure pattern 'weak_hash' in plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/lib/sigma_functions.rb:49"}, "fullDescription": {"text": "Found a known-risky pattern (weak_hash). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3f7553128776acd6", "name": "Very large file: plugins/microstrategy-to-sigma/skills/microstrategy-to-sigma/scripts/convert.py (1164 lines)", "shortDescription": {"text": "Very large file: plugins/microstrategy-to-sigma/skills/microstrategy-to-sigma/scripts/convert.py (1164 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a0ff8ff49d60110c", "name": "Very large file: plugins/looker-to-sigma/skills/looker-to-sigma/scripts/build_workbook.py (1093 lines)", "shortDescription": {"text": "Very large file: plugins/looker-to-sigma/skills/looker-to-sigma/scripts/build_workbook.py (1093 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "2 test file(s) for 116 source file(s) (ratio 0.02). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 722 console/debugger/print-style debug statements in non-test source. This is a common fast-generation residue before production cleanup."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-72b2a6250083a784", "name": "Placeholder or mock-heavy implementation detected", "shortDescription": {"text": "Placeholder or mock-heavy implementation detected"}, "fullDescription": {"text": "Found 71 placeholder/mock markers across 43 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0f512696b1dd2c4a", "name": "Agent instruction/config may expose a secret: plugins/tableau-to-sigma/skills/tableau-vds-to-cdw/SKILL.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: plugins/tableau-to-sigma/skills/tableau-vds-to-cdw/SKILL.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ba69b29e105233e7", "name": "Legacy-named symbol `client_state_v2` in plugins/thoughtspot-to-sigma/skills/thoughtspot-to-sigma/scripts/ts_common.py:2", "shortDescription": {"text": "Legacy-named symbol `client_state_v2` in plugins/thoughtspot-to-sigma/skills/thoughtspot-to-sigma/scripts/ts_common.py:221"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-73e951bcdf176df3", "name": "Commented-code block (7 lines) in plugins/thoughtspot-to-sigma/skills/thoughtspot-to-sigma/scripts/ts_common.py:31", "shortDescription": {"text": "Commented-code block (7 lines) in plugins/thoughtspot-to-sigma/skills/thoughtspot-to-sigma/scripts/ts_common.py:31"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a538f446fccb69d0", "name": "Network/subprocess call without timeout or try/except \u2014 plugins/thoughtspot-to-sigma/skills/thoughtspot-to-sigma/scripts", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/thoughtspot-to-sigma/skills/thoughtspot-to-sigma/scripts/compare.py:30"}, "fullDescription": {"text": "`urllib.request.urlopen(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f6c5e1db7fa1e668", "name": "Commented-code block (6 lines) in plugins/thoughtspot-to-sigma/skills/thoughtspot-to-sigma/scripts/migrate.py:287", "shortDescription": {"text": "Commented-code block (6 lines) in plugins/thoughtspot-to-sigma/skills/thoughtspot-to-sigma/scripts/migrate.py:287"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dd525fa7e882eead", "name": "Network/subprocess call without timeout or try/except \u2014 plugins/thoughtspot-to-sigma/skills/thoughtspot-to-sigma/scripts", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/thoughtspot-to-sigma/skills/thoughtspot-to-sigma/scripts/migrate.py:82"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8b2190675b3c1b2f", "name": "Commented-code block (6 lines) in plugins/thoughtspot-to-sigma/skills/thoughtspot-to-sigma/scripts/migrate-thoughtspot.p", "shortDescription": {"text": "Commented-code block (6 lines) in plugins/thoughtspot-to-sigma/skills/thoughtspot-to-sigma/scripts/migrate-thoughtspot.py:561"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-acd56333f9e06927", "name": "Network/subprocess call without timeout or try/except \u2014 plugins/thoughtspot-to-sigma/skills/thoughtspot-to-sigma/scripts", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/thoughtspot-to-sigma/skills/thoughtspot-to-sigma/scripts/migrate-thoughtspot.py:76"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1376a962ef72c12a", "name": "Network/subprocess call without timeout or try/except \u2014 plugins/thoughtspot-to-sigma/skills/thoughtspot-to-sigma/scripts", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/thoughtspot-to-sigma/skills/thoughtspot-to-sigma/scripts/ts_screenshot.py:63"}, "fullDescription": {"text": "`urllib.request.urlopen(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a71d2f20c2643c19", "name": "Network/subprocess call without timeout or try/except \u2014 plugins/thoughtspot-to-sigma/skills/thoughtspot-to-sigma/scripts", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/thoughtspot-to-sigma/skills/thoughtspot-to-sigma/scripts/pick_destination.py:46"}, "fullDescription": {"text": "`urllib.request.urlopen(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5b9c3e3d061c91c4", "name": "Commented-code block (8 lines) in plugins/thoughtspot-to-sigma/skills/thoughtspot-assessment/scripts/scan.py:31", "shortDescription": {"text": "Commented-code block (8 lines) in plugins/thoughtspot-to-sigma/skills/thoughtspot-assessment/scripts/scan.py:31"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-99cf203aaa812e3b", "name": "Network/subprocess call without timeout or try/except \u2014 plugins/microstrategy-to-sigma/skills/microstrategy-to-sigma/scr", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/microstrategy-to-sigma/skills/microstrategy-to-sigma/scripts/sigma-export-png.py:34"}, "fullDescription": {"text": "`requests.post(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d9189191381e6f1f", "name": "Network/subprocess call without timeout or try/except \u2014 plugins/microstrategy-to-sigma/skills/microstrategy-to-sigma/scr", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/microstrategy-to-sigma/skills/microstrategy-to-sigma/scripts/pick_destination.py:46"}, "fullDescription": {"text": "`urllib.request.urlopen(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-90308af52bdbb732", "name": "Commented-code block (5 lines) in plugins/microstrategy-to-sigma/skills/microstrategy-assessment/scripts/assess.py:35", "shortDescription": {"text": "Commented-code block (5 lines) in plugins/microstrategy-to-sigma/skills/microstrategy-assessment/scripts/assess.py:35"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-72479a4cd9234dcc", "name": "Commented-code block (7 lines) in plugins/looker-to-sigma/skills/looker-to-sigma/scripts/migrate-looker.py:553", "shortDescription": {"text": "Commented-code block (7 lines) in plugins/looker-to-sigma/skills/looker-to-sigma/scripts/migrate-looker.py:553"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6aa29df7e15b81a5", "name": "Network/subprocess call without timeout or try/except \u2014 plugins/looker-to-sigma/skills/looker-to-sigma/scripts/migrate-l", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/looker-to-sigma/skills/looker-to-sigma/scripts/migrate-looker.py:127"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b8c97572e007a329", "name": "Commented-code block (8 lines) in plugins/looker-to-sigma/skills/looker-to-sigma/scripts/looker_api.py:21", "shortDescription": {"text": "Commented-code block (8 lines) in plugins/looker-to-sigma/skills/looker-to-sigma/scripts/looker_api.py:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fac8cf15bf2105ff", "name": "Commented-code block (10 lines) in plugins/looker-to-sigma/skills/looker-to-sigma/scripts/convert_dm.mjs:10", "shortDescription": {"text": "Commented-code block (10 lines) in plugins/looker-to-sigma/skills/looker-to-sigma/scripts/convert_dm.mjs:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-03c236dcd4776313", "name": "Network/subprocess call without timeout or try/except \u2014 plugins/looker-to-sigma/skills/looker-to-sigma/scripts/sigma-exp", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/looker-to-sigma/skills/looker-to-sigma/scripts/sigma-export-png.py:34"}, "fullDescription": {"text": "`requests.post(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d850b6d8e4f47c4b", "name": "Commented-code block (8 lines) in plugins/looker-to-sigma/skills/looker-to-sigma/scripts/build_workbook.py:23", "shortDescription": {"text": "Commented-code block (8 lines) in plugins/looker-to-sigma/skills/looker-to-sigma/scripts/build_workbook.py:23"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9d5e7450ce727e8f", "name": "Network/subprocess call without timeout or try/except \u2014 plugins/looker-to-sigma/skills/looker-to-sigma/scripts/pick_dest", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/looker-to-sigma/skills/looker-to-sigma/scripts/pick_destination.py:46"}, "fullDescription": {"text": "`urllib.request.urlopen(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bbf6807d210caff9", "name": "Commented-code block (8 lines) in plugins/looker-to-sigma/skills/looker-assessment/scripts/looker_api.py:21", "shortDescription": {"text": "Commented-code block (8 lines) in plugins/looker-to-sigma/skills/looker-assessment/scripts/looker_api.py:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bf9bb8a2523126ed", "name": "Commented-code block (5 lines) in plugins/looker-to-sigma/skills/looker-assessment/scripts/looker-inventory.py:145", "shortDescription": {"text": "Commented-code block (5 lines) in plugins/looker-to-sigma/skills/looker-assessment/scripts/looker-inventory.py:145"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cef882fc17a3fe13", "name": "Network/subprocess call without timeout or try/except \u2014 plugins/quicksight-to-sigma/skills/quicksight-to-sigma/scripts/b", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/quicksight-to-sigma/skills/quicksight-to-sigma/scripts/build-bookmark-workbooks.py:77"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-707ba12d09e7abb5", "name": "Network/subprocess call without timeout or try/except \u2014 plugins/quicksight-to-sigma/skills/quicksight-to-sigma/scripts/s", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/quicksight-to-sigma/skills/quicksight-to-sigma/scripts/sigma-export-png.py:34"}, "fullDescription": {"text": "`requests.post(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7d45ca0c75e9a745", "name": "Network/subprocess call without timeout or try/except \u2014 plugins/quicksight-to-sigma/skills/quicksight-to-sigma/scripts/q", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/quicksight-to-sigma/skills/quicksight-to-sigma/scripts/quicksight-discover.py:133"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-33cd9bb128b12d3a", "name": "Network/subprocess call without timeout or try/except \u2014 plugins/tableau-to-sigma/skills/tableau-to-sigma/scripts/build-b", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/tableau-to-sigma/skills/tableau-to-sigma/scripts/build-bookmark-workbooks.py:77"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ca4e1791a3199e5b", "name": "Network/subprocess call without timeout or try/except \u2014 plugins/tableau-to-sigma/skills/tableau-to-sigma/scripts/sigma-e", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/tableau-to-sigma/skills/tableau-to-sigma/scripts/sigma-export-png.py:34"}, "fullDescription": {"text": "`requests.post(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a1fed95c42fbd660", "name": "Network/subprocess call without timeout or try/except \u2014 plugins/tableau-to-sigma/skills/tableau-to-sigma/scripts/extract", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/tableau-to-sigma/skills/tableau-to-sigma/scripts/extract-custom-views.py:33"}, "fullDescription": {"text": "`urllib.request.urlopen(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-328ea07fee5e601d", "name": "Commented-code block (15 lines) in plugins/cognos-to-sigma/skills/cognos-to-sigma/scripts/apply-layout.mjs:5", "shortDescription": {"text": "Commented-code block (15 lines) in plugins/cognos-to-sigma/skills/cognos-to-sigma/scripts/apply-layout.mjs:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-179db466742f1b0b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 plugins/cognos-to-sigma/skills/cognos-to-sigma/scripts/pick-destination.mj", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 plugins/cognos-to-sigma/skills/cognos-to-sigma/scripts/pick-destination.mjs:38"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9ef0f225b91cf98d", "name": "Network/subprocess call without timeout or try/except \u2014 plugins/cognos-to-sigma/skills/cognos-to-sigma/scripts/sigma-exp", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/cognos-to-sigma/skills/cognos-to-sigma/scripts/sigma-export-png.py:34"}, "fullDescription": {"text": "`requests.post(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d605b10eca9ec44b", "name": "Commented-code block (8 lines) in plugins/cognos-to-sigma/skills/cognos-to-sigma/scripts/migrate-cognos.mjs:2", "shortDescription": {"text": "Commented-code block (8 lines) in plugins/cognos-to-sigma/skills/cognos-to-sigma/scripts/migrate-cognos.mjs:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-56421c6681836ae4", "name": "Commented-code block (5 lines) in plugins/cognos-to-sigma/skills/cognos-to-sigma/scripts/remap-wb-to-dm-ids.mjs:4", "shortDescription": {"text": "Commented-code block (5 lines) in plugins/cognos-to-sigma/skills/cognos-to-sigma/scripts/remap-wb-to-dm-ids.mjs:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-66226db51219cd28", "name": "Commented-code block (6 lines) in plugins/cognos-to-sigma/skills/cognos-to-sigma/scripts/scout-validate-and-persist.mjs:", "shortDescription": {"text": "Commented-code block (6 lines) in plugins/cognos-to-sigma/skills/cognos-to-sigma/scripts/scout-validate-and-persist.mjs:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-51bc63ef805c1fe9", "name": "Commented-code block (5 lines) in plugins/cognos-to-sigma/skills/cognos-to-sigma/converter/sigma-ids.ts:57", "shortDescription": {"text": "Commented-code block (5 lines) in plugins/cognos-to-sigma/skills/cognos-to-sigma/converter/sigma-ids.ts:57"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-51b8ef389f2ebbcd", "name": "Commented-code block (5 lines) in plugins/cognos-to-sigma/skills/cognos-to-sigma/converter/cognos-report.ts:141", "shortDescription": {"text": "Commented-code block (5 lines) in plugins/cognos-to-sigma/skills/cognos-to-sigma/converter/cognos-report.ts:141"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-26035f66e0c44d2b", "name": "Network/subprocess call without timeout or try/except \u2014 plugins/qlik-to-sigma/skills/qlik-to-sigma/scripts/batch-migrate", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/qlik-to-sigma/skills/qlik-to-sigma/scripts/batch-migrate.py:83"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3b91c28542ae2d61", "name": "Commented-code block (8 lines) in plugins/qlik-to-sigma/skills/qlik-to-sigma/scripts/build-sigma-workbook.py:423", "shortDescription": {"text": "Commented-code block (8 lines) in plugins/qlik-to-sigma/skills/qlik-to-sigma/scripts/build-sigma-workbook.py:423"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6e190f4c9c3d9981", "name": "Network/subprocess call without timeout or try/except \u2014 plugins/qlik-to-sigma/skills/qlik-to-sigma/scripts/sigma-export-", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/qlik-to-sigma/skills/qlik-to-sigma/scripts/sigma-export-png.py:34"}, "fullDescription": {"text": "`requests.post(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f338a16ed6fdf2b7", "name": "Commented-code block (6 lines) in plugins/qlik-to-sigma/skills/qlik-to-sigma/scripts/gen-denorm-sql.py:16", "shortDescription": {"text": "Commented-code block (6 lines) in plugins/qlik-to-sigma/skills/qlik-to-sigma/scripts/gen-denorm-sql.py:16"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f43b4598dfc647c7", "name": "Commented-code block (5 lines) in plugins/qlik-to-sigma/skills/qlik-to-sigma/scripts/qlik-discover.py:72", "shortDescription": {"text": "Commented-code block (5 lines) in plugins/qlik-to-sigma/skills/qlik-to-sigma/scripts/qlik-discover.py:72"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8ba9b5b606aeb021", "name": "Network/subprocess call without timeout or try/except \u2014 plugins/qlik-to-sigma/skills/qlik-to-sigma/scripts/qlik-discover", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/qlik-to-sigma/skills/qlik-to-sigma/scripts/qlik-discover.py:106"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2a5bfd16e73764f0", "name": "Network/subprocess call without timeout or try/except \u2014 plugins/qlik-to-sigma/skills/qlik-to-sigma/scripts/qlik-screensh", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/qlik-to-sigma/skills/qlik-to-sigma/scripts/qlik-screenshot.py:48"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3b1e47bc986c5fb9", "name": "Network/subprocess call without timeout or try/except \u2014 plugins/qlik-to-sigma/skills/qlik-assessment/scripts/qlik-invent", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/qlik-to-sigma/skills/qlik-assessment/scripts/qlik-inventory.py:44"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2123d036a9c094bf", "name": "Network/subprocess call without timeout or try/except \u2014 plugins/powerbi-to-sigma/skills/powerbi-assessment/scripts/fabri", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/powerbi-to-sigma/skills/powerbi-assessment/scripts/fabric-inventory.py:83"}, "fullDescription": {"text": "`requests.post(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-998f9f77cc90c416", "name": "Network/subprocess call without timeout or try/except \u2014 plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/export-", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/export-pbi-pages.py:53"}, "fullDescription": {"text": "`requests.post(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-99b7fce68c6d0da5", "name": "Network/subprocess call without timeout or try/except \u2014 plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/build-b", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/build-bookmark-workbooks.py:77"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-18ff751bb2def0ba", "name": "Commented-code block (5 lines) in plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/extract-pbir.py:55", "shortDescription": {"text": "Commented-code block (5 lines) in plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/extract-pbir.py:55"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-739b211c108d0ed4", "name": "Network/subprocess call without timeout or try/except \u2014 plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/pbi-fre", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/pbi-freshness.py:122"}, "fullDescription": {"text": "`requests.get(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6f4820c6bc55b83c", "name": "Network/subprocess call without timeout or try/except \u2014 plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/sigma-e", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/sigma-export-png.py:30"}, "fullDescription": {"text": "`requests.post(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-389493bca08920a9", "name": "Network/subprocess call without timeout or try/except \u2014 plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/pbi_fab", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/pbi_fabric.py:128"}, "fullDescription": {"text": "`requests.post(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b369e0b29a37c8b5", "name": "Commented-code block (6 lines) in plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/extract-report-classic.py:38", "shortDescription": {"text": "Commented-code block (6 lines) in plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/extract-report-classic.py:38"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a62dd8ac494820d7", "name": "Network/subprocess call without timeout or try/except \u2014 plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/pbi_exe", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/pbi_exec.py:28"}, "fullDescription": {"text": "`requests.post(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1a7fe77f1609db88", "name": "Network/subprocess call without timeout or try/except \u2014 plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/fabric-", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/fabric-auth-check.py:38"}, "fullDescription": {"text": "`requests.get(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nplugins/thoughtspot-to-sigma/skills/thoughtspot-to-sigma/scripts/learned-rules.py:home_dir, plugins/qlik-to-sigma/skills/qlik-to-sigma/scripts/learned-rules.py:home_dir\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-49c98f7cedd9c977", "name": "Near-duplicate function bodies in 4 places", "shortDescription": {"text": "Near-duplicate function bodies in 4 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nplugins/thoughtspot-to-sigma/skills/thoughtspot-to-sigma/scripts/learned-rules.py:load, plugins/looker-to-sigma/skills/looker-to-sigma/scripts/learned-rules.py:load, plugins/qlik-to-sigma/skills/qlik-to-sigma/scripts/learned-rules.py:load, plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/learned-rules.py:load\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0027e313ade46c8f", "name": "Near-duplicate function bodies in 7 places", "shortDescription": {"text": "Near-duplicate function bodies in 7 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nplugins/thoughtspot-to-sigma/skills/thoughtspot-to-sigma/scripts/escalate-gap.py:have, plugins/looker-to-sigma/skills/looker-to-sigma/scripts/escalate-gap.py:have, plugins/quicksight-to-sigma/skills/quicksight-to-sigma/scripts/escalate-gap.py:have, plugins/tableau-to-sigma/skills/tableau-to-sigma/scripts/escalate-gap.py:have\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/21768"}, "properties": {"repository": "twells89/sigma-migration-skills", "repoUrl": "https://github.com/twells89/sigma-migration-skills", "branch": "main"}, "results": [{"ruleId": "scanner-cf30882a1e1cccd5", "level": "note", "message": {"text": "Possibly dead Python function: ts_viz"}, "properties": {"repobilityId": "5dc79b8e8f64940a", "scanner": "scanner-primary", "fingerprint": "cf30882a1e1cccd5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/thoughtspot-to-sigma/skills/thoughtspot-to-sigma/scripts/ts_common.py:109"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c3e662bc2863f6c2", "level": "note", "message": {"text": "Possibly dead Python function: collect_liveboards"}, "properties": {"repobilityId": "eee66083912828da", "scanner": "scanner-primary", "fingerprint": "c3e662bc2863f6c2", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/thoughtspot-to-sigma/skills/thoughtspot-to-sigma/scripts/migrate.py:188"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-16b43adb9e37831c", "level": "note", "message": {"text": "Possibly dead Python function: summarize_liveboard"}, "properties": {"repobilityId": "8b9276e6eaf47555", "scanner": "scanner-primary", "fingerprint": "16b43adb9e37831c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/thoughtspot-to-sigma/skills/thoughtspot-to-sigma/scripts/ts_discover.py:17"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e40fb84585c16907", "level": "note", "message": {"text": "Possibly dead Python function: summarize_model"}, "properties": {"repobilityId": "53228f1bcfdcaeb3", "scanner": "scanner-primary", "fingerprint": "e40fb84585c16907", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/thoughtspot-to-sigma/skills/thoughtspot-to-sigma/scripts/ts_discover.py:34"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-900e1d64b9d8804e", "level": "note", "message": {"text": "Possibly dead Python function: one"}, "properties": {"repobilityId": "692200a7e4dd59b4", "scanner": "scanner-primary", "fingerprint": "900e1d64b9d8804e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/thoughtspot-to-sigma/skills/thoughtspot-to-sigma/scripts/ts_lib.py:153"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-321be905c1cb3c09", "level": "note", "message": {"text": "Possibly dead Python function: import_tml"}, "properties": {"repobilityId": "eec09ce456845a50", "scanner": "scanner-primary", "fingerprint": "321be905c1cb3c09", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/thoughtspot-to-sigma/skills/thoughtspot-to-sigma/scripts/ts_lib.py:177"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-da3d1779288859e2", "level": "note", "message": {"text": "Possibly dead Python function: list_attributes"}, "properties": {"repobilityId": "1651e35272e932ae", "scanner": "scanner-primary", "fingerprint": "da3d1779288859e2", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/thoughtspot-to-sigma/skills/thoughtspot-to-sigma/scripts/apply_sigma_rls.py:103"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8aa96d474a691258", "level": "note", "message": {"text": "Possibly dead Python function: import_tml"}, "properties": {"repobilityId": "eec09ce456845a50", "scanner": "scanner-primary", "fingerprint": "8aa96d474a691258", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/thoughtspot-to-sigma/skills/thoughtspot-assessment/scripts/ts_lib.py:53"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b4087ca3dc3d10a3", "level": "note", "message": {"text": "Possibly dead Python function: create_attributes"}, "properties": {"repobilityId": "afcb9d6663feab2b", "scanner": "scanner-primary", "fingerprint": "b4087ca3dc3d10a3", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/microstrategy-to-sigma/skills/microstrategy-to-sigma/fixtures/build_schema.py:121"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2107b96292b7b617", "level": "note", "message": {"text": "Possibly dead Python function: create_relationships"}, "properties": {"repobilityId": "fe470149c80b1d99", "scanner": "scanner-primary", "fingerprint": "2107b96292b7b617", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/microstrategy-to-sigma/skills/microstrategy-to-sigma/fixtures/build_schema.py:140"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3aad558d4e0b6078", "level": "note", "message": {"text": "Possibly dead Python function: create_facts"}, "properties": {"repobilityId": "df31a445f95087f6", "scanner": "scanner-primary", "fingerprint": "3aad558d4e0b6078", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/microstrategy-to-sigma/skills/microstrategy-to-sigma/fixtures/build_schema.py:156"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d90c11e9dd77b282", "level": "note", "message": {"text": "Possibly dead Python function: create_metrics"}, "properties": {"repobilityId": "bc9cfe1165539b00", "scanner": "scanner-primary", "fingerprint": "d90c11e9dd77b282", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/microstrategy-to-sigma/skills/microstrategy-to-sigma/fixtures/build_schema.py:172"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f50c1458ee78e09d", "level": "note", "message": {"text": "Possibly dead Python function: dm_ref"}, "properties": {"repobilityId": "71090e7381d0bae6", "scanner": "scanner-primary", "fingerprint": "f50c1458ee78e09d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/microstrategy-to-sigma/skills/microstrategy-to-sigma/scripts/convert.py:834"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5cce863ef8e01e80", "level": "note", "message": {"text": "Possibly dead Python function: patch"}, "properties": {"repobilityId": "5c3e51caa305266a", "scanner": "scanner-primary", "fingerprint": "5cce863ef8e01e80", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/microstrategy-to-sigma/skills/microstrategy-to-sigma/scripts/mstr.py:106"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-84c0d64f92885d8f", "level": "note", "message": {"text": "Possibly dead Python function: parity_fetch"}, "properties": {"repobilityId": "341c4ec67f728544", "scanner": "scanner-primary", "fingerprint": "84c0d64f92885d8f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/looker-to-sigma/skills/looker-to-sigma/scripts/migrate-looker.py:808"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5806799090fc1be3", "level": "note", "message": {"text": "Possibly dead Python function: list_attributes"}, "properties": {"repobilityId": "1651e35272e932ae", "scanner": "scanner-primary", "fingerprint": "5806799090fc1be3", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/looker-to-sigma/skills/looker-to-sigma/scripts/apply_sigma_rls.py:103"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1e42390d7424a1f0", "level": "note", "message": {"text": "Possibly dead Python function: one"}, "properties": {"repobilityId": "692200a7e4dd59b4", "scanner": "scanner-primary", "fingerprint": "1e42390d7424a1f0", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/quicksight-to-sigma/skills/quicksight-to-sigma/scripts/quicksight-discover.py:430"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-eec09b10995c6f7e", "level": "note", "message": {"text": "Possibly dead Python function: list_attributes"}, "properties": {"repobilityId": "1651e35272e932ae", "scanner": "scanner-primary", "fingerprint": "eec09b10995c6f7e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/quicksight-to-sigma/skills/quicksight-to-sigma/scripts/apply_sigma_rls.py:103"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5618b781ea207913", "level": "note", "message": {"text": "Possibly dead Python function: list_attributes"}, "properties": {"repobilityId": "1651e35272e932ae", "scanner": "scanner-primary", "fingerprint": "5618b781ea207913", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/tableau-to-sigma/skills/tableau-to-sigma/scripts/apply_sigma_rls.py:103"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-08bbfc129e39a860", "level": "note", "message": {"text": "Possibly dead Python function: list_attributes"}, "properties": {"repobilityId": "1651e35272e932ae", "scanner": "scanner-primary", "fingerprint": "08bbfc129e39a860", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/cognos-to-sigma/skills/cognos-to-sigma/scripts/apply_sigma_rls.py:103"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1b3590c98e5d0e7a", "level": "note", "message": {"text": "Possibly dead Python function: set_analysis"}, "properties": {"repobilityId": "31bf13d7394c970d", "scanner": "scanner-primary", "fingerprint": "1b3590c98e5d0e7a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/qlik-to-sigma/skills/qlik-to-sigma/scripts/build-sigma-workbook.py:117"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-399a5a71be168c33", "level": "note", "message": {"text": "Possibly dead Python function: list_attributes"}, "properties": {"repobilityId": "1651e35272e932ae", "scanner": "scanner-primary", "fingerprint": "399a5a71be168c33", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/qlik-to-sigma/skills/qlik-to-sigma/scripts/apply_sigma_rls.py:103"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0293481b3ef79904", "level": "note", "message": {"text": "Possibly dead Python function: probe"}, "properties": {"repobilityId": "90ebf24a9b031ee2", "scanner": "scanner-primary", "fingerprint": "0293481b3ef79904", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/pbi-freshness.py:163"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a9c9dbcd25038a91", "level": "note", "message": {"text": "Possibly dead Python function: one"}, "properties": {"repobilityId": "692200a7e4dd59b4", "scanner": "scanner-primary", "fingerprint": "a9c9dbcd25038a91", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/pbi_fabric.py:250"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-44abb6723aafc792", "level": "note", "message": {"text": "Possibly dead Python function: list_attributes"}, "properties": {"repobilityId": "1651e35272e932ae", "scanner": "scanner-primary", "fingerprint": "44abb6723aafc792", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/apply_sigma_rls.py:103"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2a0d2ac17c773220", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 plugins/cognos-to-sigma/skills/cognos-to-sigma/converter/test.ts:28"}, "properties": {"repobilityId": "43ea5b5597d0c5d2", "scanner": "scanner-primary", "fingerprint": "2a0d2ac17c773220", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9710c8d059e53154", "level": "none", "message": {"text": "No frontend routes/components detected"}, "properties": {"repobilityId": "44ca61485762e494", "scanner": "scanner-primary", "fingerprint": "9710c8d059e53154", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-ef7fe0c963bcf9a5", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in plugins/looker-to-sigma/skills/looker-to-sigma/scripts/migrate-looker.py:322"}, "properties": {"repobilityId": "4c0ada64f3c37e46", "scanner": "scanner-primary", "fingerprint": "ef7fe0c963bcf9a5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/looker-to-sigma/skills/looker-to-sigma/scripts/migrate-looker.py"}, "region": {"startLine": 322}}}]}, {"ruleId": "scanner-44ae07cfe46bf927", "level": "warning", "message": {"text": "Insecure pattern 'weak_hash' in plugins/quicksight-to-sigma/skills/quicksight-to-sigma/scripts/lib/sigma_functions.rb:47"}, "properties": {"repobilityId": "ef5c19caadb839e8", "scanner": "scanner-primary", "fingerprint": "44ae07cfe46bf927", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "weak_hash"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/quicksight-to-sigma/skills/quicksight-to-sigma/scripts/lib/sigma_functions.rb"}, "region": {"startLine": 47}}}]}, {"ruleId": "scanner-e457c9abd18f5046", "level": "warning", "message": {"text": "Insecure pattern 'weak_hash' in plugins/tableau-to-sigma/skills/tableau-to-sigma/scripts/enhance-scan.rb:309"}, "properties": {"repobilityId": "1a0f28295c7a9ccf", "scanner": "scanner-primary", "fingerprint": "e457c9abd18f5046", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "weak_hash"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/tableau-to-sigma/skills/tableau-to-sigma/scripts/enhance-scan.rb"}, "region": {"startLine": 309}}}]}, {"ruleId": "scanner-279f5589fd624bfb", "level": "warning", "message": {"text": "Insecure pattern 'weak_hash' in plugins/tableau-to-sigma/skills/tableau-to-sigma/scripts/lib/sigma_functions.rb:49"}, "properties": {"repobilityId": "39ed06210dabdd9d", "scanner": "scanner-primary", "fingerprint": "279f5589fd624bfb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "weak_hash"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/tableau-to-sigma/skills/tableau-to-sigma/scripts/lib/sigma_functions.rb"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-1bbaf807a0bfa652", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in plugins/cognos-to-sigma/skills/cognos-to-sigma/scripts/apply-layout.mjs:28"}, "properties": {"repobilityId": "c90042cb6f101a93", "scanner": "scanner-primary", "fingerprint": "1bbaf807a0bfa652", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/cognos-to-sigma/skills/cognos-to-sigma/scripts/apply-layout.mjs"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-09eeef8548906dbd", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in plugins/cognos-to-sigma/skills/cognos-to-sigma/scripts/migrate-cognos.mjs:55"}, "properties": {"repobilityId": "7257d667efe577df", "scanner": "scanner-primary", "fingerprint": "09eeef8548906dbd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/cognos-to-sigma/skills/cognos-to-sigma/scripts/migrate-cognos.mjs"}, "region": {"startLine": 55}}}]}, {"ruleId": "scanner-2978ba460524df9d", "level": "warning", "message": {"text": "Insecure pattern 'weak_hash' in plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/enhance-scan.rb:309"}, "properties": {"repobilityId": "48770547e524d15f", "scanner": "scanner-primary", "fingerprint": "2978ba460524df9d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "weak_hash"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/enhance-scan.rb"}, "region": {"startLine": 309}}}]}, {"ruleId": "scanner-ea4e683a3b9c968d", "level": "warning", "message": {"text": "Insecure pattern 'weak_hash' in plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/build-workbook-from-pbir.rb:395"}, "properties": {"repobilityId": "6c1a140f69b2e5eb", "scanner": "scanner-primary", "fingerprint": "ea4e683a3b9c968d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "weak_hash"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/build-workbook-from-pbir.rb"}, "region": {"startLine": 395}}}]}, {"ruleId": "scanner-6614481cd92912e4", "level": "warning", "message": {"text": "Insecure pattern 'weak_hash' in plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/migrate-powerbi.rb:593"}, "properties": {"repobilityId": "8e4aa1faf41a5b9e", "scanner": "scanner-primary", "fingerprint": "6614481cd92912e4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "weak_hash"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/migrate-powerbi.rb"}, "region": {"startLine": 593}}}]}, {"ruleId": "scanner-4a85127927d9fef1", "level": "warning", "message": {"text": "Insecure pattern 'weak_hash' in plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/lib/sigma_functions.rb:49"}, "properties": {"repobilityId": "cd71900ae939bd6d", "scanner": "scanner-primary", "fingerprint": "4a85127927d9fef1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "weak_hash"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/lib/sigma_functions.rb"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-3f7553128776acd6", "level": "note", "message": {"text": "Very large file: plugins/microstrategy-to-sigma/skills/microstrategy-to-sigma/scripts/convert.py (1164 lines)"}, "properties": {"repobilityId": "52cbd416054b9d53", "scanner": "scanner-primary", "fingerprint": "3f7553128776acd6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a0ff8ff49d60110c", "level": "note", "message": {"text": "Very large file: plugins/looker-to-sigma/skills/looker-to-sigma/scripts/build_workbook.py (1093 lines)"}, "properties": {"repobilityId": "76b6fb388d482e58", "scanner": "scanner-primary", "fingerprint": "a0ff8ff49d60110c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "b63d03deec8cb3e3", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-72b2a6250083a784", "level": "warning", "message": {"text": "Placeholder or mock-heavy implementation detected"}, "properties": {"repobilityId": "c06b444abb9646bb", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "924f16d955bcb252", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "3586f8e255d6c52d", "scanner": "scanner-primary", "fingerprint": "ea8f3013f588db25", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-8424db9c75e04ba4", "level": "none", "message": {"text": "Very short observed git history"}, "properties": {"repobilityId": "f96c9a3f34b6cdec", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-0f512696b1dd2c4a", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: plugins/tableau-to-sigma/skills/tableau-vds-to-cdw/SKILL.md"}, "properties": {"repobilityId": "ece8e4f2ddca95a9", "scanner": "scanner-primary", "fingerprint": "0f512696b1dd2c4a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugins/tableau-to-sigma/skills/tableau-vds-to-cdw/SKILL.md"}, "region": {"startLine": 486}}}]}, {"ruleId": "scanner-ba69b29e105233e7", "level": "note", "message": {"text": "Legacy-named symbol `client_state_v2` in plugins/thoughtspot-to-sigma/skills/thoughtspot-to-sigma/scripts/ts_common.py:221"}, "properties": {"repobilityId": "333037a54e76e55a", "scanner": "scanner-primary", "fingerprint": "ba69b29e105233e7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-73e951bcdf176df3", "level": "none", "message": {"text": "Commented-code block (7 lines) in plugins/thoughtspot-to-sigma/skills/thoughtspot-to-sigma/scripts/ts_common.py:31"}, "properties": {"repobilityId": "db70ef006b988af1", "scanner": "scanner-primary", "fingerprint": "73e951bcdf176df3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a538f446fccb69d0", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/thoughtspot-to-sigma/skills/thoughtspot-to-sigma/scripts/compare.py:30"}, "properties": {"repobilityId": "80265244cbb76499", "scanner": "scanner-primary", "fingerprint": "a538f446fccb69d0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f6c5e1db7fa1e668", "level": "none", "message": {"text": "Commented-code block (6 lines) in plugins/thoughtspot-to-sigma/skills/thoughtspot-to-sigma/scripts/migrate.py:287"}, "properties": {"repobilityId": "3292fa2e28511857", "scanner": "scanner-primary", "fingerprint": "f6c5e1db7fa1e668", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dd525fa7e882eead", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/thoughtspot-to-sigma/skills/thoughtspot-to-sigma/scripts/migrate.py:82"}, "properties": {"repobilityId": "ec0fce82125a9ad0", "scanner": "scanner-primary", "fingerprint": "dd525fa7e882eead", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8b2190675b3c1b2f", "level": "none", "message": {"text": "Commented-code block (6 lines) in plugins/thoughtspot-to-sigma/skills/thoughtspot-to-sigma/scripts/migrate-thoughtspot.py:561"}, "properties": {"repobilityId": "f5392c128a817655", "scanner": "scanner-primary", "fingerprint": "8b2190675b3c1b2f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-acd56333f9e06927", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/thoughtspot-to-sigma/skills/thoughtspot-to-sigma/scripts/migrate-thoughtspot.py:76"}, "properties": {"repobilityId": "397d45ae25e2e3bc", "scanner": "scanner-primary", "fingerprint": "acd56333f9e06927", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1376a962ef72c12a", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/thoughtspot-to-sigma/skills/thoughtspot-to-sigma/scripts/ts_screenshot.py:63"}, "properties": {"repobilityId": "5af164c41e39ee26", "scanner": "scanner-primary", "fingerprint": "1376a962ef72c12a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a71d2f20c2643c19", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/thoughtspot-to-sigma/skills/thoughtspot-to-sigma/scripts/pick_destination.py:46"}, "properties": {"repobilityId": "8583b4fcb108026d", "scanner": "scanner-primary", "fingerprint": "a71d2f20c2643c19", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5b9c3e3d061c91c4", "level": "none", "message": {"text": "Commented-code block (8 lines) in plugins/thoughtspot-to-sigma/skills/thoughtspot-assessment/scripts/scan.py:31"}, "properties": {"repobilityId": "fba7976513978872", "scanner": "scanner-primary", "fingerprint": "5b9c3e3d061c91c4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-99cf203aaa812e3b", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/microstrategy-to-sigma/skills/microstrategy-to-sigma/scripts/sigma-export-png.py:34"}, "properties": {"repobilityId": "a0d98e68fec0df7d", "scanner": "scanner-primary", "fingerprint": "99cf203aaa812e3b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d9189191381e6f1f", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/microstrategy-to-sigma/skills/microstrategy-to-sigma/scripts/pick_destination.py:46"}, "properties": {"repobilityId": "b0f6d042774331df", "scanner": "scanner-primary", "fingerprint": "d9189191381e6f1f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-90308af52bdbb732", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugins/microstrategy-to-sigma/skills/microstrategy-assessment/scripts/assess.py:35"}, "properties": {"repobilityId": "354ced9e669f3594", "scanner": "scanner-primary", "fingerprint": "90308af52bdbb732", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-72479a4cd9234dcc", "level": "none", "message": {"text": "Commented-code block (7 lines) in plugins/looker-to-sigma/skills/looker-to-sigma/scripts/migrate-looker.py:553"}, "properties": {"repobilityId": "f014bef76d19e370", "scanner": "scanner-primary", "fingerprint": "72479a4cd9234dcc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6aa29df7e15b81a5", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/looker-to-sigma/skills/looker-to-sigma/scripts/migrate-looker.py:127"}, "properties": {"repobilityId": "9662aa33a971db34", "scanner": "scanner-primary", "fingerprint": "6aa29df7e15b81a5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b8c97572e007a329", "level": "none", "message": {"text": "Commented-code block (8 lines) in plugins/looker-to-sigma/skills/looker-to-sigma/scripts/looker_api.py:21"}, "properties": {"repobilityId": "d32b70470bce3e60", "scanner": "scanner-primary", "fingerprint": "b8c97572e007a329", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fac8cf15bf2105ff", "level": "none", "message": {"text": "Commented-code block (10 lines) in plugins/looker-to-sigma/skills/looker-to-sigma/scripts/convert_dm.mjs:10"}, "properties": {"repobilityId": "01a2febc9d2acef4", "scanner": "scanner-primary", "fingerprint": "fac8cf15bf2105ff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-03c236dcd4776313", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/looker-to-sigma/skills/looker-to-sigma/scripts/sigma-export-png.py:34"}, "properties": {"repobilityId": "28abb81980208d2b", "scanner": "scanner-primary", "fingerprint": "03c236dcd4776313", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d850b6d8e4f47c4b", "level": "none", "message": {"text": "Commented-code block (8 lines) in plugins/looker-to-sigma/skills/looker-to-sigma/scripts/build_workbook.py:23"}, "properties": {"repobilityId": "8a42232955469457", "scanner": "scanner-primary", "fingerprint": "d850b6d8e4f47c4b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9d5e7450ce727e8f", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/looker-to-sigma/skills/looker-to-sigma/scripts/pick_destination.py:46"}, "properties": {"repobilityId": "b2fe8de2b6710c51", "scanner": "scanner-primary", "fingerprint": "9d5e7450ce727e8f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-bbf6807d210caff9", "level": "none", "message": {"text": "Commented-code block (8 lines) in plugins/looker-to-sigma/skills/looker-assessment/scripts/looker_api.py:21"}, "properties": {"repobilityId": "031311bc82cc8e67", "scanner": "scanner-primary", "fingerprint": "bbf6807d210caff9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bf9bb8a2523126ed", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugins/looker-to-sigma/skills/looker-assessment/scripts/looker-inventory.py:145"}, "properties": {"repobilityId": "03069010f12f9adc", "scanner": "scanner-primary", "fingerprint": "bf9bb8a2523126ed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cef882fc17a3fe13", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/quicksight-to-sigma/skills/quicksight-to-sigma/scripts/build-bookmark-workbooks.py:77"}, "properties": {"repobilityId": "0ab5f62261ad3dc8", "scanner": "scanner-primary", "fingerprint": "cef882fc17a3fe13", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-707ba12d09e7abb5", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/quicksight-to-sigma/skills/quicksight-to-sigma/scripts/sigma-export-png.py:34"}, "properties": {"repobilityId": "4d3e94f5a7e956b4", "scanner": "scanner-primary", "fingerprint": "707ba12d09e7abb5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7d45ca0c75e9a745", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/quicksight-to-sigma/skills/quicksight-to-sigma/scripts/quicksight-discover.py:133"}, "properties": {"repobilityId": "3b663e750502594e", "scanner": "scanner-primary", "fingerprint": "7d45ca0c75e9a745", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-33cd9bb128b12d3a", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/tableau-to-sigma/skills/tableau-to-sigma/scripts/build-bookmark-workbooks.py:77"}, "properties": {"repobilityId": "0573941a55bcceb4", "scanner": "scanner-primary", "fingerprint": "33cd9bb128b12d3a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ca4e1791a3199e5b", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/tableau-to-sigma/skills/tableau-to-sigma/scripts/sigma-export-png.py:34"}, "properties": {"repobilityId": "57605cf11a261740", "scanner": "scanner-primary", "fingerprint": "ca4e1791a3199e5b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a1fed95c42fbd660", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/tableau-to-sigma/skills/tableau-to-sigma/scripts/extract-custom-views.py:33"}, "properties": {"repobilityId": "19a448fea03e56a5", "scanner": "scanner-primary", "fingerprint": "a1fed95c42fbd660", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-328ea07fee5e601d", "level": "none", "message": {"text": "Commented-code block (15 lines) in plugins/cognos-to-sigma/skills/cognos-to-sigma/scripts/apply-layout.mjs:5"}, "properties": {"repobilityId": "3c1df994574b0841", "scanner": "scanner-primary", "fingerprint": "328ea07fee5e601d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-179db466742f1b0b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 plugins/cognos-to-sigma/skills/cognos-to-sigma/scripts/pick-destination.mjs:38"}, "properties": {"repobilityId": "b05eccd0cc1afcff", "scanner": "scanner-primary", "fingerprint": "179db466742f1b0b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9ef0f225b91cf98d", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/cognos-to-sigma/skills/cognos-to-sigma/scripts/sigma-export-png.py:34"}, "properties": {"repobilityId": "5c67f2a04b744a9c", "scanner": "scanner-primary", "fingerprint": "9ef0f225b91cf98d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d605b10eca9ec44b", "level": "none", "message": {"text": "Commented-code block (8 lines) in plugins/cognos-to-sigma/skills/cognos-to-sigma/scripts/migrate-cognos.mjs:2"}, "properties": {"repobilityId": "ee41c102bf2e2898", "scanner": "scanner-primary", "fingerprint": "d605b10eca9ec44b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-56421c6681836ae4", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugins/cognos-to-sigma/skills/cognos-to-sigma/scripts/remap-wb-to-dm-ids.mjs:4"}, "properties": {"repobilityId": "53f6ffd47e9a2df6", "scanner": "scanner-primary", "fingerprint": "56421c6681836ae4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-66226db51219cd28", "level": "none", "message": {"text": "Commented-code block (6 lines) in plugins/cognos-to-sigma/skills/cognos-to-sigma/scripts/scout-validate-and-persist.mjs:2"}, "properties": {"repobilityId": "91e24160a1a250b6", "scanner": "scanner-primary", "fingerprint": "66226db51219cd28", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-51bc63ef805c1fe9", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugins/cognos-to-sigma/skills/cognos-to-sigma/converter/sigma-ids.ts:57"}, "properties": {"repobilityId": "3a17c477e67edcf7", "scanner": "scanner-primary", "fingerprint": "51bc63ef805c1fe9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-51b8ef389f2ebbcd", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugins/cognos-to-sigma/skills/cognos-to-sigma/converter/cognos-report.ts:141"}, "properties": {"repobilityId": "5d002f9245ec3289", "scanner": "scanner-primary", "fingerprint": "51b8ef389f2ebbcd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-26035f66e0c44d2b", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/qlik-to-sigma/skills/qlik-to-sigma/scripts/batch-migrate.py:83"}, "properties": {"repobilityId": "97d9c93d80d466dd", "scanner": "scanner-primary", "fingerprint": "26035f66e0c44d2b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3b91c28542ae2d61", "level": "none", "message": {"text": "Commented-code block (8 lines) in plugins/qlik-to-sigma/skills/qlik-to-sigma/scripts/build-sigma-workbook.py:423"}, "properties": {"repobilityId": "b99d12473932edcb", "scanner": "scanner-primary", "fingerprint": "3b91c28542ae2d61", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6e190f4c9c3d9981", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/qlik-to-sigma/skills/qlik-to-sigma/scripts/sigma-export-png.py:34"}, "properties": {"repobilityId": "6a16a63e39f1ade5", "scanner": "scanner-primary", "fingerprint": "6e190f4c9c3d9981", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f338a16ed6fdf2b7", "level": "none", "message": {"text": "Commented-code block (6 lines) in plugins/qlik-to-sigma/skills/qlik-to-sigma/scripts/gen-denorm-sql.py:16"}, "properties": {"repobilityId": "68afc6e4f0f007d6", "scanner": "scanner-primary", "fingerprint": "f338a16ed6fdf2b7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f43b4598dfc647c7", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugins/qlik-to-sigma/skills/qlik-to-sigma/scripts/qlik-discover.py:72"}, "properties": {"repobilityId": "5f3af46a9f847574", "scanner": "scanner-primary", "fingerprint": "f43b4598dfc647c7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8ba9b5b606aeb021", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/qlik-to-sigma/skills/qlik-to-sigma/scripts/qlik-discover.py:106"}, "properties": {"repobilityId": "541a06f1c94e5a12", "scanner": "scanner-primary", "fingerprint": "8ba9b5b606aeb021", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2a5bfd16e73764f0", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/qlik-to-sigma/skills/qlik-to-sigma/scripts/qlik-screenshot.py:48"}, "properties": {"repobilityId": "e9cf91a3e5b62297", "scanner": "scanner-primary", "fingerprint": "2a5bfd16e73764f0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3b1e47bc986c5fb9", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/qlik-to-sigma/skills/qlik-assessment/scripts/qlik-inventory.py:44"}, "properties": {"repobilityId": "1a8ff180f54feffe", "scanner": "scanner-primary", "fingerprint": "3b1e47bc986c5fb9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2123d036a9c094bf", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/powerbi-to-sigma/skills/powerbi-assessment/scripts/fabric-inventory.py:83"}, "properties": {"repobilityId": "c53d85d8026211f7", "scanner": "scanner-primary", "fingerprint": "2123d036a9c094bf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-998f9f77cc90c416", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/export-pbi-pages.py:53"}, "properties": {"repobilityId": "8a6d5e41fb406270", "scanner": "scanner-primary", "fingerprint": "998f9f77cc90c416", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-99b7fce68c6d0da5", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/build-bookmark-workbooks.py:77"}, "properties": {"repobilityId": "b3c18e0488ac53e0", "scanner": "scanner-primary", "fingerprint": "99b7fce68c6d0da5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-18ff751bb2def0ba", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/extract-pbir.py:55"}, "properties": {"repobilityId": "6dcccbd9d2d31299", "scanner": "scanner-primary", "fingerprint": "18ff751bb2def0ba", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-739b211c108d0ed4", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/pbi-freshness.py:122"}, "properties": {"repobilityId": "d87ddaee0e973030", "scanner": "scanner-primary", "fingerprint": "739b211c108d0ed4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6f4820c6bc55b83c", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/sigma-export-png.py:30"}, "properties": {"repobilityId": "11dc6f9eec54cb04", "scanner": "scanner-primary", "fingerprint": "6f4820c6bc55b83c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-389493bca08920a9", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/pbi_fabric.py:128"}, "properties": {"repobilityId": "5fc0dc0375e93e9e", "scanner": "scanner-primary", "fingerprint": "389493bca08920a9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b369e0b29a37c8b5", "level": "none", "message": {"text": "Commented-code block (6 lines) in plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/extract-report-classic.py:38"}, "properties": {"repobilityId": "f31121f25dbce9db", "scanner": "scanner-primary", "fingerprint": "b369e0b29a37c8b5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a62dd8ac494820d7", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/pbi_exec.py:28"}, "properties": {"repobilityId": "e2773cfd122f69f4", "scanner": "scanner-primary", "fingerprint": "a62dd8ac494820d7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1a7fe77f1609db88", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 plugins/powerbi-to-sigma/skills/powerbi-to-sigma/scripts/fabric-auth-check.py:38"}, "properties": {"repobilityId": "6d23b8374c3826b6", "scanner": "scanner-primary", "fingerprint": "1a7fe77f1609db88", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "abc1577daa27f291", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "b3308fc3e20b7372", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "15827378508ae38b", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "bb2c91cb34e7fa6f", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "39fb106ce5503f04", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "9cb9538d5a7d7500", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "a031cb7ab34f1cd8", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "57dae4305670e1f7", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-0027e313ade46c8f", "level": "note", "message": {"text": "Near-duplicate function bodies in 7 places"}, "properties": {"repobilityId": "24aa84af4fad49c5", "scanner": "scanner-primary", "fingerprint": "0027e313ade46c8f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-0027e313ade46c8f", "level": "note", "message": {"text": "Near-duplicate function bodies in 7 places"}, "properties": {"repobilityId": "dc7df28fb0f35907", "scanner": "scanner-primary", "fingerprint": "0027e313ade46c8f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-0027e313ade46c8f", "level": "note", "message": {"text": "Near-duplicate function bodies in 7 places"}, "properties": {"repobilityId": "cffbe47e97fada36", "scanner": "scanner-primary", "fingerprint": "0027e313ade46c8f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-0027e313ade46c8f", "level": "note", "message": {"text": "Near-duplicate function bodies in 7 places"}, "properties": {"repobilityId": "507b020a13c11eef", "scanner": "scanner-primary", "fingerprint": "0027e313ade46c8f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-0027e313ade46c8f", "level": "note", "message": {"text": "Near-duplicate function bodies in 7 places"}, "properties": {"repobilityId": "4bc14ed8580efd93", "scanner": "scanner-primary", "fingerprint": "0027e313ade46c8f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-0027e313ade46c8f", "level": "note", "message": {"text": "Near-duplicate function bodies in 7 places"}, "properties": {"repobilityId": "cbc33f459e753eb5", "scanner": "scanner-primary", "fingerprint": "0027e313ade46c8f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-0027e313ade46c8f", "level": "note", "message": {"text": "Near-duplicate function bodies in 7 places"}, "properties": {"repobilityId": "beaf320e1808e14e", "scanner": "scanner-primary", "fingerprint": "0027e313ade46c8f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-0027e313ade46c8f", "level": "note", "message": {"text": "Near-duplicate function bodies in 7 places"}, "properties": {"repobilityId": "2f7e6ef0fb93ed96", "scanner": "scanner-primary", "fingerprint": "0027e313ade46c8f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-0027e313ade46c8f", "level": "note", "message": {"text": "Near-duplicate function bodies in 7 places"}, "properties": {"repobilityId": "f5edfcb36e48c18d", "scanner": "scanner-primary", "fingerprint": "0027e313ade46c8f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "7604e05641c61fd0", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "650e5419e24faee1", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "22a550506b3a2172", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}