{"schema_version":"2","scorer_version":"0.1.0","scoring_version":"prov-5+qual-2+sec-2","generated_at":"2026-11-14T14:52:06.042980Z","repo":{"ref":{"host":"github.com","owner":"liamsparkles","name":"ec2instanceconnectGUI"},"default_branch":"main","clone_url":"https://github.com/liamsparkles/ec2instanceconnectGUI.git","html_url":"https://github.com/liamsparkles/ec2instanceconnectGUI","description":"A simple GUI that allows saving of instance ids for easier repeat EC2 instance connect without requiring CLI commands","stars":0,"forks":0,"is_fork":false,"is_archived":false,"is_private":false,"size_kb":363,"primary_language":"Python","license_spdx":"MIT","created_at":"2026-04-08T17:00:42Z","pushed_at":"2026-06-23T00:04:11Z","security_policy_url":null,"distribution":{"owner_created_at":"2017-11-17T00:55:09Z","owner_type":"User","release_assets":[{"name":"EC2InstanceConnect.exe","size":35475647,"download_count":2,"release_tag":"1.0.1","url":"https://github.com/liamsparkles/ec2instanceconnectGUI/releases/download/1.0.1/EC2InstanceConnect.exe"},{"name":"EC2InstanceConnect.exe","size":35475181,"download_count":3,"release_tag":"V1.0.0","url":"https://github.com/liamsparkles/ec2instanceconnectGUI/releases/download/V1.0.0/EC2InstanceConnect.exe"}]}},"commit_sha":"568e02277cddf6ed6c747646afe08e0e28618d92","profile":{"lines_by_language":{"Python":807},"files_by_category":{"source":5,"docs":4,"test":3,"config":2,"binary":2,"other":1},"source_lines":570,"test_lines":237},"pillars":{"ai_provenance":{"score":0.0,"confidence":0.42,"coverage":1.0,"label":"none-detected","breakdown":{"attributed_share":0.0,"suspected_share":0.0,"estimated_share":0.0,"ai_artifacts":0.0,"flagged_work_units":0.0,"flagged_releases":0.0,"style_index":0.0},"summary":"No AI attribution or AI-consistent velocity signals detected."},"quality":{"score":79.1,"confidence":0.9,"coverage":1.0,"label":"adequate","breakdown":{"complexity":100.0,"duplication":100.0,"lint":100.0,"testing":50.8,"docs":65.0,"type_safety":40.0,"process":null},"summary":"Code quality is adequate: test-to-source ratio 0.42, no CI test run detected; 0% of function code in complex or long functions; 0% duplicated lines. Weakest area: type safety."},"security":{"score":73.6,"confidence":0.85,"coverage":1.0,"label":"adequate","breakdown":{"secrets":100.0,"sast":76.9,"dependencies":74.1,"ci_actions":null,"posture":0.0,"scorecard":null},"summary":"Security posture is adequate: 56 known vulnerabilities in 2 dependencies; 1 high-severity SAST findings. Weakest area: posture."}},"analyzer_results":[{"analyzer":"sec-scorecard","pillar":"security","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":"no published OpenSSF Scorecard result for this repo"},{"analyzer":"sec-registry","pillar":"security","status":"ok","tool_version":null,"metrics":{"declared":5.0,"checked":5.0,"missing":0.0,"recent":0.0,"lookup_errors":0.0},"findings":[],"evidence":[],"data":{"phantom":false},"error":null},{"analyzer":"ai-attribution","pillar":"ai_provenance","status":"ok","tool_version":"signatures-v1","metrics":{"commits":9.0,"attributed_commits":0.0,"attributed_commit_share":0.0,"effective_loc":815.0,"attributed_loc":0.0,"attributed_loc_share":0.0,"tools_detected":0.0},"findings":[],"evidence":[],"data":{"attributed_loc_by_commit":{},"tools":{},"monthly":{"2026-04":{"loc":607,"attributed_loc":0},"2026-06":{"loc":208,"attributed_loc":0}}},"error":null},{"analyzer":"ai-artifacts","pillar":"ai_provenance","status":"ok","tool_version":"signatures-v1","metrics":{"artifacts":0.0,"workflow_agents":0.0,"tools_configured":0.0},"findings":[],"evidence":[],"data":{"artifacts":[],"workflows":[],"tools":[]},"error":null},{"analyzer":"ai-velocity","pillar":"ai_provenance","status":"ok","tool_version":"prov-4","metrics":{"work_units":3.0,"flagged_units":0.0,"pre_ai_era_bursts":0.0,"pre_ai_era_measured_loc":0.0,"pre_ai_era_burst_loc":0.0,"measured_loc":815.0,"flagged_loc":0.0,"flagged_loc_share":0.0,"max_loc_per_hour":134.2937998456393,"median_loc_per_hour":93.14689992281966,"pr_timed_units":0.0,"excluded_import_loc":0.0},"findings":[],"evidence":[],"data":{"flagged_loc_by_commit":{},"excluded_import_commits":[]},"error":null},{"analyzer":"ai-release-velocity","pillar":"ai_provenance","status":"ok","tool_version":"prov-4","metrics":{"releases":1.0,"flagged_releases":0.0,"max_loc_per_day":2.8},"findings":[],"evidence":[],"data":{"releases":[{"from":"V1.0.0","to":"1.0.1","loc":208,"days":75.18,"loc_per_day":2.8,"flagged":false}]},"error":null},{"analyzer":"ai-stylometry","pillar":"ai_provenance","status":"ok","tool_version":null,"metrics":{"lines_scanned":570.0,"index":0.0,"count:narrated_steps":0.0,"per_kloc:narrated_steps":0.0,"files:narrated_steps":0.0,"count:placeholder":0.0,"per_kloc:placeholder":0.0,"files:placeholder":0.0,"count:emoji_in_code":0.0,"per_kloc:emoji_in_code":0.0,"files:emoji_in_code":0.0,"count:assistant_voice":0.0,"per_kloc:assistant_voice":0.0,"files:assistant_voice":0.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-secrets","pillar":"security","status":"ok","tool_version":"gitleaks 8.30.1","metrics":{"secrets_current":0.0,"secrets_history":0.0,"secrets_nonprod":0.0,"secrets_low_confidence":0.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-sast","pillar":"security","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":1.0,"findings_high":1.0,"findings_medium":0.0,"findings_low":0.0,"weighted_findings":0.75,"scanned_lines":570.0,"parse_errors":0.0},"findings":[{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'Popen' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"ec2_instance_connect_gui/main_window.py","line":73,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:ec2_instance_connect_gui/main_window.py:73"}],"evidence":[],"data":{"rulesets":["python"]},"error":null},{"analyzer":"sec-deps","pillar":"security","status":"ok","tool_version":"osv-scanner version: 2.7.1","metrics":{"vulnerable_packages":2.0,"vulnerabilities":56.0,"vulns_critical":6.0,"vulns_high":34.0,"vulns_medium":14.0,"vulns_low":0.0,"vulns_unknown":2.0,"penalty":18.0},"findings":[{"rule_id":"osv/GHSA-5x8w-8jj5-q52h","severity":"critical","message":"pillow@10.0.0 (PyPI) is affected by PYSEC-2026-4330, GHSA-5x8w-8jj5-q52h; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-5x8w-8jj5-q52h"},{"rule_id":"osv/GHSA-8g5g-8vmr-9782","severity":"critical","message":"pillow@10.0.0 (PyPI) is affected by PYSEC-2026-4332, GHSA-8g5g-8vmr-9782; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-8g5g-8vmr-9782"},{"rule_id":"osv/GHSA-xvh5-g6gv-559v","severity":"critical","message":"pillow@10.0.0 (PyPI) is affected by PYSEC-2026-4363, GHSA-xvh5-g6gv-559v; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-xvh5-g6gv-559v"},{"rule_id":"osv/GHSA-3f63-hfp8-52jq","severity":"critical","message":"pillow@10.0.0 (PyPI) is affected by PYSEC-2026-457, GHSA-3f63-hfp8-52jq; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-3f63-hfp8-52jq"},{"rule_id":"osv/GHSA-332p-7hrc-92wf","severity":"critical","message":"pillow@10.0.0 (PyPI) is affected by GHSA-332p-7hrc-92wf; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-332p-7hrc-92wf"},{"rule_id":"osv/GHSA-w889-685w-c8fh","severity":"critical","message":"pillow@10.0.0 (PyPI) is affected by GHSA-w889-685w-c8fh; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-w889-685w-c8fh"},{"rule_id":"osv/GHSA-44wm-f244-xhp3","severity":"high","message":"pillow@10.0.0 (PyPI) is affected by PYSEC-2026-1793, GHSA-44wm-f244-xhp3; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-44wm-f244-xhp3"},{"rule_id":"osv/GHSA-j7hp-h8jx-5ppr","severity":"high","message":"pillow@10.0.0 (PyPI) is affected by PYSEC-2026-1794, GHSA-j7hp-h8jx-5ppr; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-j7hp-h8jx-5ppr"},{"rule_id":"osv/GHSA-8v84-f9pq-wr9x","severity":"high","message":"pillow@10.0.0 (PyPI) is affected by PYSEC-2026-2253, GHSA-8v84-f9pq-wr9x; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-8v84-f9pq-wr9x"},{"rule_id":"osv/GHSA-5x94-69rx-g8h2","severity":"high","message":"pillow@10.0.0 (PyPI) is affected by PYSEC-2026-2254, GHSA-5x94-69rx-g8h2; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-5x94-69rx-g8h2"},{"rule_id":"osv/GHSA-45hq-cxwh-f6vc","severity":"high","message":"pillow@10.0.0 (PyPI) is affected by PYSEC-2026-2255, GHSA-45hq-cxwh-f6vc; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-45hq-cxwh-f6vc"},{"rule_id":"osv/GHSA-phj9-mv4w-65pm","severity":"high","message":"pillow@10.0.0 (PyPI) is affected by PYSEC-2026-2256, GHSA-phj9-mv4w-65pm; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-phj9-mv4w-65pm"},{"rule_id":"osv/GHSA-6r8x-57c9-28j4","severity":"high","message":"pillow@10.0.0 (PyPI) is affected by PYSEC-2026-3451, GHSA-6r8x-57c9-28j4; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-6r8x-57c9-28j4"},{"rule_id":"osv/GHSA-9hw9-ch79-4vh6","severity":"high","message":"pillow@10.0.0 (PyPI) is affected by PYSEC-2026-3453, GHSA-9hw9-ch79-4vh6; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-9hw9-ch79-4vh6"},{"rule_id":"osv/GHSA-xj96-63gp-2gmr","severity":"high","message":"pillow@10.0.0 (PyPI) is affected by PYSEC-2026-3454, GHSA-xj96-63gp-2gmr; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-xj96-63gp-2gmr"},{"rule_id":"osv/GHSA-62p4-gmf7-7g93","severity":"high","message":"pillow@10.0.0 (PyPI) is affected by PYSEC-2026-3493, GHSA-62p4-gmf7-7g93; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-62p4-gmf7-7g93"},{"rule_id":"osv/GHSA-jjj6-mw9f-p565","severity":"high","message":"pillow@10.0.0 (PyPI) is affected by PYSEC-2026-3495, GHSA-jjj6-mw9f-p565; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-jjj6-mw9f-p565"},{"rule_id":"osv/GHSA-vjc4-5qp5-m44j","severity":"high","message":"pillow@10.0.0 (PyPI) is affected by PYSEC-2026-3496, GHSA-vjc4-5qp5-m44j; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-vjc4-5qp5-m44j"},{"rule_id":"osv/GHSA-27h8-gf7j-v5hc","severity":"high","message":"pillow@10.0.0 (PyPI) is affected by PYSEC-2026-4326, GHSA-27h8-gf7j-v5hc; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-27h8-gf7j-v5hc"},{"rule_id":"osv/GHSA-4558-3h8r-v8xp","severity":"high","message":"pillow@10.0.0 (PyPI) is affected by PYSEC-2026-4327, GHSA-4558-3h8r-v8xp; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-4558-3h8r-v8xp"},{"rule_id":"osv/GHSA-58r4-6rv3-gfh8","severity":"high","message":"pillow@10.0.0 (PyPI) is affected by PYSEC-2026-4329, GHSA-58r4-6rv3-gfh8; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-58r4-6rv3-gfh8"},{"rule_id":"osv/GHSA-7mwm-ghpf-9vrm","severity":"high","message":"pillow@10.0.0 (PyPI) is affected by PYSEC-2026-4331, GHSA-7mwm-ghpf-9vrm; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-7mwm-ghpf-9vrm"},{"rule_id":"osv/GHSA-pchr-8j38-3x4p","severity":"high","message":"pillow@10.0.0 (PyPI) is affected by PYSEC-2026-4334, GHSA-pchr-8j38-3x4p; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-pchr-8j38-3x4p"},{"rule_id":"osv/GHSA-xgh8-jp6q-p5x8","severity":"high","message":"pillow@10.0.0 (PyPI) is affected by PYSEC-2026-4335, GHSA-xgh8-jp6q-p5x8; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-xgh8-jp6q-p5x8"},{"rule_id":"osv/GHSA-g842-9rc4-69pw","severity":"high","message":"pillow@10.0.0 (PyPI) is affected by PYSEC-2026-4338, GHSA-g842-9rc4-69pw; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-g842-9rc4-69pw"},{"rule_id":"osv/GHSA-3j72-p6qg-6xp7","severity":"high","message":"pillow@10.0.0 (PyPI) is affected by PYSEC-2026-4341, GHSA-3j72-p6qg-6xp7; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-3j72-p6qg-6xp7"},{"rule_id":"osv/GHSA-9v9v-9qvf-h2hj","severity":"high","message":"pillow@10.0.0 (PyPI) is affected by PYSEC-2026-4343, GHSA-9v9v-9qvf-h2hj; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-9v9v-9qvf-h2hj"},{"rule_id":"osv/GHSA-22hg-r758-rrw9","severity":"high","message":"pillow@10.0.0 (PyPI) is affected by GHSA-22hg-r758-rrw9; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-22hg-r758-rrw9"},{"rule_id":"osv/GHSA-5xm2-6676-qcp9","severity":"high","message":"pillow@10.0.0 (PyPI) is affected by GHSA-5xm2-6676-qcp9; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-5xm2-6676-qcp9"},{"rule_id":"osv/GHSA-65qm-jvmh-6pqg","severity":"high","message":"pillow@10.0.0 (PyPI) is affected by GHSA-65qm-jvmh-6pqg; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-65qm-jvmh-6pqg"},{"rule_id":"osv/GHSA-c6hw-5grf-ff96","severity":"high","message":"pillow@10.0.0 (PyPI) is affected by GHSA-c6hw-5grf-ff96; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-c6hw-5grf-ff96"},{"rule_id":"osv/GHSA-f2g6-542v-9j58","severity":"high","message":"pillow@10.0.0 (PyPI) is affected by GHSA-f2g6-542v-9j58; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-f2g6-542v-9j58"},{"rule_id":"osv/GHSA-g7cr-3p24-7wf7","severity":"high","message":"pillow@10.0.0 (PyPI) is affected by GHSA-g7cr-3p24-7wf7; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-g7cr-3p24-7wf7"},{"rule_id":"osv/GHSA-gg2r-wvfm-q9rx","severity":"high","message":"pillow@10.0.0 (PyPI) is affected by GHSA-gg2r-wvfm-q9rx; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-gg2r-wvfm-q9rx"},{"rule_id":"osv/GHSA-j4m9-6w36-pw47","severity":"high","message":"pillow@10.0.0 (PyPI) is affected by GHSA-j4m9-6w36-pw47; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-j4m9-6w36-pw47"},{"rule_id":"osv/GHSA-jg86-v3jv-hrpm","severity":"high","message":"pillow@10.0.0 (PyPI) is affected by GHSA-jg86-v3jv-hrpm; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-jg86-v3jv-hrpm"},{"rule_id":"osv/GHSA-mrfp-p49p-3hf2","severity":"high","message":"pillow@10.0.0 (PyPI) is affected by GHSA-mrfp-p49p-3hf2; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-mrfp-p49p-3hf2"},{"rule_id":"osv/GHSA-p4wg-p73j-c528","severity":"high","message":"pillow@10.0.0 (PyPI) is affected by GHSA-p4wg-p73j-c528; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-p4wg-p73j-c528"},{"rule_id":"osv/GHSA-q45j-58j2-45rg","severity":"high","message":"pillow@10.0.0 (PyPI) is affected by GHSA-q45j-58j2-45rg; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-q45j-58j2-45rg"},{"rule_id":"osv/GHSA-xcvg-w56q-r89m","severity":"high","message":"pillow@10.0.0 (PyPI) is affected by GHSA-xcvg-w56q-r89m; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-xcvg-w56q-r89m"},{"rule_id":"osv/PYSEC-2023-175","severity":"medium","message":"pillow@10.0.0 (PyPI) is affected by PYSEC-2023-175; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):PYSEC-2023-175"},{"rule_id":"osv/GHSA-wjx4-4jcj-g98j","severity":"medium","message":"pillow@10.0.0 (PyPI) is affected by PYSEC-2026-165, GHSA-wjx4-4jcj-g98j; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-wjx4-4jcj-g98j"},{"rule_id":"osv/GHSA-4x4j-2g7c-83w6","severity":"medium","message":"pillow@10.0.0 (PyPI) is affected by PYSEC-2026-2257, GHSA-4x4j-2g7c-83w6; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-4x4j-2g7c-83w6"},{"rule_id":"osv/GHSA-r73j-pqj5-w3x7","severity":"medium","message":"pillow@10.0.0 (PyPI) is affected by PYSEC-2026-2874, GHSA-r73j-pqj5-w3x7; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-r73j-pqj5-w3x7"},{"rule_id":"osv/GHSA-fj7v-r99m-22gq","severity":"medium","message":"pillow@10.0.0 (PyPI) is affected by PYSEC-2026-3494, GHSA-fj7v-r99m-22gq; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-fj7v-r99m-22gq"},{"rule_id":"osv/GHSA-p8hx-v2p6-rp84","severity":"medium","message":"pillow@10.0.0 (PyPI) is affected by PYSEC-2026-4337, GHSA-p8hx-v2p6-rp84; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-p8hx-v2p6-rp84"},{"rule_id":"osv/GHSA-4rm8-3hmm-39fg","severity":"medium","message":"pillow@10.0.0 (PyPI) is affected by PYSEC-2026-4340, GHSA-4rm8-3hmm-39fg; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-4rm8-3hmm-39fg"},{"rule_id":"osv/GHSA-24rc-8hj2-v98c","severity":"medium","message":"pillow@10.0.0 (PyPI) is affected by GHSA-24rc-8hj2-v98c; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-24rc-8hj2-v98c"},{"rule_id":"osv/GHSA-254f-3936-288h","severity":"medium","message":"pillow@10.0.0 (PyPI) is affected by GHSA-254f-3936-288h; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-254f-3936-288h"},{"rule_id":"osv/GHSA-462x-pgg6-55fp","severity":"medium","message":"pillow@10.0.0 (PyPI) is affected by GHSA-462x-pgg6-55fp; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-462x-pgg6-55fp"},{"rule_id":"osv/GHSA-74r2-7ff9-mjj2","severity":"medium","message":"pillow@10.0.0 (PyPI) is affected by GHSA-74r2-7ff9-mjj2; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-74r2-7ff9-mjj2"},{"rule_id":"osv/GHSA-fc9g-5qg7-mf45","severity":"medium","message":"pillow@10.0.0 (PyPI) is affected by GHSA-fc9g-5qg7-mf45; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-fc9g-5qg7-mf45"},{"rule_id":"osv/GHSA-rfgq-q3w2-pmv2","severity":"medium","message":"pillow@10.0.0 (PyPI) is affected by GHSA-rfgq-q3w2-pmv2; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-rfgq-q3w2-pmv2"},{"rule_id":"osv/GHSA-vx6w-vv9f-6gvg","severity":"medium","message":"pillow@10.0.0 (PyPI) is affected by GHSA-vx6w-vv9f-6gvg; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-vx6w-vv9f-6gvg"},{"rule_id":"osv/GHSA-wqgw-9xfh-qf2g","severity":"medium","message":"pillow@10.0.0 (PyPI) is affected by GHSA-wqgw-9xfh-qf2g; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@10.0.0 (PyPI):GHSA-wqgw-9xfh-qf2g"},{"rule_id":"osv/GHSA-6w46-j5rx-g56g","severity":"medium","message":"pytest@7.0 (PyPI) is affected by PYSEC-2026-1845, GHSA-6w46-j5rx-g56g","path":"requirements-dev.txt","line":null,"fingerprint":"pytest@7.0 (PyPI):GHSA-6w46-j5rx-g56g"}],"evidence":[],"data":{"ecosystems":["PyPI"]},"error":null},{"analyzer":"sec-actions","pillar":"security","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-posture","pillar":"security","status":"ok","tool_version":null,"metrics":{"check:security_policy":0.0,"check:dependency_updates":0.0,"check:signed_commits":0.0,"check:lockfiles":1.0,"signed_commit_share":0.3333,"unpinned_manifests":0.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-distribution","pillar":"security","status":"ok","tool_version":null,"metrics":{"signals":1.0,"binary_assets":2.0,"suspicious":0.0},"findings":[],"evidence":[{"kind":"binary-release-asset","description":"release 1.0.1 ships EC2InstanceConnect.exe (2 downloads)","ref":"EC2InstanceConnect.exe","url":"https://github.com/liamsparkles/ec2instanceconnectGUI/releases/download/1.0.1/EC2InstanceConnect.exe","weight":0.0},{"kind":"binary-release-asset","description":"release V1.0.0 ships EC2InstanceConnect.exe (3 downloads)","ref":"EC2InstanceConnect.exe","url":"https://github.com/liamsparkles/ec2instanceconnectGUI/releases/download/V1.0.0/EC2InstanceConnect.exe","weight":0.0}],"data":{"signals":["binary-release-assets"],"suspicious":false,"unusual_traction":false,"metadata":true},"error":null},{"analyzer":"qual-complexity","pillar":"quality","status":"ok","tool_version":"lizard 1.25.1","metrics":{"functions":33.0,"function_nloc":422.0,"mean_ccn":3.09,"p90_ccn":6.0,"complex_functions":0.0,"long_functions":0.0,"many_param_functions":0.0,"risky_nloc_share":0.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"qual-duplication","pillar":"quality","status":"ok","tool_version":"repotrust-dup-w6","metrics":{"compared_lines":448.0,"duplicated_lines":0.0,"duplicated_share":0.0,"files":5.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"qual-lint","pillar":"quality","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":0.0,"weighted_findings":0.0,"scanned_lines":570.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"qual-testing","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:has_tests":1.0,"check:test_ratio":0.8316,"check:ci_present":0.0,"check:ci_runs_tests":0.0,"check:ci_runs_lint":0.0,"check:tests_cochange":1.0,"test_lines":237.0,"source_lines":570.0,"test_ratio":0.4158,"ci_files":0.0,"cochange_share":0.3333,"cochange_commits":3.0},"findings":[],"evidence":[],"data":{"test_commands":[],"lint_commands":[]},"error":null},{"analyzer":"qual-docs","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:readme":1.0,"check:license":1.0,"check:contributing":0.0,"check:changelog":0.0,"readme_lines":66.0},"findings":[],"evidence":[{"kind":"docs","description":"README.md","ref":"README.md","url":null,"weight":0.0},{"kind":"docs","description":"LICENSE","ref":"LICENSE","url":null,"weight":0.0}],"data":{},"error":null},{"analyzer":"qual-type-safety","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:strict_config":0.0,"check:low_escape_density":1.0,"escapes":0.0,"escapes_per_kloc":0.0},"findings":[],"evidence":[],"data":{},"error":null}],"flags":[]}