{"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": "CFG006", "name": "[CFG006] Missing .gitignore: No .gitignore file. Risk of committing secrets and build artifacts.", "shortDescription": {"text": "[CFG006] Missing .gitignore: No .gitignore file. Risk of committing secrets and build artifacts."}, "fullDescription": {"text": "Add a .gitignore appropriate for your language/framework."}, "properties": {"scanner": "repobility-threat-engine", "category": "practices", "severity": "medium", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "MINED111", "name": "Bare except continues silently", "shortDescription": {"text": "Bare except continues silently"}, "fullDescription": {"text": "Bare `except:` (or `except Exception:`) that runs code without re-raising or logging the exception. Hides real failures and makes bugs hard to diagnose."}, "properties": {"scanner": "repobility-ast-engine", "category": "quality", "severity": "medium", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "CORE_LARGE_FILES", "name": "Average file size is 5300 lines (recommend <300)", "shortDescription": {"text": "Average file size is 5300 lines (recommend <300)"}, "fullDescription": {"text": "Refactor large files by extracting related functions into separate modules. Target files with 300+ lines first. Use the Single Responsibility Principle \u2014 each module should have one clear purpose."}, "properties": {"scanner": "repobility-core", "category": "quality", "severity": "medium", "confidence": null, "cwe": "", "owasp": ""}}, {"id": "CORE_NO_README", "name": "No README file found", "shortDescription": {"text": "No README file found"}, "fullDescription": {"text": "Create a README.md with: project name and description, installation instructions, usage examples, configuration options, and contribution guidelines."}, "properties": {"scanner": "repobility-core", "category": "documentation", "severity": "medium", "confidence": null, "cwe": "", "owasp": ""}}, {"id": "CORE_NO_LICENSE", "name": "No LICENSE file", "shortDescription": {"text": "No LICENSE file"}, "fullDescription": {"text": "Add a LICENSE file to your repository. Use choosealicense.com to pick the right license (MIT for permissive, Apache 2.0 for patent protection, GPL for copyleft)."}, "properties": {"scanner": "repobility-core", "category": "documentation", "severity": "low", "confidence": null, "cwe": "", "owasp": ""}}, {"id": "MINED115", "name": "Action `actions/setup-python` pinned to mutable ref `@v5`", "shortDescription": {"text": "Action `actions/setup-python` pinned to mutable ref `@v5`"}, "fullDescription": {"text": "`uses: actions/setup-python@v5` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-actions/changed-files compromise (2025) instantly affect ~23K repos. Pin to a 40-char commit SHA + lock with Dependabot or renovate."}, "properties": {"scanner": "repobility-supply-chain", "category": "dependency", "severity": "high", "confidence": 0.9, "cwe": "", "owasp": ""}}, {"id": "CORE_NO_TESTS", "name": "No test files found", "shortDescription": {"text": "No test files found"}, "fullDescription": {"text": "Add a test directory (tests/ or __tests__/) with unit tests for core functionality. Use pytest (Python), Jest (JS/TS), or go test (Go). Start with tests for critical business logic and security-sensitive functions."}, "properties": {"scanner": "repobility-core", "category": "testing", "severity": "high", "confidence": null, "cwe": "", "owasp": ""}}]}}, "automationDetails": {"id": "repobility/661"}, "properties": {"repository": "wchl3927/vi-pro-pipeline", "repoUrl": "https://github.com/wchl3927/vi-pro-pipeline.git", "branch": "main"}, "results": [{"ruleId": "CFG006", "level": "warning", "message": {"text": "[CFG006] Missing .gitignore: No .gitignore file. Risk of committing secrets and build artifacts."}, "properties": {"repobilityId": 45101, "scanner": "repobility-threat-engine", "fingerprint": "c65fc71ce58c37a0e07837c0fe294108b731c43ef16027a2f0971c757bbe9a16", "category": "practices", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "No .gitignore file found in repository root", "evidence": {"reason": "No .gitignore file found in repository root", "rule_id": "CFG006", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "repo|practices|cfg006"}}}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 45096, "scanner": "repobility-ast-engine", "fingerprint": "714f1ebc70ef3105cd12c4d1889e02abb676bfe12167c023608dd0fbfe75b418", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|714f1ebc70ef3105cd12c4d1889e02abb676bfe12167c023608dd0fbfe75b418"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "calculate_stocks.py"}, "region": {"startLine": 3464}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 45095, "scanner": "repobility-ast-engine", "fingerprint": "71cd297a75a882c9be6d823175fa1eb95dacba2f5af23d452e7855f7df53c742", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|71cd297a75a882c9be6d823175fa1eb95dacba2f5af23d452e7855f7df53c742"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "calculate_stocks.py"}, "region": {"startLine": 670}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 45094, "scanner": "repobility-ast-engine", "fingerprint": "68f295a1e29c46f8a281ff2c53f4f1ea337db914146ec4cce79f67424f18b5be", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|68f295a1e29c46f8a281ff2c53f4f1ea337db914146ec4cce79f67424f18b5be"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "calculate_stocks.py"}, "region": {"startLine": 5036}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 45093, "scanner": "repobility-ast-engine", "fingerprint": "fc19563ac8f16b41ad720ef68d4c3188d08b17be71dd7c23fc1d797bcdd0e25e", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|fc19563ac8f16b41ad720ef68d4c3188d08b17be71dd7c23fc1d797bcdd0e25e"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "calculate_stocks.py"}, "region": {"startLine": 4783}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 45092, "scanner": "repobility-ast-engine", "fingerprint": "db9dc015b7521bc2e57a612b2408b05fefee5872a4376cf1fdd1350e6440ae9e", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|db9dc015b7521bc2e57a612b2408b05fefee5872a4376cf1fdd1350e6440ae9e"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "calculate_stocks.py"}, "region": {"startLine": 4053}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 45091, "scanner": "repobility-ast-engine", "fingerprint": "20f8134c3a8eb0f3b474b5d14464de6a5d8acab2e7765803ccc7756f41ab1998", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|20f8134c3a8eb0f3b474b5d14464de6a5d8acab2e7765803ccc7756f41ab1998"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "calculate_stocks.py"}, "region": {"startLine": 3999}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 45090, "scanner": "repobility-ast-engine", "fingerprint": "bb963e273f95733a25c3645a031471eb36689f13083585898d3d2697031caa9d", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|bb963e273f95733a25c3645a031471eb36689f13083585898d3d2697031caa9d"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "calculate_stocks.py"}, "region": {"startLine": 3942}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 45089, "scanner": "repobility-ast-engine", "fingerprint": "2e531004d91572fc5b548881d197f5880a22b90f25e1fe2894fd4a8c987b4632", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|2e531004d91572fc5b548881d197f5880a22b90f25e1fe2894fd4a8c987b4632"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "calculate_stocks.py"}, "region": {"startLine": 3535}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 45088, "scanner": "repobility-ast-engine", "fingerprint": "12ad6a87a81830e876b393ab5b62340fc159b95aaf6ffb19d5f8619ce8d04f7a", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|12ad6a87a81830e876b393ab5b62340fc159b95aaf6ffb19d5f8619ce8d04f7a"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "calculate_crypto.py"}, "region": {"startLine": 2867}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 45087, "scanner": "repobility-ast-engine", "fingerprint": "61f955fee367e25750a21f9882cf4a10d04632e2d8b46428ea7678af9f69c6c1", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|61f955fee367e25750a21f9882cf4a10d04632e2d8b46428ea7678af9f69c6c1"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "calculate_crypto.py"}, "region": {"startLine": 2695}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 45086, "scanner": "repobility-ast-engine", "fingerprint": "043c89319a82be1cee86aa05410a024dade34b893d264fdbc34af6c92af4aecd", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|043c89319a82be1cee86aa05410a024dade34b893d264fdbc34af6c92af4aecd"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "calculate_crypto.py"}, "region": {"startLine": 3572}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 45085, "scanner": "repobility-ast-engine", "fingerprint": "13ae7c788263401438e3990d4b79f65868ddfa64ca75ff864fada54971fb0cd7", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|13ae7c788263401438e3990d4b79f65868ddfa64ca75ff864fada54971fb0cd7"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "calculate_crypto.py"}, "region": {"startLine": 117}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 45084, "scanner": "repobility-ast-engine", "fingerprint": "fdfaaf15cfb12de1e54ee3dc4cb2baced06f2e0f0cd0b46bed5a2e58386d995a", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|fdfaaf15cfb12de1e54ee3dc4cb2baced06f2e0f0cd0b46bed5a2e58386d995a"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "calculate_crypto.py"}, "region": {"startLine": 4773}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 45083, "scanner": "repobility-ast-engine", "fingerprint": "b69950a7a476784bc27f60411e5672194e41dc736a8b446034d4a535270c3d22", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|b69950a7a476784bc27f60411e5672194e41dc736a8b446034d4a535270c3d22"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "calculate_crypto.py"}, "region": {"startLine": 4429}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 45082, "scanner": "repobility-ast-engine", "fingerprint": "d1646d2c67aadc4d6083c32f04509f6d7277e2a219da3853f0b9fb4fac6da50f", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|d1646d2c67aadc4d6083c32f04509f6d7277e2a219da3853f0b9fb4fac6da50f"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "calculate_crypto.py"}, "region": {"startLine": 4184}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 45081, "scanner": "repobility-ast-engine", "fingerprint": "50c206d7f5e1c31284cc7a0a10de7b8a7ca2ea900f39aabd0a16b53f88398a3f", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|50c206d7f5e1c31284cc7a0a10de7b8a7ca2ea900f39aabd0a16b53f88398a3f"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "calculate_crypto.py"}, "region": {"startLine": 3724}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 45080, "scanner": "repobility-ast-engine", "fingerprint": "9d67d6eb529828aa32ff38fc680a395d1916152cb23f7e0420777a9cdaf1a86e", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|9d67d6eb529828aa32ff38fc680a395d1916152cb23f7e0420777a9cdaf1a86e"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "calculate_crypto.py"}, "region": {"startLine": 2152}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 45079, "scanner": "repobility-ast-engine", "fingerprint": "fd8f63bf2600c84f4b6a20cbd7f6ffd9af4f722405dfa7f5c6212b4a2fe5270f", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|fd8f63bf2600c84f4b6a20cbd7f6ffd9af4f722405dfa7f5c6212b4a2fe5270f"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "calculate_crypto.py"}, "region": {"startLine": 680}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 45078, "scanner": "repobility-ast-engine", "fingerprint": "45e77d1c70359bc31672d5f2a022c74f8140dd0ed4fb721a31397fb62e192db0", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|45e77d1c70359bc31672d5f2a022c74f8140dd0ed4fb721a31397fb62e192db0"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "calculate_crypto.py"}, "region": {"startLine": 658}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 45077, "scanner": "repobility-ast-engine", "fingerprint": "c5a963b34c3b0e0a38fc0990bd5ec85e388057fc9c03a72d1093d75fdf45ac8c", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|c5a963b34c3b0e0a38fc0990bd5ec85e388057fc9c03a72d1093d75fdf45ac8c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "calculate_crypto.py"}, "region": {"startLine": 579}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 45076, "scanner": "repobility-ast-engine", "fingerprint": "9251db61e8e04e8e58fdef377966a24b1b497c6645b02945bd3393fa79e13fef", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|9251db61e8e04e8e58fdef377966a24b1b497c6645b02945bd3393fa79e13fef"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "calculate_crypto.py"}, "region": {"startLine": 473}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 45075, "scanner": "repobility-ast-engine", "fingerprint": "33d01c3b03a3d4780c709767ee2a83d707c145b9c0ae71afaee36ae0a847426a", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|33d01c3b03a3d4780c709767ee2a83d707c145b9c0ae71afaee36ae0a847426a"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "calculate_crypto.py"}, "region": {"startLine": 400}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 45074, "scanner": "repobility-ast-engine", "fingerprint": "9a7db423067027d95f7279951eb5f825db4a3797bf52c45ce2c09eaed4622c00", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|9a7db423067027d95f7279951eb5f825db4a3797bf52c45ce2c09eaed4622c00"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "calculate_crypto.py"}, "region": {"startLine": 379}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 45073, "scanner": "repobility-ast-engine", "fingerprint": "e00565a8e23cc1f808150a5d388e660ef8611c1a055ce81bd4157b55d8a085d9", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|e00565a8e23cc1f808150a5d388e660ef8611c1a055ce81bd4157b55d8a085d9"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "calculate_crypto.py"}, "region": {"startLine": 330}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "Bare except continues silently"}, "properties": {"repobilityId": 45072, "scanner": "repobility-ast-engine", "fingerprint": "95a75bba8bf44ed55e9883625d29cb3693ed214525d71cb687d1680d06584a9a", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|95a75bba8bf44ed55e9883625d29cb3693ed214525d71cb687d1680d06584a9a"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "calculate_crypto.py"}, "region": {"startLine": 311}}}]}, {"ruleId": "CORE_LARGE_FILES", "level": "warning", "message": {"text": "Average file size is 5300 lines (recommend <300)"}, "properties": {"repobilityId": 45071, "scanner": "repobility-core", "fingerprint": "e0beecf0d614def9238ad60bda92391342605caf981f83c84a1f71b70397ea20", "category": "quality", "severity": "medium", "confidence": null, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"rule_id": "CORE_LARGE_FILES", "scanner": "repobility-core", "correlation_key": "fp|e0beecf0d614def9238ad60bda92391342605caf981f83c84a1f71b70397ea20"}}}, {"ruleId": "CORE_NO_README", "level": "warning", "message": {"text": "No README file found"}, "properties": {"repobilityId": 45069, "scanner": "repobility-core", "fingerprint": "b55c73163757fe6b2364bb829fcd26e87b9d9e7b367dd2a3307a814b02b29cbd", "category": "documentation", "severity": "medium", "confidence": null, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"rule_id": "CORE_NO_README", "scanner": "repobility-core", "correlation_key": "repo|documentation|core_no_readme"}}}, {"ruleId": "CORE_NO_LICENSE", "level": "note", "message": {"text": "No LICENSE file"}, "properties": {"repobilityId": 45070, "scanner": "repobility-core", "fingerprint": "9314e9238cd99885865b92490d1aaa96ca62b1390c9377878d5f3d99227e1c3c", "category": "documentation", "severity": "low", "confidence": null, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"rule_id": "CORE_NO_LICENSE", "scanner": "repobility-core", "correlation_key": "repo|documentation|core_no_license"}}}, {"ruleId": "MINED115", "level": "error", "message": {"text": "Action `actions/setup-python` pinned to mutable ref `@v5`"}, "properties": {"repobilityId": 45100, "scanner": "repobility-supply-chain", "fingerprint": "c489d0aa8eb4c7412311a6db686fe9989d1b113ca364d6fb4abdb92e9350dd22", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|c489d0aa8eb4c7412311a6db686fe9989d1b113ca364d6fb4abdb92e9350dd22"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/update-stocks.yml"}, "region": {"startLine": 22}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "Action `actions/checkout` pinned to mutable ref `@v4`"}, "properties": {"repobilityId": 45099, "scanner": "repobility-supply-chain", "fingerprint": "c3699a29ac838fb6ea18c67e207757621d61499ce285eca1a1deecb01983e762", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|c3699a29ac838fb6ea18c67e207757621d61499ce285eca1a1deecb01983e762"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/update-stocks.yml"}, "region": {"startLine": 15}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "Action `actions/setup-python` pinned to mutable ref `@v5`"}, "properties": {"repobilityId": 45098, "scanner": "repobility-supply-chain", "fingerprint": "eb4db15f866b14a4a092ffe8d9202eec359c858a84d59e4171e0723a512e089d", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|eb4db15f866b14a4a092ffe8d9202eec359c858a84d59e4171e0723a512e089d"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/update_crypto.yml"}, "region": {"startLine": 22}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "Action `actions/checkout` pinned to mutable ref `@v4`"}, "properties": {"repobilityId": 45097, "scanner": "repobility-supply-chain", "fingerprint": "eee364171a7ae422b65f2ed7b5b7b2417b61d362a675b5016a5ca6919683d74a", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|eee364171a7ae422b65f2ed7b5b7b2417b61d362a675b5016a5ca6919683d74a"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/update_crypto.yml"}, "region": {"startLine": 15}}}]}, {"ruleId": "CORE_NO_TESTS", "level": "error", "message": {"text": "No test files found"}, "properties": {"repobilityId": 45068, "scanner": "repobility-core", "fingerprint": "0200e9918bc2a7bf9c116d0907e50ac3df640c758b93852cf1890ec6e14d870d", "category": "testing", "severity": "high", "confidence": null, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"rule_id": "CORE_NO_TESTS", "scanner": "repobility-core", "correlation_key": "repo|testing|core_no_tests"}}}]}]}