{"schema_version":"2","scorer_version":"0.1.0","scoring_version":"prov-5+qual-2+sec-2","generated_at":"2026-11-14T14:52:01.089680Z","repo":{"ref":{"host":"github.com","owner":"Monnoroch","name":"ColorHighlighter"},"default_branch":"master","clone_url":"https://github.com/Monnoroch/ColorHighlighter.git","html_url":"https://github.com/Monnoroch/ColorHighlighter","description":"ColorHighlighter - is a plugin for the Sublime text 2 and 3, which underlays selected hexadecimal colorcodes (like \"#FFFFFF\", \"rgb(255,255,255)\", \"white\", etc.) with their real color. Also, plugin adds color picker to easily modify colors. Documentation: https://monnoroch.github.io/ColorHighlighter.","stars":1294,"forks":128,"is_fork":false,"is_archived":false,"is_private":false,"size_kb":33235,"primary_language":"C#","license_spdx":null,"created_at":"2012-03-27T17:26:32Z","pushed_at":"2018-01-15T23:01:32Z","security_policy_url":null,"distribution":{"owner_created_at":"2012-03-04T20:07:35Z","owner_type":"User","release_assets":[]}},"commit_sha":"833bcfb55820c1a36c554c127d6c8ff2d5ea36b0","profile":{"lines_by_language":{"C#":11979,"Python":8282,"Shell":306,"Objective-C":161,"C++":49},"files_by_category":{"source":88,"other":31,"test":22,"binary":12,"config":6,"docs":5},"source_lines":17939,"test_lines":2838},"pillars":{"ai_provenance":{"score":0.0,"confidence":0.65,"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":57.4,"confidence":0.9,"coverage":1.0,"label":"weak","breakdown":{"complexity":79.5,"duplication":39.2,"lint":86.6,"testing":43.7,"docs":40.0,"type_safety":40.0,"process":null},"summary":"Code quality is weak: test-to-source ratio 0.16, no CI test run detected; 8% of function code in complex or long functions; 16% duplicated lines. Weakest area: duplication."},"security":{"score":77.0,"confidence":0.85,"coverage":1.0,"label":"adequate","breakdown":{"secrets":100.0,"sast":86.6,"dependencies":null,"ci_actions":null,"posture":0.0,"scorecard":null},"summary":"Security posture is adequate: 8 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":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":"no registry dependencies declared"},{"analyzer":"ai-attribution","pillar":"ai_provenance","status":"ok","tool_version":"signatures-v1","metrics":{"commits":435.0,"attributed_commits":0.0,"attributed_commit_share":0.0,"effective_loc":41454.0,"attributed_loc":0.0,"attributed_loc_share":0.0,"tools_detected":0.0},"findings":[],"evidence":[],"data":{"attributed_loc_by_commit":{},"tools":{},"monthly":{"2012-03":{"loc":135,"attributed_loc":0},"2012-04":{"loc":222,"attributed_loc":0},"2012-05":{"loc":696,"attributed_loc":0},"2012-07":{"loc":2,"attributed_loc":0},"2013-02":{"loc":267,"attributed_loc":0},"2013-03":{"loc":2,"attributed_loc":0},"2013-04":{"loc":44,"attributed_loc":0},"2013-05":{"loc":1,"attributed_loc":0},"2013-08":{"loc":0,"attributed_loc":0},"2013-11":{"loc":2,"attributed_loc":0},"2014-03":{"loc":1149,"attributed_loc":0},"2014-04":{"loc":2110,"attributed_loc":0},"2014-05":{"loc":363,"attributed_loc":0},"2014-06":{"loc":28,"attributed_loc":0},"2014-07":{"loc":16,"attributed_loc":0},"2014-08":{"loc":3,"attributed_loc":0},"2014-09":{"loc":30,"attributed_loc":0},"2014-10":{"loc":22,"attributed_loc":0},"2014-11":{"loc":0,"attributed_loc":0},"2014-12":{"loc":54,"attributed_loc":0},"2015-02":{"loc":4,"attributed_loc":0},"2015-03":{"loc":1,"attributed_loc":0},"2015-04":{"loc":0,"attributed_loc":0},"2015-06":{"loc":0,"attributed_loc":0},"2015-08":{"loc":2551,"attributed_loc":0},"2015-09":{"loc":615,"attributed_loc":0},"2015-10":{"loc":24289,"attributed_loc":0},"2015-12":{"loc":1,"attributed_loc":0},"2016-02":{"loc":113,"attributed_loc":0},"2016-03":{"loc":3,"attributed_loc":0},"2016-06":{"loc":1,"attributed_loc":0},"2016-09":{"loc":0,"attributed_loc":0},"2016-10":{"loc":24,"attributed_loc":0},"2017-07":{"loc":0,"attributed_loc":0},"2017-08":{"loc":0,"attributed_loc":0},"2017-09":{"loc":8390,"attributed_loc":0},"2017-10":{"loc":309,"attributed_loc":0},"2017-12":{"loc":7,"attributed_loc":0},"2018-01":{"loc":0,"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":168.0,"flagged_units":0.0,"pre_ai_era_bursts":0.0,"pre_ai_era_measured_loc":9079.0,"pre_ai_era_burst_loc":0.0,"measured_loc":9079.0,"flagged_loc":0.0,"flagged_loc_share":0.0,"max_loc_per_hour":236.5826944140197,"median_loc_per_hour":64.80175139868645,"pr_timed_units":2.0,"excluded_import_loc":32375.0},"findings":[],"evidence":[],"data":{"flagged_loc_by_commit":{},"excluded_import_commits":["c252c15c990a1a540b63d0422e906e599b08e1fa","e96e759c4e19a20e4586aac077fda5562411f3a6","f0bee877ae8a18045d79af984ae2a44d0f0e2579"]},"error":null},{"analyzer":"ai-release-velocity","pillar":"ai_provenance","status":"ok","tool_version":"prov-4","metrics":{"releases":12.0,"flagged_releases":0.0,"max_loc_per_day":1555.2},"findings":[],"evidence":[],"data":{"releases":[{"from":"7.2.1","to":"7.2.2","loc":1,"days":0.34,"loc_per_day":3.0,"flagged":false},{"from":"7.2.2","to":"7.2.3","loc":1,"days":11.17,"loc_per_day":0.1,"flagged":false},{"from":"7.2.3","to":"8.0","loc":0,"days":3.32,"loc_per_day":0.0,"flagged":false},{"from":"8.0","to":"8.0.1","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"8.0.1","to":"8.0.2","loc":0,"days":0.95,"loc_per_day":0.0,"flagged":false},{"from":"8.0.2","to":"8.0.3","loc":1,"days":0.82,"loc_per_day":1.2,"flagged":false},{"from":"8.0.3","to":"8.0.4","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"8.0.4","to":"8.0.5","loc":39,"days":0.79,"loc_per_day":49.3,"flagged":false},{"from":"8.0.5","to":"8.0.6","loc":25,"days":0.11,"loc_per_day":219.4,"flagged":false},{"from":"8.0.6","to":"8.0.7","loc":13,"days":2.96,"loc_per_day":4.4,"flagged":false},{"from":"8.0.7","to":"8.0.8","loc":148,"days":0.1,"loc_per_day":1555.2,"flagged":false},{"from":"8.0.8","to":"8.0.9","loc":83,"days":0.07,"loc_per_day":1275.1,"flagged":false}]},"error":null},{"analyzer":"ai-stylometry","pillar":"ai_provenance","status":"ok","tool_version":null,"metrics":{"lines_scanned":17939.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":9.0,"findings_high":8.0,"findings_medium":1.0,"findings_low":0.0,"weighted_findings":7.3,"scanned_lines":17778.0,"parse_errors":0.0},"findings":[{"rule_id":"opengrep/python.lang.security.use-defused-xml","severity":"high","message":"The Python documentation recommends using `defusedxml` instead of `xml` because the native Python `xml` library is vulnerable to XML External Entity (XXE) attacks. These attacks can leak confidential data and \"XML bombs\" can cause denial of service. [confidence low]","path":"color_scheme.py","line":4,"fingerprint":"python.lang.security.use-defused-xml:color_scheme.py:4"},{"rule_id":"opengrep/python.lang.security.use-defused-xml","severity":"high","message":"The Python documentation recommends using `defusedxml` instead of `xml` because the native Python `xml` library is vulnerable to XML External Entity (XXE) attacks. These attacks can leak confidential data and \"XML bombs\" can cause denial of service. [confidence low]","path":"color_scheme_color_highlighter.py","line":4,"fingerprint":"python.lang.security.use-defused-xml:color_scheme_color_highlighter.py:4"},{"rule_id":"opengrep/python.lang.security.use-defused-xml","severity":"high","message":"The Python documentation recommends using `defusedxml` instead of `xml` because the native Python `xml` library is vulnerable to XML External Entity (XXE) attacks. These attacks can leak confidential data and \"XML bombs\" can cause denial of service. [confidence low]","path":"elementtree/ElementTree.py","line":1172,"fingerprint":"python.lang.security.use-defused-xml:elementtree/ElementTree.py:1172"},{"rule_id":"opengrep/python.lang.security.use-defused-xml","severity":"high","message":"The Python documentation recommends using `defusedxml` instead of `xml` because the native Python `xml` library is vulnerable to XML External Entity (XXE) attacks. These attacks can leak confidential data and \"XML bombs\" can cause denial of service. [confidence low]","path":"elementtree/ElementTree.py","line":1254,"fingerprint":"python.lang.security.use-defused-xml:elementtree/ElementTree.py:1254"},{"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":"gutter_icons_color_highlighter.py","line":119,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:gutter_icons_color_highlighter.py:119"},{"rule_id":"opengrep/python.lang.security.audit.subprocess-shell-true","severity":"high","message":"Found 'subprocess' function 'Popen' with 'shell=True'. This is dangerous because this call will spawn the command using a shell process. Doing so propagates current shell settings and variables, which makes it much easier for a malicious actor to execute commands. Use 'shell=False' instead. [confidence medium]","path":"gutter_icons_color_highlighter.py","line":119,"fingerprint":"python.lang.security.audit.subprocess-shell-true:gutter_icons_color_highlighter.py:119"},{"rule_id":"opengrep/python.lang.security.use-defused-xml","severity":"high","message":"The Python documentation recommends using `defusedxml` instead of `xml` because the native Python `xml` library is vulnerable to XML External Entity (XXE) attacks. These attacks can leak confidential data and \"XML bombs\" can cause denial of service. [confidence low]","path":"main.py","line":48,"fingerprint":"python.lang.security.use-defused-xml:main.py:48"},{"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":"pick_color_command.py","line":61,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:pick_color_command.py:61"},{"rule_id":"opengrep/dockerfile.security.secret-in-build-arg","severity":"medium","message":"Docker build time arguments are not suited for secrets, because the argument values are saved with the image. Running `docker image history` on the image will show information on how the image was built, including arguments. If these contain plain text secrets, anyone with access to the docker image [confidence low]","path":"ci/Dockerfile","line":41,"fingerprint":"dockerfile.security.secret-in-build-arg:ci/Dockerfile:41"}],"evidence":[],"data":{"rulesets":["csharp","python","bash","c","dockerfile"]},"error":null},{"analyzer":"sec-deps","pillar":"security","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"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.015,"unpinned_manifests":0.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-distribution","pillar":"security","status":"ok","tool_version":null,"metrics":{"signals":0.0,"binary_assets":0.0,"suspicious":0.0},"findings":[],"evidence":[],"data":{"signals":[],"suspicious":false,"unusual_traction":false,"metadata":true},"error":null},{"analyzer":"qual-complexity","pillar":"quality","status":"ok","tool_version":"lizard 1.25.1","metrics":{"functions":778.0,"function_nloc":7884.0,"mean_ccn":2.51,"p90_ccn":5.0,"complex_functions":5.0,"long_functions":2.0,"many_param_functions":0.0,"risky_nloc_share":0.0766},"findings":[],"evidence":[{"kind":"complex-function","description":"ColorEditor::ValueChangedHandler in ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/ColorEditor.cs: complexity 25, 62 lines","ref":"ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/ColorEditor.cs","url":"https://github.com/Monnoroch/ColorHighlighter/blob/833bcfb55820c1a36c554c127d6c8ff2d5ea36b0/ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/ColorEditor.cs#L517","weight":0.4166666666666667},{"kind":"complex-function","description":"_write in elementtree/ElementTree.py: complexity 24, 52 lines","ref":"elementtree/ElementTree.py","url":"https://github.com/Monnoroch/ColorHighlighter/blob/833bcfb55820c1a36c554c127d6c8ff2d5ea36b0/elementtree/ElementTree.py#L694","weight":0.4},{"kind":"complex-function","description":"ColorEditor::UpdateFields in ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/ColorEditor.cs: complexity 18, 47 lines","ref":"ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/ColorEditor.cs","url":"https://github.com/Monnoroch/ColorHighlighter/blob/833bcfb55820c1a36c554c127d6c8ff2d5ea36b0/ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/ColorEditor.cs#L415","weight":0.3},{"kind":"complex-function","description":"ColorGrid::OnPaint in ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/ColorGrid.cs: complexity 16, 52 lines","ref":"ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/ColorGrid.cs","url":"https://github.com/Monnoroch/ColorHighlighter/blob/833bcfb55820c1a36c554c127d6c8ff2d5ea36b0/ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/ColorGrid.cs#L509","weight":0.26666666666666666},{"kind":"complex-function","description":"__init__ in elementtree/ElementPath.py: complexity 16, 27 lines","ref":"elementtree/ElementPath.py","url":"https://github.com/Monnoroch/ColorHighlighter/blob/833bcfb55820c1a36c554c127d6c8ff2d5ea36b0/elementtree/ElementPath.py#L73","weight":0.26666666666666666},{"kind":"complex-function","description":"ColorEditor::InitializeComponent in ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/ColorEditor.Designer.cs: complexity 1, 244 lines","ref":"ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/ColorEditor.Designer.cs","url":"https://github.com/Monnoroch/ColorHighlighter/blob/833bcfb55820c1a36c554c127d6c8ff2d5ea36b0/ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/ColorEditor.Designer.cs#L29","weight":0.016666666666666666},{"kind":"complex-function","description":"ColorPickerDialog::InitializeComponent in ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/ColorPickerDialog.Designer.cs: complexity 1, 120 lines","ref":"ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/ColorPickerDialog.Designer.cs","url":"https://github.com/Monnoroch/ColorHighlighter/blob/833bcfb55820c1a36c554c127d6c8ff2d5ea36b0/ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/ColorPickerDialog.Designer.cs#L18","weight":0.016666666666666666}],"data":{},"error":null},{"analyzer":"qual-duplication","pillar":"quality","status":"ok","tool_version":"repotrust-dup-w6","metrics":{"compared_lines":11231.0,"duplicated_lines":1754.0,"duplicated_share":0.1562,"files":88.0},"findings":[],"evidence":[{"kind":"duplicate-code","description":"6+ duplicated lines: ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/AdobePhotoShopColorSwatchSerializer.cs:1 and ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/ColorEditor.cs:1","ref":"ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/AdobePhotoShopColorSwatchSerializer.cs","url":"https://github.com/Monnoroch/ColorHighlighter/blob/833bcfb55820c1a36c554c127d6c8ff2d5ea36b0/ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/AdobePhotoShopColorSwatchSerializer.cs#L1","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/AdobePhotoShopColorSwatchSerializer.cs:9 and ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/ColorCollection.cs:8","ref":"ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/AdobePhotoShopColorSwatchSerializer.cs","url":"https://github.com/Monnoroch/ColorHighlighter/blob/833bcfb55820c1a36c554c127d6c8ff2d5ea36b0/ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/AdobePhotoShopColorSwatchSerializer.cs#L9","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/AdobePhotoShopColorSwatchSerializer.cs:11 and ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/InterleavedBitmapPaletteSerializer.cs:8","ref":"ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/AdobePhotoShopColorSwatchSerializer.cs","url":"https://github.com/Monnoroch/ColorHighlighter/blob/833bcfb55820c1a36c554c127d6c8ff2d5ea36b0/ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/AdobePhotoShopColorSwatchSerializer.cs#L11","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/AdobePhotoShopColorSwatchSerializer.cs:29 and ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/GimpPaletteSerializer.cs:21","ref":"ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/AdobePhotoShopColorSwatchSerializer.cs","url":"https://github.com/Monnoroch/ColorHighlighter/blob/833bcfb55820c1a36c554c127d6c8ff2d5ea36b0/ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/AdobePhotoShopColorSwatchSerializer.cs#L29","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/AdobePhotoshopColorSwatchColorSpace.cs:1 and ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/AdobePhotoshopColorSwatchFileVersion.cs:1","ref":"ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/AdobePhotoshopColorSwatchColorSpace.cs","url":"https://github.com/Monnoroch/ColorHighlighter/blob/833bcfb55820c1a36c554c127d6c8ff2d5ea36b0/ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/AdobePhotoshopColorSwatchColorSpace.cs#L1","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/ColorCollection.cs:1 and ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/ColorCollectionEventArgs.cs:1","ref":"ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/ColorCollection.cs","url":"https://github.com/Monnoroch/ColorHighlighter/blob/833bcfb55820c1a36c554c127d6c8ff2d5ea36b0/ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/ColorCollection.cs#L1","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/ColorComparer.cs:45 and ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/ColorComparer.cs:75","ref":"ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/ColorComparer.cs","url":"https://github.com/Monnoroch/ColorHighlighter/blob/833bcfb55820c1a36c554c127d6c8ff2d5ea36b0/ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/ColorComparer.cs#L45","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/ColorEditor.cs:59 and ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/ColorEditorManager.cs:41","ref":"ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/ColorEditor.cs","url":"https://github.com/Monnoroch/ColorHighlighter/blob/833bcfb55820c1a36c554c127d6c8ff2d5ea36b0/ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/ColorEditor.cs#L59","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/ColorEditor.cs:69 and ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/ColorSlider.cs:175","ref":"ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/ColorEditor.cs","url":"https://github.com/Monnoroch/ColorHighlighter/blob/833bcfb55820c1a36c554c127d6c8ff2d5ea36b0/ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/ColorEditor.cs#L69","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/ColorEditor.cs:131 and ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/ColorWheel.cs:372","ref":"ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/ColorEditor.cs","url":"https://github.com/Monnoroch/ColorHighlighter/blob/833bcfb55820c1a36c554c127d6c8ff2d5ea36b0/ColorPicker/winapi/Cyotek.Windows.Forms.ColorPicker/ColorEditor.cs#L131","weight":0.3}],"data":{},"error":null},{"analyzer":"qual-lint","pillar":"quality","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":8.0,"weighted_findings":10.25,"scanned_lines":17778.0,"category:best-practice":3.0,"category:correctness":5.0},"findings":[{"rule_id":"opengrep/python.lang.best-practice.open-never-closed","severity":"high","message":"file object opened without corresponding close","path":"elementtree/ElementTree.py","line":608,"fingerprint":"python.lang.best-practice.open-never-closed:elementtree/ElementTree.py:608"},{"rule_id":"opengrep/python.lang.best-practice.open-never-closed","severity":"high","message":"file object opened without corresponding close","path":"elementtree/ElementTree.py","line":687,"fingerprint":"python.lang.best-practice.open-never-closed:elementtree/ElementTree.py:687"},{"rule_id":"opengrep/python.lang.best-practice.open-never-closed","severity":"high","message":"file object opened without corresponding close","path":"elementtree/ElementTree.py","line":927,"fingerprint":"python.lang.best-practice.open-never-closed:elementtree/ElementTree.py:927"},{"rule_id":"opengrep/bash.lang.correctness.unquoted-variable-expansion-in-command","severity":"low","message":"Variable expansions must be double-quoted so as to prevent being split into multiple pieces according to whitespace or whichever separator is specified by the IFS variable. If you really wish to split the variable's contents, you may use a variable that starts with an underscore e.g. $_X instead of ","path":"ci/integration-tests.sh","line":17,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:ci/integration-tests.sh:17"},{"rule_id":"opengrep/bash.lang.correctness.unquoted-variable-expansion-in-command","severity":"low","message":"Variable expansions must be double-quoted so as to prevent being split into multiple pieces according to whitespace or whichever separator is specified by the IFS variable. If you really wish to split the variable's contents, you may use a variable that starts with an underscore e.g. $_X instead of ","path":"ci/run-container.sh","line":43,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:ci/run-container.sh:43"},{"rule_id":"opengrep/bash.lang.correctness.unquoted-variable-expansion-in-command","severity":"low","message":"Variable expansions must be double-quoted so as to prevent being split into multiple pieces according to whitespace or whichever separator is specified by the IFS variable. If you really wish to split the variable's contents, you may use a variable that starts with an underscore e.g. $_X instead of ","path":"ci/run-container.sh","line":44,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:ci/run-container.sh:44"},{"rule_id":"opengrep/bash.lang.correctness.unquoted-variable-expansion-in-command","severity":"low","message":"Variable expansions must be double-quoted so as to prevent being split into multiple pieces according to whitespace or whichever separator is specified by the IFS variable. If you really wish to split the variable's contents, you may use a variable that starts with an underscore e.g. $_X instead of ","path":"ci/run-integration-test.sh","line":5,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:ci/run-integration-test.sh:5"},{"rule_id":"opengrep/bash.lang.correctness.unquoted-variable-expansion-in-command","severity":"low","message":"Variable expansions must be double-quoted so as to prevent being split into multiple pieces according to whitespace or whichever separator is specified by the IFS variable. If you really wish to split the variable's contents, you may use a variable that starts with an underscore e.g. $_X instead of ","path":"ci/run-integration-test.sh","line":14,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:ci/run-integration-test.sh:14"}],"evidence":[],"data":{},"error":null},{"analyzer":"qual-testing","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:has_tests":1.0,"check:test_ratio":0.3164,"check:ci_present":1.0,"check:ci_runs_tests":0.0,"check:ci_runs_lint":0.0,"check:tests_cochange":0.0766,"test_lines":2838.0,"source_lines":17939.0,"test_ratio":0.1582,"ci_files":1.0,"cochange_share":0.0191,"cochange_commits":209.0},"findings":[],"evidence":[{"kind":"ci","description":"CI config: .gitlab-ci.yml","ref":".gitlab-ci.yml","url":null,"weight":0.0}],"data":{"test_commands":[],"lint_commands":[]},"error":null},{"analyzer":"qual-docs","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:readme":1.0,"check:license":0.0,"check:contributing":0.0,"check:changelog":0.0,"readme_lines":115.0},"findings":[],"evidence":[{"kind":"docs","description":"README.md","ref":"README.md","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":[]}